openapi: 3.2.0 info: title: Dolby Channels API version: '1.0' description: 'Operations tagged Channels across 2 of this provider''s published API definitions: dolby-optiview-ads-openapi-original.json, dolby-optiview-live-openapi-original.json. Each path carries the servers of the definition it was published in.' servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) tags: - name: Channels paths: /api/v1/channels: get: description: List all channels with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique channel identifier. name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts - mediatime description: 'Time reference used for scheduling breaks on a channel: `wallclock` (ISO 8601 datetime), `pts` (numeric presentation timestamp) or `mediatime` (seconds from the start of the asset; VOD channels only).' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - mode additionalProperties: false description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. detectionEnabled: type: boolean description: Whether automatic break detection runs for this channel. Read-only on create and update; toggle it via the detection enable/disable endpoints. Defaults to false. createdAt: type: string description: Timestamp when the channel was created, as an ISO 8601 datetime string. required: - id - timebase - detectionEnabled - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels x-summary-source: derived operationId: getApiV1Channels x-operation-id-source: derived post: description: Create a new channel. requestBody: required: true content: application/json: schema: type: object properties: id: description: Unique channel identifier. Provided by the customer or auto-generated when omitted. type: string minLength: 1 name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts description: 'Time reference used for scheduling breaks on the channel: `wallclock` (ISO 8601 datetime) or `pts` (numeric presentation timestamp). `mediatime` is only valid for VOD channels.' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - mode description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. required: - timebase responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel identifier. name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts - mediatime description: 'Time reference used for scheduling breaks on a channel: `wallclock` (ISO 8601 datetime), `pts` (numeric presentation timestamp) or `mediatime` (seconds from the start of the asset; VOD channels only).' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - mode additionalProperties: false description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. detectionEnabled: type: boolean description: Whether automatic break detection runs for this channel. Read-only on create and update; toggle it via the detection enable/disable endpoints. Defaults to false. createdAt: type: string description: Timestamp when the channel was created, as an ISO 8601 datetime string. required: - id - timebase - detectionEnabled - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Create api channels x-summary-source: derived operationId: postApiV1Channels x-operation-id-source: derived /api/v1/channels/{channelId}: get: description: Get a channel by ID. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel identifier. name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts - mediatime description: 'Time reference used for scheduling breaks on a channel: `wallclock` (ISO 8601 datetime), `pts` (numeric presentation timestamp) or `mediatime` (seconds from the start of the asset; VOD channels only).' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - mode additionalProperties: false description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. detectionEnabled: type: boolean description: Whether automatic break detection runs for this channel. Read-only on create and update; toggle it via the detection enable/disable endpoints. Defaults to false. createdAt: type: string description: Timestamp when the channel was created, as an ISO 8601 datetime string. required: - id - timebase - detectionEnabled - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id x-summary-source: derived operationId: getApiV1ChannelsByChannelId x-operation-id-source: derived patch: description: Update a channel. requestBody: required: true content: application/json: schema: type: object properties: name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts description: 'Time reference used for scheduling breaks on the channel: `wallclock` (ISO 8601 datetime) or `pts` (numeric presentation timestamp). `mediatime` is only valid for VOD channels.' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: - array - 'null' items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - mode description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel identifier. name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts - mediatime description: 'Time reference used for scheduling breaks on a channel: `wallclock` (ISO 8601 datetime), `pts` (numeric presentation timestamp) or `mediatime` (seconds from the start of the asset; VOD channels only).' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - mode additionalProperties: false description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. detectionEnabled: type: boolean description: Whether automatic break detection runs for this channel. Read-only on create and update; toggle it via the detection enable/disable endpoints. Defaults to false. createdAt: type: string description: Timestamp when the channel was created, as an ISO 8601 datetime string. required: - id - timebase - detectionEnabled - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Update api channels by channel id x-summary-source: derived operationId: patchApiV1ChannelsByChannelId x-operation-id-source: derived delete: description: Delete a channel. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '204': description: Default Response tags: - Channels security: - basicAuth: [] orgId: [] summary: Delete api channels by channel id x-summary-source: derived operationId: deleteApiV1ChannelsByChannelId x-operation-id-source: derived /api/v1/channels/{channelId}/detection/enable: post: description: Enable automatic ad-break detection for a channel. Starts the per-channel detection scheduler. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel identifier. name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts - mediatime description: 'Time reference used for scheduling breaks on a channel: `wallclock` (ISO 8601 datetime), `pts` (numeric presentation timestamp) or `mediatime` (seconds from the start of the asset; VOD channels only).' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - mode additionalProperties: false description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. detectionEnabled: type: boolean description: Whether automatic break detection runs for this channel. Read-only on create and update; toggle it via the detection enable/disable endpoints. Defaults to false. createdAt: type: string description: Timestamp when the channel was created, as an ISO 8601 datetime string. required: - id - timebase - detectionEnabled - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Create api channels by channel id detection enable x-summary-source: derived operationId: postApiV1ChannelsByChannelIdDetectionEnable x-operation-id-source: derived /api/v1/channels/{channelId}/detection/disable: post: description: Disable automatic ad-break detection for a channel. Stops the per-channel detection scheduler. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel identifier. name: description: Human-readable display name for the channel. type: string timebase: type: string enum: - wallclock - pts - mediatime description: 'Time reference used for scheduling breaks on a channel: `wallclock` (ISO 8601 datetime), `pts` (numeric presentation timestamp) or `mediatime` (seconds from the start of the asset; VOD channels only).' dvrWindowMs: description: DVR (rewind) window in milliseconds, controlling how far back the platform looks for breaks to deliver to players. Defaults to 300000 (5 minutes) when not set. type: integer maximum: 9007199254740991 adPrefetchMs: description: Ad prefetch window in milliseconds, controlling how far ahead of a break start time the break is delivered to the player. Defaults to 10000 (10 seconds) when not set. type: integer maximum: 9007199254740991 liveOffsetMs: description: 'Live latency offset in milliseconds: how far the player live playhead trails real time on this channel. Break start times are evaluated against now minus this offset. Defaults to 0 (no offset).' type: integer minimum: 0 maximum: 9007199254740991 customAssetKey: description: Google Ad Manager (GAM) custom asset key used for the server-guided (SGAI) path. Required for vendor pod breaks. Non-empty when provided; to remove it, delete the SGAI channel integration instead. type: string minLength: 1 pollingIdleSeconds: description: Break manifest polling interval in seconds advertised to players when no break is active. Defaults to 10 when not set. type: integer maximum: 9007199254740991 pollingActiveSeconds: description: Break manifest polling interval in seconds advertised to players during an active break. Defaults to 1 when not set. type: integer maximum: 9007199254740991 adStartDelay: description: Delay in seconds of played media time before any break may start, emitted at the top level of the break manifest. Enforced player-side. Omitted means 0 (no delay). type: number minimum: 0 delivery: minItems: 1 type: array items: type: object properties: mode: type: string enum: - sgai - ssai description: 'Ad insertion architecture the player should use: `sgai` or `ssai`.' targeting: description: Player-side match criteria for this rule. The player uses the mode of the first rule whose targeting matches the current platform; a rule without targeting acts as the default. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - mode additionalProperties: false description: Ordered delivery steering rules emitted in the break manifest. The player uses the mode (`sgai` or `ssai`) of the first rule whose targeting matches its device type; a rule without targeting acts as the default. Non-empty when provided; when omitted the player defaults to `sgai`. detectionEnabled: type: boolean description: Whether automatic break detection runs for this channel. Read-only on create and update; toggle it via the detection enable/disable endpoints. Defaults to false. createdAt: type: string description: Timestamp when the channel was created, as an ISO 8601 datetime string. required: - id - timebase - detectionEnabled - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Create api channels by channel id detection disable x-summary-source: derived operationId: postApiV1ChannelsByChannelIdDetectionDisable x-operation-id-source: derived /api/v1/channels/{channelId}/breaks: get: description: List all breaks for a channel with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: c6cac403-2d6d-4111-b4da-8d52f7067732 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id breaks x-summary-source: derived operationId: getApiV1ChannelsByChannelIdBreaks x-operation-id-source: derived post: description: Create a break. Optionally provide a templateId to use a template as base. requestBody: required: true content: application/json: schema: anyOf: - type: object properties: id: description: Unique identifier of the break within the channel. Provided by the customer or auto-generated when omitted. type: string minLength: 1 start: description: 'Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a non-negative PTS number. On any channel, an event trigger object (`{type: "event", event, delay?}`) starts the break on a player event instead of a timeline position. On wallclock channels only, omit to create a cued break that is scheduled later via the punch endpoint.' anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event duration: description: Break duration in seconds. Optional when creating from a template; falls back to the template duration. type: number minimum: 0 resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. templateId: type: string minLength: 1 description: Identifier of the template to base this break on. The template content is copied onto the break at creation. eventId: description: Optional identifier of the event this break belongs to. The break start must fall within the event window. type: string assetParameters: description: Optional asset parameters as a string map, merged into the vendor assets of the template when the break is created. Parameters provided here are combined with the ones defined on the template assets; on duplicate keys the values provided here win. type: object additionalProperties: type: string required: - templateId - type: object properties: id: description: Unique identifier of the break within the channel. Provided by the customer or auto-generated when omitted. type: string minLength: 1 start: description: 'Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a non-negative PTS number. On any channel, an event trigger object (`{type: "event", event, delay?}`) starts the break on a player event instead of a timeline position. On wallclock channels only, omit to create a cued break that is scheduled later via the punch endpoint.' anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters - type: object properties: companion: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets played for this variant. At least one is required. required: - format - assets - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv required: - value description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - mediaType - type - uri - type: object properties: id: default: c1df129e-3012-4d3a-8acd-4bacb58f4240 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - mediaType - type - vendor - vendorParameters description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. eventId: description: Optional identifier of the event this break belongs to. The break start must fall within the event window. type: string required: - duration - variant parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 635a8a61-d1ec-4181-bbf8-0c43751b580c description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Create api channels by channel id breaks x-summary-source: derived operationId: postApiV1ChannelsByChannelIdBreaks x-operation-id-source: derived delete: description: Bulk delete breaks by IDs. requestBody: required: true content: application/json: schema: type: object properties: ids: minItems: 1 type: array items: type: string minLength: 1 description: Identifiers of the breaks to delete. At least one is required. required: - ids parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '204': description: Default Response tags: - Channels security: - basicAuth: [] orgId: [] summary: Delete api channels by channel id breaks x-summary-source: derived operationId: deleteApiV1ChannelsByChannelIdBreaks x-operation-id-source: derived /api/v1/channels/{channelId}/breaks/{breakId}: get: description: Get a break by ID. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: breakId required: true description: Identifier of the break. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 2ffd7d56-5731-438c-97de-1a99a8ea41d2 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id breaks by break id x-summary-source: derived operationId: getApiV1ChannelsByChannelIdBreaksByBreakId x-operation-id-source: derived delete: description: Delete a break. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: breakId required: true description: Identifier of the break. responses: '204': description: Default Response tags: - Channels security: - basicAuth: [] orgId: [] summary: Delete api channels by channel id breaks by break id x-summary-source: derived operationId: deleteApiV1ChannelsByChannelIdBreaksByBreakId x-operation-id-source: derived /api/v1/channels/{channelId}/breaks/{breakId}/punch: post: description: schedule a CUED break, transitioning it to READY. Accepts an optional startDate (ISO 8601); defaults to now. Past dates are clamped to now. requestBody: required: true content: application/json: schema: type: object properties: start: description: Optional start time for the break, as an ISO 8601 datetime string. Defaults to now; times in the past are clamped to now. type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: breakId required: true description: Identifier of the break. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: b8be58b2-330b-4dfa-b5f0-c900597bd215 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Create api channels by channel id breaks by break id punch x-summary-source: derived operationId: postApiV1ChannelsByChannelIdBreaksByBreakIdPunch x-operation-id-source: derived /api/v1/channels/{channelId}/events: get: description: List all events for a channel with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique event identifier within the channel. name: type: string description: Human-readable display name for the event. description: description: Free-text description of the event. type: string startDate: type: string description: Event start time, as an ISO 8601 datetime string. endDate: type: string description: Event end time, as an ISO 8601 datetime string. createdAt: type: string description: Timestamp when the event was created, as an ISO 8601 datetime string. required: - id - name - startDate - endDate - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id events x-summary-source: derived operationId: getApiV1ChannelsByChannelIdEvents x-operation-id-source: derived post: requestBody: required: true content: application/json: schema: type: object properties: id: description: Unique event identifier within the channel. Provided by the customer or auto-generated when omitted. type: string minLength: 1 name: type: string minLength: 1 description: Human-readable display name for the event. description: description: Free-text description of the event. type: string startDate: description: Event start time. Breaks under this event must be scheduled at or after this time. endDate: description: Event end time. Breaks under this event must be scheduled at or before this time. required: - name - startDate - endDate parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique event identifier within the channel. name: type: string description: Human-readable display name for the event. description: description: Free-text description of the event. type: string startDate: type: string description: Event start time, as an ISO 8601 datetime string. endDate: type: string description: Event end time, as an ISO 8601 datetime string. createdAt: type: string description: Timestamp when the event was created, as an ISO 8601 datetime string. required: - id - name - startDate - endDate - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Create api channels by channel id events x-summary-source: derived operationId: postApiV1ChannelsByChannelIdEvents x-operation-id-source: derived delete: requestBody: required: true content: application/json: schema: type: object properties: ids: minItems: 1 type: array items: type: string minLength: 1 description: Identifiers of the events to delete. At least one is required. required: - ids parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '204': description: Default Response tags: - Channels security: - basicAuth: [] orgId: [] summary: Delete api channels by channel id events x-summary-source: derived operationId: deleteApiV1ChannelsByChannelIdEvents x-operation-id-source: derived /api/v1/channels/{channelId}/events/{eventId}: get: parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique event identifier within the channel. name: type: string description: Human-readable display name for the event. description: description: Free-text description of the event. type: string startDate: type: string description: Event start time, as an ISO 8601 datetime string. endDate: type: string description: Event end time, as an ISO 8601 datetime string. createdAt: type: string description: Timestamp when the event was created, as an ISO 8601 datetime string. required: - id - name - startDate - endDate - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id events by event id x-summary-source: derived operationId: getApiV1ChannelsByChannelIdEventsByEventId x-operation-id-source: derived patch: requestBody: required: true content: application/json: schema: type: object properties: name: type: string minLength: 1 description: Human-readable display name for the event. description: description: Free-text description of the event. type: string startDate: description: Event start time. Breaks under this event must be scheduled at or after this time. endDate: description: Event end time. Breaks under this event must be scheduled at or before this time. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique event identifier within the channel. name: type: string description: Human-readable display name for the event. description: description: Free-text description of the event. type: string startDate: type: string description: Event start time, as an ISO 8601 datetime string. endDate: type: string description: Event end time, as an ISO 8601 datetime string. createdAt: type: string description: Timestamp when the event was created, as an ISO 8601 datetime string. required: - id - name - startDate - endDate - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Update api channels by channel id events by event id x-summary-source: derived operationId: patchApiV1ChannelsByChannelIdEventsByEventId x-operation-id-source: derived delete: parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. responses: '204': description: Default Response tags: - Channels security: - basicAuth: [] orgId: [] summary: Delete api channels by channel id events by event id x-summary-source: derived operationId: deleteApiV1ChannelsByChannelIdEventsByEventId x-operation-id-source: derived /api/v1/channels/{channelId}/events/{eventId}/templates: get: description: List all templates associated with the event, with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: duration: description: Default break duration in seconds for breaks created from this template. Minimum 0. type: number minimum: 0 resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 6d271ecf-65b7-4383-a8c7-413678dc21e6 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. id: type: string minLength: 1 description: Unique template identifier. name: description: Human-readable display name for the template. type: string channelIds: description: Identifiers of the channels this template is linked to. type: array items: type: string eventIds: description: Identifiers of the events this template is linked to. type: array items: type: string createdAt: type: string description: Timestamp when the template was created, as an ISO 8601 datetime string. required: - variant - id - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id events by event id templates x-summary-source: derived operationId: getApiV1ChannelsByChannelIdEventsByEventIdTemplates x-operation-id-source: derived /api/v1/channels/{channelId}/events/{eventId}/templates/{templateId}/breaks: get: description: List breaks created from a template during an event, with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. - schema: type: string in: path name: templateId required: true description: Identifier of the template. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: a16da922-7faa-43be-b405-7cdbc03b3780 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id events by event id templates by template id… x-summary-source: derived operationId: getApiV1ChannelsByChannelIdEventsByEventIdTemplatesByTemplateIdBreaks x-operation-id-source: derived /api/v1/channels/{channelId}/events/{eventId}/breaks: get: description: List all breaks associated with the event, with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: 3f804ec6-ce67-4387-94e4-9bfcdc9ce10b description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id events by event id breaks x-summary-source: derived operationId: getApiV1ChannelsByChannelIdEventsByEventIdBreaks x-operation-id-source: derived /api/v1/channels/{channelId}/events/{eventId}/breaks/current: get: description: 'List the breaks currently playing for the event: scheduled breaks whose start + duration window contains the request time, plus event-triggered breaks while the event is active.' parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: eventId required: true description: Identifier of the event. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string minLength: 1 description: Unique identifier of the break within the channel. start: description: Scheduled start of the break. On wallclock channels an ISO 8601 datetime string; on PTS channels a PTS number; for event-triggered breaks an event trigger object. Absent for cued breaks awaiting a start time. anyOf: - type: string format: date-time pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$ - type: number minimum: 0 - type: object properties: type: type: string enum: - event description: Discriminator for an event-triggered start. event: type: string enum: - start - pause - end description: 'Player event that triggers a break: `start` (content playback begins; a pre-roll), `pause` (the viewer pauses; a pause ad), or `end` (playback ended; a post-roll).' delay: description: Seconds before the break starts after the event fires. Minimum 0, default 0. type: number minimum: 0 required: - type - event additionalProperties: false duration: type: number minimum: 0 description: Break duration in seconds. Minimum 0. resumeOffset: description: Offset in seconds controlling where content playback resumes after the break. When not present, the break duration is used as the resume offset. When a viewer seeks over a break with controls.snapback enabled, the resume offset is ignored and the viewer seek point is used to resume. Minimum 0. type: number minimum: 0 controls: description: Optional playback controls for the break, such as skip and snapback behavior. type: object properties: skipOffset: description: Number of seconds the viewer must watch before the break becomes skippable. Minimum 0. type: number minimum: 0 snapback: description: Whether the viewer is allowed to seek over the break. When enabled, a viewer seeking over the break is returned to the start of the break and plays it in full; once the break is done, playback resumes at the original seek position. When a viewer seeks into the break, they are also returned to the start of the break and play it in full, after which playback resumes at the default resume point (resumeOffset, or the break duration when not set). When not present, the viewer is allowed to seek over the break. type: boolean additionalProperties: false variant: anyOf: - oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false - minItems: 1 type: array items: oneOf: - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - single description: 'Variant layout discriminator. `single`: a full-screen break filling the entire player viewport.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - double description: 'Variant layout discriminator. `double`: a side-by-side layout where each asset is shown with a companion asset that is the background behind the side-by-side.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_ad description: 'Variant layout discriminator. `lshape_ad`: an L-shaped layout where the ad occupies the L-frame. Each asset has a companion asset that is the background of the L-shaped layout.' assets: minItems: 1 type: array items: allOf: - oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false - type: object properties: companion: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Companion asset displayed alongside the primary asset (used by `double` and `lshape_ad` variants). required: - companion additionalProperties: false description: Assets played for this variant, each paired with a companion asset. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - lshape_content description: 'Variant layout discriminator. `lshape_content`: an L-shaped layout where the live content occupies the L-frame.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets played for this variant. At least one is required. required: - format - assets additionalProperties: false - type: object properties: targeting: description: 'Optional device targeting for this variant. When a break provides several variants, the player picks the one matching the viewer device. A variant without targeting is considered a default. When several variants qualify (multiple defaults, or multiple variants targeting the same platform), the order in which they are defined decides: the player uses the first variant whose format it can play on the current platform.' type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false format: type: string enum: - overlay description: 'Variant layout discriminator. `overlay`: a visual overlay shown on top of the stream without interrupting playback.' assets: minItems: 1 type: array items: oneOf: - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - static description: 'Asset type discriminator. `static`: a direct content reference such as a media or image URL.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'Location of the static asset: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vast description: 'Asset type discriminator. `vast`: a VAST tag URL the player resolves to fetch and render the creative.' uri: anyOf: - type: string format: uri - minItems: 1 type: array items: type: object properties: value: type: string minLength: 1 description: The asset URI for this entry (for example a media or VAST tag URL). targeting: description: Optional device targeting that selects when this URI is used. type: object properties: deviceType: description: Device type this entry targets. When a break provides several variants, the player selects the one matching the viewer device. type: string enum: - desktop - tablet - mobile - tv additionalProperties: false required: - value additionalProperties: false description: 'VAST tag location: either a single URL string, or an array of URL entries each with optional device targeting.' required: - id - mediaType - type - uri additionalProperties: false - type: object properties: id: default: dfed7263-6c76-41d9-9351-5ca41cf3bd20 description: Unique identifier of the asset within the break. Provided by the customer or auto-generated as a UUID when omitted. type: string minLength: 1 mediaType: type: string enum: - video - image description: 'Media type of an asset: `video` or `image`.' mimeType: description: MIME type of the asset media (for example `video/mp4`), when known. Allows the player to determine upfront whether it can play this asset; otherwise it has to try, making asset preparation slower. type: string duration: description: Duration of the asset in seconds, when known. Minimum 0. type: number minimum: 0 interaction: description: Optional interaction behavior for the asset, such as a click-through URL. type: object properties: clickThrough: description: Click-through URL opened when the viewer interacts with the ad. Must be a valid URL. type: string format: uri additionalProperties: false type: type: string enum: - vendor description: 'Asset type discriminator. `vendor`: a vendor-managed asset where OptiView manages the delivery and the vendor manages the ad decisioning.' vendor: type: string enum: - gam description: Ad vendor responsible for decisioning and delivery of a vendor asset. Currently only `gam` (Google Ad Manager). uri: default: placeholder description: Vendor asset URI. For Google Ad Manager pod assets the URI is typically unknown at creation and unused downstream; defaults to a placeholder. type: string minLength: 1 vendorParameters: type: object additionalProperties: type: string description: Vendor-specific parameters as a string map. Validated per vendor; for `gam` a `type` field is required (currently only `pod`). assetParameters: description: Optional parameters passed through to the vendor as a string map. For example, for Google Ad Manager these are the `adTagParameters`. type: object additionalProperties: type: string required: - id - mediaType - type - vendor - uri - vendorParameters additionalProperties: false description: Assets shown in the overlay. At least one is required. position: type: object properties: top: description: Distance of the overlay top edge from the top of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 bottom: description: Distance of the overlay bottom edge from the bottom of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 left: description: Distance of the overlay left edge from the left of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 right: description: Distance of the overlay right edge from the right of the viewport, as a fraction between 0 and 1. type: number minimum: 0 maximum: 1 additionalProperties: false description: Overlay position within the viewport. Requires at least one of top or bottom and one of left or right. size: type: object properties: width: type: number minimum: 0 maximum: 1 description: Overlay width as a fraction of the viewport width, between 0 and 1. height: type: number minimum: 0 maximum: 1 description: Overlay height as a fraction of the viewport height, between 0 and 1. required: - width - height additionalProperties: false description: Overlay size as fractions of the viewport. opacity: description: Overlay opacity as a fraction between 0 (fully transparent) and 1 (fully opaque). type: number minimum: 0 maximum: 1 required: - format - assets - position - size additionalProperties: false description: A single break variant, or a list of variants from which the player selects the one matching the viewer device. channelId: type: string minLength: 1 description: Identifier of the channel this break belongs to. eventId: description: Identifier of the event this break belongs to, if any. type: string templateId: description: Identifier of the template this break was created from, if any. A point-in-time reference that is not kept in sync with the template. type: string status: type: string enum: - PREPARING - CUED - READY - SIGNALED - ERROR description: 'Lifecycle status of a break: `PREPARING` (awaiting external setup), `CUED` (created without a start time; awaiting a start time to be assigned by punching), `READY` (eligible for delivery), `SIGNALED` (delivered to players), or `ERROR` (failed).' originId: description: For breaks auto-detected from a stream marker, the identifier of the origin whose polling detected the marker. Absent for breaks created via the API. type: string markerRuleId: description: For auto-detected breaks, the identifier of the marker rule that matched and supplied the template. Absent for breaks created via the API. type: string markerDetectionId: description: For auto-detected breaks, the identifier of the marker detection record that produced this break. Absent for breaks created via the API. type: string errorReason: description: Machine-readable reason the break entered ERROR status, one of the BreakErrorReason enum values (e.g. CUSTOM_ASSET_KEY_NOT_FOUND, UNKNOWN_DAI_API_ERROR, INVALID_SERVICE_ACCOUNT_CREDENTIALS, SERVICE_ACCOUNT_CREDENTIALS_UNAVAILABLE, SERVICE_ACCOUNT_CREDENTIALS_REJECTED, SCHEDULING_WINDOW_MISSED, UNKNOWN). Present only when status is ERROR. type: string createdAt: type: string description: Timestamp when the break was created, as an ISO 8601 datetime string. required: - id - duration - variant - channelId - status - createdAt additionalProperties: false required: - data additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id events by event id breaks current x-summary-source: derived operationId: getApiV1ChannelsByChannelIdEventsByEventIdBreaksCurrent x-operation-id-source: derived /api/v1/channels/{channelId}/markerRules: get: description: List all marker rules for a channel with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique marker rule identifier within the channel. streamType: type: string enum: - HLS description: Stream type a marker rule applies to. Currently only `HLS`. type: type: string enum: - CUE - DATERANGE description: 'HLS marker type to match: `CUE` (`EXT-X-CUE` tags) or `DATERANGE` (`EXT-X-DATERANGE` tags).' conditions: type: object additionalProperties: type: string description: Key-value conditions matched case-insensitively against the detected marker's attributes. All conditions must match (AND) for the rule to trigger. templateId: type: string description: Identifier of the template applied when this rule matches. enabled: type: boolean description: Whether this rule is evaluated during break detection. createdAt: type: string description: Timestamp when the marker rule was created, as an ISO 8601 datetime string. required: - id - streamType - type - conditions - templateId - enabled - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id marker rules x-summary-source: derived operationId: getApiV1ChannelsByChannelIdMarkerRules x-operation-id-source: derived post: description: Create a marker rule. requestBody: required: true content: application/json: schema: type: object properties: id: description: Unique marker rule identifier within the channel. Provided by the customer or auto-generated when omitted. type: string minLength: 1 streamType: type: string enum: - HLS description: Stream type a marker rule applies to. Currently only `HLS`. type: type: string enum: - CUE - DATERANGE description: 'HLS marker type to match: `CUE` (`EXT-X-CUE` tags) or `DATERANGE` (`EXT-X-DATERANGE` tags).' conditions: type: object additionalProperties: type: string description: Key-value conditions matched case-insensitively against the detected marker's attributes. All conditions must match (AND) for the rule to trigger. templateId: type: string minLength: 1 description: Identifier of the template applied when this rule matches. enabled: default: true description: Whether this rule is evaluated during break detection. Defaults to true. type: boolean required: - streamType - type - conditions - templateId parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique marker rule identifier within the channel. streamType: type: string enum: - HLS description: Stream type a marker rule applies to. Currently only `HLS`. type: type: string enum: - CUE - DATERANGE description: 'HLS marker type to match: `CUE` (`EXT-X-CUE` tags) or `DATERANGE` (`EXT-X-DATERANGE` tags).' conditions: type: object additionalProperties: type: string description: Key-value conditions matched case-insensitively against the detected marker's attributes. All conditions must match (AND) for the rule to trigger. templateId: type: string description: Identifier of the template applied when this rule matches. enabled: type: boolean description: Whether this rule is evaluated during break detection. createdAt: type: string description: Timestamp when the marker rule was created, as an ISO 8601 datetime string. required: - id - streamType - type - conditions - templateId - enabled - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Create api channels by channel id marker rules x-summary-source: derived operationId: postApiV1ChannelsByChannelIdMarkerRules x-operation-id-source: derived delete: description: Bulk delete marker rules by IDs. requestBody: required: true content: application/json: schema: type: object properties: ids: minItems: 1 type: array items: type: string minLength: 1 description: Identifiers of the marker rules to delete. At least one is required. required: - ids parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '204': description: Default Response tags: - Channels security: - basicAuth: [] orgId: [] summary: Delete api channels by channel id marker rules x-summary-source: derived operationId: deleteApiV1ChannelsByChannelIdMarkerRules x-operation-id-source: derived /api/v1/channels/{channelId}/markerRules/{markerRuleId}: get: description: Get a marker rule by ID. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: markerRuleId required: true description: Identifier of the marker rule. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique marker rule identifier within the channel. streamType: type: string enum: - HLS description: Stream type a marker rule applies to. Currently only `HLS`. type: type: string enum: - CUE - DATERANGE description: 'HLS marker type to match: `CUE` (`EXT-X-CUE` tags) or `DATERANGE` (`EXT-X-DATERANGE` tags).' conditions: type: object additionalProperties: type: string description: Key-value conditions matched case-insensitively against the detected marker's attributes. All conditions must match (AND) for the rule to trigger. templateId: type: string description: Identifier of the template applied when this rule matches. enabled: type: boolean description: Whether this rule is evaluated during break detection. createdAt: type: string description: Timestamp when the marker rule was created, as an ISO 8601 datetime string. required: - id - streamType - type - conditions - templateId - enabled - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id marker rules by marker rule id x-summary-source: derived operationId: getApiV1ChannelsByChannelIdMarkerRulesByMarkerRuleId x-operation-id-source: derived patch: description: Update a marker rule. requestBody: required: true content: application/json: schema: type: object properties: streamType: type: string enum: - HLS description: Stream type a marker rule applies to. Currently only `HLS`. type: type: string enum: - CUE - DATERANGE description: 'HLS marker type to match: `CUE` (`EXT-X-CUE` tags) or `DATERANGE` (`EXT-X-DATERANGE` tags).' conditions: type: object additionalProperties: type: string description: Key-value conditions matched case-insensitively against the detected marker's attributes. All conditions must match (AND) for the rule to trigger. templateId: type: string minLength: 1 description: Identifier of the template applied when this rule matches. enabled: default: true description: Whether this rule is evaluated during break detection. Defaults to true. type: boolean parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: markerRuleId required: true description: Identifier of the marker rule. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique marker rule identifier within the channel. streamType: type: string enum: - HLS description: Stream type a marker rule applies to. Currently only `HLS`. type: type: string enum: - CUE - DATERANGE description: 'HLS marker type to match: `CUE` (`EXT-X-CUE` tags) or `DATERANGE` (`EXT-X-DATERANGE` tags).' conditions: type: object additionalProperties: type: string description: Key-value conditions matched case-insensitively against the detected marker's attributes. All conditions must match (AND) for the rule to trigger. templateId: type: string description: Identifier of the template applied when this rule matches. enabled: type: boolean description: Whether this rule is evaluated during break detection. createdAt: type: string description: Timestamp when the marker rule was created, as an ISO 8601 datetime string. required: - id - streamType - type - conditions - templateId - enabled - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Update api channels by channel id marker rules by marker rule id x-summary-source: derived operationId: patchApiV1ChannelsByChannelIdMarkerRulesByMarkerRuleId x-operation-id-source: derived delete: description: Delete a marker rule. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: markerRuleId required: true description: Identifier of the marker rule. responses: '204': description: Default Response tags: - Channels security: - basicAuth: [] orgId: [] summary: Delete api channels by channel id marker rules by marker rule id x-summary-source: derived operationId: deleteApiV1ChannelsByChannelIdMarkerRulesByMarkerRuleId x-operation-id-source: derived /api/v1/channels/{channelId}/detection/history: get: description: List detected ad-marker history for a channel with pagination, filtering, and sorting. Each entry records the detected marker and the action taken, plus (when applicable) the matched marker rule, the resulting break, and a reason for skipped/failed detections. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique marker detection identifier. originId: type: string description: Identifier of the origin whose polling detected the marker. markerRuleId: description: Identifier of the marker rule that matched the detected marker, if any. type: string breakId: description: Identifier of the break scheduled from this detection, if one was created. type: string action: type: string enum: - CREATED - SKIPPED - FAILED description: 'Outcome recorded for a detected marker: `CREATED` (a break was scheduled), `SKIPPED` (no break scheduled), or `FAILED` (scheduling failed).' marker: type: string description: The raw marker detected in the stream manifest. reason: description: Reason a detection was skipped or failed. type: string createdAt: type: string description: Timestamp when the marker was detected, as an ISO 8601 datetime string. required: - id - originId - action - marker - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id detection history x-summary-source: derived operationId: getApiV1ChannelsByChannelIdDetectionHistory x-operation-id-source: derived /api/v1/channels/{channelId}/detection/history/{markerDetectionId}: get: description: Get a detected ad-marker history entry by ID. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: markerDetectionId required: true description: Identifier of the marker detection record. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique marker detection identifier. originId: type: string description: Identifier of the origin whose polling detected the marker. markerRuleId: description: Identifier of the marker rule that matched the detected marker, if any. type: string breakId: description: Identifier of the break scheduled from this detection, if one was created. type: string action: type: string enum: - CREATED - SKIPPED - FAILED description: 'Outcome recorded for a detected marker: `CREATED` (a break was scheduled), `SKIPPED` (no break scheduled), or `FAILED` (scheduling failed).' marker: type: string description: The raw marker detected in the stream manifest. reason: description: Reason a detection was skipped or failed. type: string createdAt: type: string description: Timestamp when the marker was detected, as an ISO 8601 datetime string. required: - id - originId - action - marker - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id detection history by marker detection id x-summary-source: derived operationId: getApiV1ChannelsByChannelIdDetectionHistoryByMarkerDetectionId x-operation-id-source: derived /api/v1/channels/{channelId}/integrations: get: description: List all channel integrations for a channel with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique channel integration identifier within the channel. channelId: type: string description: Identifier of the channel this integration belongs to. type: type: string enum: - SSAI - SGAI description: 'Channel integration type: `SSAI` (server-side ad insertion) or `SGAI` (server-guided ad insertion).' vendor: type: string enum: - GOOGLE description: Ad insertion vendor. Currently only `GOOGLE` (Google Ad Manager). daiAssetKeys: description: Google DAI asset keys for the server-side (SSAI) path. type: array items: type: string customAssetKey: description: Google Ad Manager (GAM) custom asset key of the Pod Serving live stream used for the server-guided (SGAI) path. type: string createdAt: type: string description: Timestamp when the channel integration was created, as an ISO 8601 datetime string. required: - id - channelId - type - vendor - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id integrations x-summary-source: derived operationId: getApiV1ChannelsByChannelIdIntegrations x-operation-id-source: derived post: description: Create a channel integration. requestBody: required: true content: application/json: schema: oneOf: - oneOf: - type: object properties: id: description: Unique channel integration identifier within the channel. Provided by the customer or auto-generated when omitted. type: string minLength: 1 type: type: string enum: - SSAI description: 'Channel integration type discriminator. `SSAI`: server-side ad insertion.' vendor: type: string enum: - GOOGLE description: 'Ad insertion vendor. `GOOGLE`: Google Ad Manager (GAM).' daiAssetKeys: description: Google DAI asset keys for the server-side (SSAI) path. At least one is required; duplicate keys are removed. Each key may back at most one channel integration within an organization. minItems: 1 type: array items: type: string minLength: 1 required: - type - vendor - daiAssetKeys - oneOf: - type: object properties: id: description: Unique channel integration identifier within the channel. Provided by the customer or auto-generated when omitted. type: string minLength: 1 type: type: string enum: - SGAI description: 'Channel integration type discriminator. `SGAI`: server-guided ad insertion.' vendor: type: string enum: - GOOGLE description: 'Ad insertion vendor. `GOOGLE`: Google Ad Manager (GAM).' customAssetKey: type: string minLength: 1 description: Google Ad Manager (GAM) custom asset key of the Pod Serving live stream used for the server-guided (SGAI) path. A key may back at most one channel integration within an organization. required: - type - vendor - customAssetKey parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel integration identifier within the channel. channelId: type: string description: Identifier of the channel this integration belongs to. type: type: string enum: - SSAI - SGAI description: 'Channel integration type: `SSAI` (server-side ad insertion) or `SGAI` (server-guided ad insertion).' vendor: type: string enum: - GOOGLE description: Ad insertion vendor. Currently only `GOOGLE` (Google Ad Manager). daiAssetKeys: description: Google DAI asset keys for the server-side (SSAI) path. type: array items: type: string customAssetKey: description: Google Ad Manager (GAM) custom asset key of the Pod Serving live stream used for the server-guided (SGAI) path. type: string createdAt: type: string description: Timestamp when the channel integration was created, as an ISO 8601 datetime string. required: - id - channelId - type - vendor - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Create api channels by channel id integrations x-summary-source: derived operationId: postApiV1ChannelsByChannelIdIntegrations x-operation-id-source: derived /api/v1/channels/{channelId}/integrations/{channelIntegrationId}: get: description: Get a channel integration by ID. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: channelIntegrationId required: true description: Identifier of the channel integration. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel integration identifier within the channel. channelId: type: string description: Identifier of the channel this integration belongs to. type: type: string enum: - SSAI - SGAI description: 'Channel integration type: `SSAI` (server-side ad insertion) or `SGAI` (server-guided ad insertion).' vendor: type: string enum: - GOOGLE description: Ad insertion vendor. Currently only `GOOGLE` (Google Ad Manager). daiAssetKeys: description: Google DAI asset keys for the server-side (SSAI) path. type: array items: type: string customAssetKey: description: Google Ad Manager (GAM) custom asset key of the Pod Serving live stream used for the server-guided (SGAI) path. type: string createdAt: type: string description: Timestamp when the channel integration was created, as an ISO 8601 datetime string. required: - id - channelId - type - vendor - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id integrations by channel integration id x-summary-source: derived operationId: getApiV1ChannelsByChannelIdIntegrationsByChannelIntegrationId x-operation-id-source: derived patch: description: Update a channel integration. requestBody: required: true content: application/json: schema: oneOf: - oneOf: - type: object properties: type: type: string enum: - SSAI description: 'Channel integration type discriminator. `SSAI`: server-side ad insertion.' vendor: type: string enum: - GOOGLE description: 'Ad insertion vendor. `GOOGLE`: Google Ad Manager (GAM).' daiAssetKeys: description: Google DAI asset keys for the server-side (SSAI) path. At least one is required; duplicate keys are removed. Each key may back at most one channel integration within an organization. minItems: 1 type: array items: type: string minLength: 1 required: - type - vendor - daiAssetKeys - oneOf: - type: object properties: type: type: string enum: - SGAI description: 'Channel integration type discriminator. `SGAI`: server-guided ad insertion.' vendor: type: string enum: - GOOGLE description: 'Ad insertion vendor. `GOOGLE`: Google Ad Manager (GAM).' customAssetKey: type: string minLength: 1 description: Google Ad Manager (GAM) custom asset key of the Pod Serving live stream used for the server-guided (SGAI) path. A key may back at most one channel integration within an organization. required: - type - vendor - customAssetKey parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: channelIntegrationId required: true description: Identifier of the channel integration. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique channel integration identifier within the channel. channelId: type: string description: Identifier of the channel this integration belongs to. type: type: string enum: - SSAI - SGAI description: 'Channel integration type: `SSAI` (server-side ad insertion) or `SGAI` (server-guided ad insertion).' vendor: type: string enum: - GOOGLE description: Ad insertion vendor. Currently only `GOOGLE` (Google Ad Manager). daiAssetKeys: description: Google DAI asset keys for the server-side (SSAI) path. type: array items: type: string customAssetKey: description: Google Ad Manager (GAM) custom asset key of the Pod Serving live stream used for the server-guided (SGAI) path. type: string createdAt: type: string description: Timestamp when the channel integration was created, as an ISO 8601 datetime string. required: - id - channelId - type - vendor - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Update api channels by channel id integrations by channel integration id x-summary-source: derived operationId: patchApiV1ChannelsByChannelIdIntegrationsByChannelIntegrationId x-operation-id-source: derived delete: description: Delete a channel integration. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: channelIntegrationId required: true description: Identifier of the channel integration. responses: '204': description: Default Response tags: - Channels security: - basicAuth: [] orgId: [] summary: Delete api channels by channel id integrations by channel integration id x-summary-source: derived operationId: deleteApiV1ChannelsByChannelIdIntegrationsByChannelIntegrationId x-operation-id-source: derived /api/v1/channels/{channelId}/origins: get: description: List all origins for a channel with pagination, filtering, and sorting. parameters: - schema: default: 1 type: integer minimum: 1 maximum: 9007199254740991 in: query name: page required: false description: Page number to return. The first page is 1. - schema: default: 20 type: integer minimum: 1 maximum: 100 in: query name: pageSize required: false description: Number of items to return per page, between 1 and 100. - schema: type: string in: query name: filter required: false description: Optional RSQL filter expression (for example `status==READY;duration=gt=30`). Each resource exposes its own allow-list of filterable fields and operators. - schema: type: string in: query name: sort required: false description: Optional comma-separated list of fields to sort by; prefix a field with `-` for descending order. Defaults to newest first (createdAt descending). - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '200': description: Default Response content: application/json: schema: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique origin identifier. channelId: type: string description: Identifier of the channel this origin belongs to. url: type: string description: Manifest URL polled by the break detection service. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: type: boolean description: Whether this origin participates in its channel break-detection failover. priority: type: number description: Failover order within the channel; lower means higher priority. Defaults to 0. createdAt: type: string description: Timestamp when the origin was created, as an ISO 8601 datetime string. required: - id - channelId - url - type - enabled - priority - createdAt additionalProperties: false description: The page of results. pagination: type: object properties: page: type: number description: Page number of this result set. The first page is 1. pageSize: type: number description: Number of items requested per page. total: type: number description: Total number of items matching the query across all pages. totalPages: type: number description: Total number of pages available for the query. required: - page - pageSize - total - totalPages additionalProperties: false description: Pagination metadata for the result set. required: - data - pagination additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id origins x-summary-source: derived operationId: getApiV1ChannelsByChannelIdOrigins x-operation-id-source: derived post: description: Create a new origin within a channel. The channel is taken from the path. requestBody: required: true content: application/json: schema: type: object properties: id: description: Unique origin identifier. Provided by the customer or auto-generated when omitted. type: string minLength: 1 url: type: string format: uri description: Manifest URL polled by the break detection service. Must be a valid URL. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: default: false description: Whether this origin participates in its channel break-detection failover. Set the initial value on create; afterwards toggle it via the enable/disable endpoints (PATCH does not change it). Defaults to false. type: boolean priority: default: 0 description: 'Failover order within the channel: the detection loop tries enabled origins from lowest to highest priority and uses the first that responds. Lower means higher priority; negatives are allowed. Defaults to 0.' type: integer minimum: -9007199254740991 maximum: 9007199254740991 required: - url - type parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. responses: '201': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique origin identifier. channelId: type: string description: Identifier of the channel this origin belongs to. url: type: string description: Manifest URL polled by the break detection service. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: type: boolean description: Whether this origin participates in its channel break-detection failover. priority: type: number description: Failover order within the channel; lower means higher priority. Defaults to 0. createdAt: type: string description: Timestamp when the origin was created, as an ISO 8601 datetime string. required: - id - channelId - url - type - enabled - priority - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Create api channels by channel id origins x-summary-source: derived operationId: postApiV1ChannelsByChannelIdOrigins x-operation-id-source: derived /api/v1/channels/{channelId}/origins/{originId}: get: description: Get an origin by ID within a channel. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: originId required: true description: Identifier of the origin. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique origin identifier. channelId: type: string description: Identifier of the channel this origin belongs to. url: type: string description: Manifest URL polled by the break detection service. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: type: boolean description: Whether this origin participates in its channel break-detection failover. priority: type: number description: Failover order within the channel; lower means higher priority. Defaults to 0. createdAt: type: string description: Timestamp when the origin was created, as an ISO 8601 datetime string. required: - id - channelId - url - type - enabled - priority - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Get api channels by channel id origins by origin id x-summary-source: derived operationId: getApiV1ChannelsByChannelIdOriginsByOriginId x-operation-id-source: derived patch: description: Update an origin within a channel. requestBody: required: true content: application/json: schema: type: object properties: url: type: string format: uri description: Manifest URL polled by the break detection service. Must be a valid URL. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string priority: description: Failover order within the channel; lower means higher priority, and negatives are allowed. type: integer minimum: -9007199254740991 maximum: 9007199254740991 parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: originId required: true description: Identifier of the origin. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique origin identifier. channelId: type: string description: Identifier of the channel this origin belongs to. url: type: string description: Manifest URL polled by the break detection service. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: type: boolean description: Whether this origin participates in its channel break-detection failover. priority: type: number description: Failover order within the channel; lower means higher priority. Defaults to 0. createdAt: type: string description: Timestamp when the origin was created, as an ISO 8601 datetime string. required: - id - channelId - url - type - enabled - priority - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Update api channels by channel id origins by origin id x-summary-source: derived operationId: patchApiV1ChannelsByChannelIdOriginsByOriginId x-operation-id-source: derived delete: description: Delete an origin within a channel. parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: originId required: true description: Identifier of the origin. responses: '204': description: Default Response tags: - Channels security: - basicAuth: [] orgId: [] summary: Delete api channels by channel id origins by origin id x-summary-source: derived operationId: deleteApiV1ChannelsByChannelIdOriginsByOriginId x-operation-id-source: derived /api/v1/channels/{channelId}/origins/{originId}/enable: post: description: Enable an origin within a channel (sets `enabled` to true). parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: originId required: true description: Identifier of the origin. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique origin identifier. channelId: type: string description: Identifier of the channel this origin belongs to. url: type: string description: Manifest URL polled by the break detection service. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: type: boolean description: Whether this origin participates in its channel break-detection failover. priority: type: number description: Failover order within the channel; lower means higher priority. Defaults to 0. createdAt: type: string description: Timestamp when the origin was created, as an ISO 8601 datetime string. required: - id - channelId - url - type - enabled - priority - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Create api channels by channel id origins by origin id enable x-summary-source: derived operationId: postApiV1ChannelsByChannelIdOriginsByOriginIdEnable x-operation-id-source: derived /api/v1/channels/{channelId}/origins/{originId}/disable: post: description: Disable an origin within a channel (sets `enabled` to false). parameters: - schema: type: string in: path name: channelId required: true description: Identifier of the channel. - schema: type: string in: path name: originId required: true description: Identifier of the origin. responses: '200': description: Default Response content: application/json: schema: type: object properties: id: type: string description: Unique origin identifier. channelId: type: string description: Identifier of the channel this origin belongs to. url: type: string description: Manifest URL polled by the break detection service. type: type: string enum: - DASH - HLS - HESP description: 'Manifest format of a stream origin: `DASH`, `HLS`, or `HESP`.' name: description: Human-readable display name for the origin. type: string enabled: type: boolean description: Whether this origin participates in its channel break-detection failover. priority: type: number description: Failover order within the channel; lower means higher priority. Defaults to 0. createdAt: type: string description: Timestamp when the origin was created, as an ISO 8601 datetime string. required: - id - channelId - url - type - enabled - priority - createdAt additionalProperties: false tags: - Channels security: - basicAuth: [] orgId: [] summary: Create api channels by channel id origins by origin id disable x-summary-source: derived operationId: postApiV1ChannelsByChannelIdOriginsByOriginIdDisable x-operation-id-source: derived /channels: get: tags: - Channels operationId: get-channels summary: Get all channels x-mcp: description: List the live channels of the organization. Supports filtering (name, search, status) and cursor pagination. Channel status follows the engine lifecycle (deploying, starting, playing, stopped, error, ...). parameters: - schema: type: string description: Filter by external ID. Matches channels where any entry of 'externalIds' equals the value. required: false description: Filter by external ID. Matches channels where any entry of 'externalIds' equals the value. name: externalId in: query - schema: type: string description: Pagination cursor required: false description: Pagination cursor name: cursor in: query - schema: type: - number - 'null' maximum: 100 description: Maximum number of channels to return (max 100) required: false description: Maximum number of channels to return (max 100) name: limit in: query - schema: type: string description: Filter by channel name required: false description: Filter by channel name name: name in: query - schema: type: string description: Search channels based on ID or name required: false description: Search channels based on ID or name name: search in: query - schema: type: string description: Comma-separated list of statuses to filter by required: false description: Comma-separated list of statuses to filter by name: status in: query - schema: type: string description: Filter by channel ID required: false description: Filter by channel ID name: id in: query responses: '200': description: List of channels content: application/json: schema: $ref: '#/components/schemas/PaginatedChannelResult' security: - BasicAuth: [] post: tags: - Channels operationId: create-channel summary: Create a new channel requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateChannelBody' responses: '200': description: Channel created content: application/json: schema: $ref: '#/components/schemas/ChannelCreatedObjectResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}: get: tags: - Channels operationId: get-channel summary: Get a channel by ID x-mcp: description: Get a single channel by id. Related resources (ingests = contribution feeds, distributions = playback outputs, engines = transcoder instances) have their own list operations. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: 'Comma-separated list of related resources to include. Valid values: `ingests`, `engines`, `distributions`' required: false description: 'Comma-separated list of related resources to include. Valid values: `ingests`, `engines`, `distributions`' name: include in: query responses: '200': description: The requested channel content: application/json: schema: $ref: '#/components/schemas/ChannelObjectResultWithIncludes' security: - BasicAuth: [] patch: tags: - Channels operationId: update-channel summary: Update a channel by ID parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateChannelBody' responses: '200': description: Updated channel content: application/json: schema: $ref: '#/components/schemas/ChannelObjectResult' security: - BasicAuth: [] delete: tags: - Channels operationId: delete-channel summary: Delete a channel by ID parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path responses: '204': description: Empty response security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/drm/configs: get: tags: - Channels operationId: get-channel-drm-configs summary: Get the DRM content protection configurations of a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path responses: '200': description: The DRM content protection configurations content: application/json: schema: $ref: '#/components/schemas/ChannelDrmConfigsResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/start: post: tags: - Channels operationId: start-channel summary: Start a channel (will start all connected engines) x-mcp: destructiveHint: true description: Start a channel, which starts all its connected engines. This deploys transcoding infrastructure and starts billing transcoding minutes until the channel is stopped — only call it when the user explicitly asks to start. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path responses: '204': description: Channel started security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/stop: post: tags: - Channels operationId: stop-channel summary: Stop a channel (will stop all connected engines) x-mcp: destructiveHint: true description: Stop a channel and all its connected engines. Viewers lose the stream immediately — only call it when the user explicitly asks to stop. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path responses: '204': description: Channel stopped security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/ingests: get: tags: - Channels operationId: get-channel-ingests summary: Get ingests of a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Pagination cursor required: false description: Pagination cursor name: cursor in: query - schema: type: - number - 'null' maximum: 100 description: Maximum number of items to return (max 100) required: false description: Maximum number of items to return (max 100) name: limit in: query responses: '200': description: List of ingests content: application/json: schema: $ref: '#/components/schemas/PaginatedIngestResult' security: - BasicAuth: [] post: tags: - Channels operationId: create-channel-ingest summary: Create an ingest for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateIngestBody' responses: '200': description: Ingest created content: application/json: schema: $ref: '#/components/schemas/IngestObjectResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/engines: get: tags: - Channels operationId: get-channel-engines summary: Get engines of a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Pagination cursor required: false description: Pagination cursor name: cursor in: query - schema: type: - number - 'null' maximum: 100 description: Maximum number of items to return (max 100) required: false description: Maximum number of items to return (max 100) name: limit in: query responses: '200': description: List of engines content: application/json: schema: $ref: '#/components/schemas/PaginatedEngineResult' security: - BasicAuth: [] post: tags: - Channels operationId: create-channel-engine summary: Create an engine for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path requestBody: required: true content: application/json: schema: type: object properties: ingestId: type: string description: Ingest ID to connect the engine to name: type: string description: Name of the engine region: type: string description: Region ID to deploy the engine in priority: type: number minimum: -100 maximum: 100 description: Engine priority (-100 to 100). Lower numbers mean higher priority drm: type: boolean description: Enable DRM. Only possible when enabled for your organization. drmProvider: type: string enum: - ezdrm - drmtoday description: DRM provider to use. Only possible when your organization has access to the provider. Defaults to the organization default provider. quality: type: object properties: abrLadderId: type: string description: ABR ladder ID required: - abrLadderId description: Quality configuration daiAssetKey: type: - string - 'null' description: DAI asset key overlays: type: array items: type: object properties: url: type: string description: URL of the overlay image position: type: object properties: top: type: integer minimum: 0 description: Pixels from top bottom: type: integer minimum: 0 description: Pixels from bottom (ignored if top is present) left: type: integer minimum: 0 description: Pixels from left right: type: integer minimum: 0 description: Pixels from right (ignored if left is present) description: Overlay position size: type: object properties: width: type: integer minimum: 0 description: Width in pixels height: type: integer minimum: 0 description: Height in pixels description: Overlay size opacity: type: number minimum: 0 maximum: 1 description: Overlay opacity (`0`=fully transparent, `1`=fully opaque) required: - url description: Image overlay configuration outputs: type: object properties: hesp: type: boolean default: true description: Enable HESP output. Enabled by default. hls: type: boolean default: true description: Enable HLS output. Enabled by default. hlsMpegTs: type: boolean default: false description: Enable HLS MPEG-TS output. Only available when enabled for your organization. llHls: type: boolean default: false description: Enable Low-Latency HLS output. Enabling this also enables HLS output. Disabled by default. description: Output format configuration restream: type: array items: $ref: '#/components/schemas/Restream' description: Restream destinations. Only available when the engine runs in an on-prem region vision: type: - object - 'null' properties: toneLut: type: - object - 'null' properties: saturationBoost: type: - string - 'null' enum: - high - low - null description: Saturation boost level strength: type: - string - 'null' enum: - low - medium - high - null description: Tone mapping strength additionalProperties: false description: Tone mapping LUT configuration masteringDisplay: type: - object - 'null' properties: primaries: type: - object - 'null' properties: type: type: - string - 'null' enum: - rec2020 - p3d65 - rec709 - custom - null description: Color primaries preset red: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom red primary coordinates (required when type is `custom`) green: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom green primary coordinates (required when type is `custom`) blue: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom blue primary coordinates (required when type is `custom`) additionalProperties: false description: Mastering display color primaries whitePoint: type: - object - 'null' properties: type: type: - string - 'null' enum: - d65 - d60 - dci - custom - null description: White point preset x: type: - number - 'null' description: Custom white point x coordinate (required when type is `custom`) y: type: - number - 'null' description: Custom white point y coordinate (required when type is `custom`) additionalProperties: false description: Mastering display white point maxDisplayMasteringLuminance: type: - number - 'null' minimum: 0 maximum: 10000 description: Maximum display mastering luminance in nits (0-10000) minDisplayMasteringLuminance: type: - number - 'null' minimum: 0 description: Minimum display mastering luminance in nits additionalProperties: false description: Mastering display configuration contentLightLevels: type: - object - 'null' properties: cllMode: type: - string - 'null' enum: - auto - expert - null description: Content light level mode. `expert` requires maxCll and maxFall (nits) maxCll: type: - number - 'null' minimum: 0 description: Maximum content light level in nits (required when cllMode is `expert`) maxFall: type: - number - 'null' minimum: 0 description: Maximum frame-average light level in nits (required when cllMode is `expert`) additionalProperties: false description: Content light level configuration globalLook: type: - object - 'null' properties: l8Mode: type: - string - 'null' enum: - 'off' - quickControls - null description: L8 global look mode l8ContrastBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 contrast boost (required when l8Mode is `quickControls`) l8MidBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 mid boost (required when l8Mode is `quickControls`) l8SaturationBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 saturation boost (required when l8Mode is `quickControls`) additionalProperties: false description: Global look (L8) configuration contentType: type: - object - 'null' properties: l11ContentType: type: - string - 'null' enum: - default - cinema - game - sport - ugc - null description: L11 content type l11WhitePointK: type: - number - 'null' description: L11 white point in Kelvin, snapped to the 16 RPU steps additionalProperties: false description: Content type (L11) configuration additionalProperties: false description: Vision configuration. Only available when enabled for your organization. Pass `null` to disable. atmos: type: - object - 'null' properties: dialnorm: type: - integer - 'null' minimum: -31 maximum: -1 description: Dolby Atmos dialnorm value. Must be an integer between -1 and -31. Pass `null` to unset it. required: - dialnorm additionalProperties: false description: Dolby Atmos configuration. Only available when the connected ABR ladder has Dolby Atmos audio configured. Pass `null` to disable. required: - name - region - quality additionalProperties: false responses: '200': description: Engine created content: application/json: schema: $ref: '#/components/schemas/EngineObjectResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/distributions: get: tags: - Channels operationId: get-channel-distributions summary: Get distributions of a channel description: Distributions are ordered alphabetically by name. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Pagination cursor required: false description: Pagination cursor name: cursor in: query - schema: type: - number - 'null' maximum: 100 description: Maximum number of items to return (max 100) required: false description: Maximum number of items to return (max 100) name: limit in: query responses: '200': description: List of distributions, ordered alphabetically by name content: application/json: schema: $ref: '#/components/schemas/PaginatedDistributionResult' security: - BasicAuth: [] post: tags: - Channels operationId: create-channel-distribution summary: Create a distribution for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDistributionBody' responses: '200': description: Distribution created content: application/json: schema: $ref: '#/components/schemas/DistributionObjectResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/instream-metadata/{uuid}: post: tags: - Channels operationId: send-channel-instream-metadata summary: Send instream metadata for a channel x-mcp: expose: false parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Instream metadata UUID required: true description: Instream metadata UUID name: uuid in: path requestBody: required: true content: application/octet-stream: schema: $ref: '#/components/schemas/SendInstreamMetadataBody' responses: '200': description: Instream metadata accepted '413': description: 'Payload too large: the instream metadata payload exceeds the configured maximum size (default 65536 bytes)' '429': description: 'Too many requests: the per-channel instream metadata rate limit was exceeded' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/runs: get: tags: - Channels operationId: get-channel-runs summary: Get engine runs of a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Pagination cursor required: false description: Pagination cursor name: cursor in: query - schema: type: - number - 'null' description: Maximum number of runs to return required: false description: Maximum number of runs to return name: limit in: query - schema: type: string description: Filter runs starting after this timestamp required: false description: Filter runs starting after this timestamp name: start in: query - schema: type: string description: Filter runs ending before this timestamp required: false description: Filter runs ending before this timestamp name: end in: query - schema: type: string description: Comma-separated list of engine IDs to filter by required: false description: Comma-separated list of engine IDs to filter by name: engineIds in: query responses: '200': description: List of engine runs content: application/json: schema: $ref: '#/components/schemas/PaginatedEngineRunResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/analytics/transcoding-minutes: get: tags: - Channels operationId: get-channel-transcoding-minutes summary: Get transcoding minutes analytics for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string enum: - engine - channel description: Group results by engine or channel required: false description: Group results by engine or channel name: groupBy in: query - schema: type: string enum: - 15min - hour - day - month description: Time resolution for the analytics data required: true description: Time resolution for the analytics data name: resolution in: query - schema: type: string description: Comma-separated list of engine IDs to filter by required: false description: Comma-separated list of engine IDs to filter by name: engineIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Transcoding minutes analytics data content: application/json: schema: $ref: '#/components/schemas/AnalyticsListResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/analytics/viewing-minutes: get: tags: - Channels operationId: get-channel-viewing-minutes summary: Get viewing minutes analytics for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string enum: - channel - distribution - streaming-format description: Group results by channel, distribution, or streaming format required: false description: Group results by channel, distribution, or streaming format name: groupBy in: query - schema: type: string enum: - 15min - hour - day - month description: Time resolution for the analytics data required: true description: Time resolution for the analytics data name: resolution in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Viewing minutes analytics data content: application/json: schema: $ref: '#/components/schemas/AnalyticsListResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/analytics/bytes-transferred: get: tags: - Channels operationId: get-channel-bytes-transferred summary: Get bytes transferred analytics for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string enum: - channel - distribution - streaming-format description: Group results by channel, distribution, or streaming format required: false description: Group results by channel, distribution, or streaming format name: groupBy in: query - schema: type: string enum: - 15min - hour - day - month description: Time resolution for the analytics data required: true description: Time resolution for the analytics data name: resolution in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Bytes transferred analytics data content: application/json: schema: $ref: '#/components/schemas/AnalyticsListResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/analytics/viewing-minutes/browsers: get: tags: - Channels operationId: get-channel-viewing-minutes-browsers summary: Get viewing minutes grouped by browser for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Viewing minutes by browser content: application/json: schema: $ref: '#/components/schemas/ViewingBrowserListResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/analytics/viewing-minutes/countries: get: tags: - Channels operationId: get-channel-viewing-minutes-countries summary: Get viewing minutes grouped by country for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Viewing minutes by country content: application/json: schema: $ref: '#/components/schemas/ViewingCountryListResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/analytics/bytes-transferred/browsers: get: tags: - Channels operationId: get-channel-bytes-transferred-browsers summary: Get bytes transferred grouped by browser for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Bytes transferred by browser content: application/json: schema: $ref: '#/components/schemas/ViewingBrowserListResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/analytics/bytes-transferred/countries: get: tags: - Channels operationId: get-channel-bytes-transferred-countries summary: Get bytes transferred grouped by country for a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string description: Start date for the analytics period required: true description: Start date for the analytics period name: start in: query - schema: type: string description: End date for the analytics period required: true description: End date for the analytics period name: end in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: UTC offset in minutes required: false description: UTC offset in minutes name: utcOffset in: query responses: '200': description: Bytes transferred by country content: application/json: schema: $ref: '#/components/schemas/ViewingCountryListResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/analytics/insights/countries: get: tags: - Channels operationId: get-channel-insights-countries summary: Get country insights for a channel description: Data is only available for the last 30 days. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string enum: - hour - day - week - month description: Time period for the insights required: true description: Time period for the insights name: period in: query - schema: type: string description: Comma-separated list of channel IDs to filter by required: false description: Comma-separated list of channel IDs to filter by name: channelIds in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query responses: '200': description: Country insights data content: application/json: schema: $ref: '#/components/schemas/CountryInsightsListResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/analytics/insights/browsers-os: get: tags: - Channels operationId: get-channel-insights-browsers-os summary: Get browser and OS insights for a channel description: Data is only available for the last 30 days. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string enum: - hour - day - week - month description: Time period for the insights required: true description: Time period for the insights name: period in: query - schema: type: string description: Comma-separated list of channel IDs to filter by required: false description: Comma-separated list of channel IDs to filter by name: channelIds in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query responses: '200': description: Browser/OS insights data content: application/json: schema: $ref: '#/components/schemas/BrowserOsInsightsListResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/analytics/insights/viewers: get: tags: - Channels operationId: get-channel-insights-viewers summary: Get viewer count insights for a channel description: Data is only available for the last 30 days. parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path - schema: type: string enum: - hour - day - week - month description: Time period for the insights required: true description: Time period for the insights name: period in: query - schema: type: string description: Comma-separated list of channel IDs to filter by required: false description: Comma-separated list of channel IDs to filter by name: channelIds in: query - schema: type: string description: Comma-separated list of distribution IDs to filter by required: false description: Comma-separated list of distribution IDs to filter by name: distributionIds in: query - schema: type: string description: Comma-separated list of streaming formats to filter by required: false description: Comma-separated list of streaming formats to filter by name: streamingFormats in: query responses: '200': description: Viewer count insights data content: application/json: schema: $ref: '#/components/schemas/ViewersInsightsListResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) /channels/{id}/custom-endpoints: post: tags: - Channels operationId: create-custom-endpoint summary: Create a custom endpoint on a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateCustomEndpointBody' responses: '200': description: Created custom endpoint content: application/json: schema: $ref: '#/components/schemas/CustomEndpointObjectResult' security: - BasicAuth: [] get: tags: - Channels operationId: get-channel-custom-endpoints summary: List all custom endpoints of a channel parameters: - schema: type: string description: Channel ID required: true description: Channel ID name: id in: path responses: '200': description: List of custom endpoints content: application/json: schema: $ref: '#/components/schemas/CustomEndpointListResult' security: - BasicAuth: [] servers: - url: https://api.theo.live/v2 description: V2 API - url: https://api.theo.live description: Base (for /v1 endpoints) components: schemas: CreateCustomEndpointBody: type: object properties: name: type: string minLength: 1 description: Name of the custom endpoint src: type: string minLength: 1 description: Source URL srcType: type: string enum: - hesp - hls - dash description: Source type (hesp, hls or dash) provider: type: string minLength: 1 description: Provider name (must be configured for the organization) adSystem: type: string minLength: 1 description: Ad system name (must be configured for the organization). 'sgai' is always allowed. Defaults to 'sgai' if not specified drmConfig: $ref: '#/components/schemas/CustomEndpointDrmConfig' cdn: type: string minLength: 1 pattern: ^[a-zA-Z0-9]+$ description: CDN identifier priority: type: integer description: Priority (lower is higher priority) required: - name - src - srcType - provider - cdn - priority additionalProperties: false PaginatedEngineRunResult: type: object properties: data: type: array items: $ref: '#/components/schemas/EngineRun' description: List of engine runs pagination: type: object properties: hasMore: type: boolean description: Whether more results are available cursor: type: string description: Cursor for the next page of results required: - hasMore - cursor description: Pagination info required: - data - pagination Restream: type: object properties: id: type: string minLength: 1 description: Unique restream ID url: type: string pattern: '^(rtmp|rtmps|srt):' description: Restream destination URL required: - id - url additionalProperties: false ChannelDrmConfigsResult: type: object properties: contentProtections: type: array items: $ref: '#/components/schemas/ChannelDrmContentProtection' description: List of DRM content protection configurations required: - contentProtections PaginatedChannelResult: type: object properties: data: type: array items: $ref: '#/components/schemas/Channel' description: List of channels pagination: type: object properties: hasMore: type: boolean description: Whether more results are available cursor: type: string description: Cursor for the next page of results required: - hasMore - cursor description: Pagination info required: - data - pagination DistributionObjectResult: type: object properties: data: allOf: - $ref: '#/components/schemas/Distribution' - description: Distribution object required: - data PaginatedEngineResult: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique identifier of the engine name: type: string description: Name of the engine createdAt: type: string description: Creation timestamp updatedAt: type: string description: Last update timestamp quality: type: object properties: abrLadderId: type: string description: ABR ladder ID required: - abrLadderId description: Quality configuration overlays: type: array items: type: object properties: url: type: string description: URL of the overlay image position: type: object properties: top: type: integer minimum: 0 description: Pixels from top bottom: type: integer minimum: 0 description: Pixels from bottom (ignored if top is present) left: type: integer minimum: 0 description: Pixels from left right: type: integer minimum: 0 description: Pixels from right (ignored if left is present) description: Overlay position size: type: object properties: width: type: integer minimum: 0 description: Width in pixels height: type: integer minimum: 0 description: Height in pixels description: Overlay size opacity: type: number minimum: 0 maximum: 1 description: Overlay opacity (`0`=fully transparent, `1`=fully opaque) required: - url description: Image overlay configuration drm: type: boolean description: Whether DRM is enabled drmProvider: type: string enum: - ezdrm - drmtoday description: DRM provider used by this engine priority: type: number description: Engine priority status: type: string enum: - stopped - deploying - starting - waiting - ingesting - playing - stopping - error - deleting - deleted description: Current status of the engine daiAssetKey: type: - string - 'null' description: DAI asset key outputs: type: object properties: hesp: type: boolean default: true description: Enable HESP output. Enabled by default. hls: type: boolean default: true description: Enable HLS output. Enabled by default. hlsMpegTs: type: boolean default: false description: Enable HLS MPEG-TS output. Only available when enabled for your organization. llHls: type: boolean default: false description: Enable Low-Latency HLS output. Enabling this also enables HLS output. Disabled by default. description: Output format configuration vision: type: - object - 'null' properties: toneLut: type: - object - 'null' properties: saturationBoost: type: - string - 'null' enum: - high - low - null description: Saturation boost level strength: type: - string - 'null' enum: - low - medium - high - null description: Tone mapping strength additionalProperties: false description: Tone mapping LUT configuration masteringDisplay: type: - object - 'null' properties: primaries: type: - object - 'null' properties: type: type: - string - 'null' enum: - rec2020 - p3d65 - rec709 - custom - null description: Color primaries preset red: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom red primary coordinates (required when type is `custom`) green: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom green primary coordinates (required when type is `custom`) blue: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom blue primary coordinates (required when type is `custom`) additionalProperties: false description: Mastering display color primaries whitePoint: type: - object - 'null' properties: type: type: - string - 'null' enum: - d65 - d60 - dci - custom - null description: White point preset x: type: - number - 'null' description: Custom white point x coordinate (required when type is `custom`) y: type: - number - 'null' description: Custom white point y coordinate (required when type is `custom`) additionalProperties: false description: Mastering display white point maxDisplayMasteringLuminance: type: - number - 'null' minimum: 0 maximum: 10000 description: Maximum display mastering luminance in nits (0-10000) minDisplayMasteringLuminance: type: - number - 'null' minimum: 0 description: Minimum display mastering luminance in nits additionalProperties: false description: Mastering display configuration contentLightLevels: type: - object - 'null' properties: cllMode: type: - string - 'null' enum: - auto - expert - null description: Content light level mode. `expert` requires maxCll and maxFall (nits) maxCll: type: - number - 'null' minimum: 0 description: Maximum content light level in nits (required when cllMode is `expert`) maxFall: type: - number - 'null' minimum: 0 description: Maximum frame-average light level in nits (required when cllMode is `expert`) additionalProperties: false description: Content light level configuration globalLook: type: - object - 'null' properties: l8Mode: type: - string - 'null' enum: - 'off' - quickControls - null description: L8 global look mode l8ContrastBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 contrast boost (required when l8Mode is `quickControls`) l8MidBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 mid boost (required when l8Mode is `quickControls`) l8SaturationBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 saturation boost (required when l8Mode is `quickControls`) additionalProperties: false description: Global look (L8) configuration contentType: type: - object - 'null' properties: l11ContentType: type: - string - 'null' enum: - default - cinema - game - sport - ugc - null description: L11 content type l11WhitePointK: type: - number - 'null' description: L11 white point in Kelvin, snapped to the 16 RPU steps additionalProperties: false description: Content type (L11) configuration additionalProperties: false description: Vision configuration atmos: type: - object - 'null' properties: dialnorm: type: integer minimum: -31 maximum: -1 description: Dolby Atmos dialnorm value. Must be an integer between -1 and -31. required: - dialnorm additionalProperties: false description: Dolby Atmos configuration required: - id - name - createdAt - updatedAt - quality - overlays - drm - priority - status - outputs description: List of engines pagination: type: object properties: hasMore: type: boolean description: Whether more results are available cursor: type: string description: Cursor for the next page of results required: - hasMore - cursor description: Pagination info required: - data - pagination PaginatedIngestResult: type: object properties: data: type: array items: $ref: '#/components/schemas/Ingest' description: List of ingests pagination: type: object properties: hasMore: type: boolean description: Whether more results are available cursor: type: string description: Cursor for the next page of results required: - hasMore - cursor description: Pagination info required: - data - pagination Distribution: type: object properties: id: type: string description: Unique identifier of the distribution createdAt: type: string description: Creation timestamp name: type: string description: Name of the distribution externalId: type: string description: External identifier for the distribution enabled: type: boolean description: Whether the distribution is enabled targetLatency: type: number description: 'Deprecated: use latencies instead.' latencies: type: object properties: hesp: type: - number - 'null' minimum: 1 maximum: 30 description: 'HESP latency in seconds (1-30, default: 2)' hls: type: - number - 'null' minimum: 6 maximum: 30 description: 'HLS latency in seconds (6-30, default: 10)' description: Latency configuration per output protocol security: type: object properties: geoBlocking: type: object properties: enabled: type: boolean description: Whether geo-blocking is enabled mode: type: string enum: - allow - deny description: Geo-blocking mode countries: type: array items: type: string description: List of country codes required: - enabled - mode - countries description: Geo-blocking configuration ipBlocking: type: object properties: enabled: type: boolean description: Whether IP blocking is enabled mode: type: string enum: - allow - deny description: IP blocking mode cidrs: type: array items: type: string description: List of CIDR ranges required: - enabled - mode - cidrs description: IP blocking configuration refererBlocking: type: object properties: enabled: type: boolean description: Whether referer blocking is enabled allowedDomains: type: array items: type: string description: List of allowed domains allowNativeApps: type: boolean description: Whether native apps are allowed required: - enabled - allowedDomains - allowNativeApps description: Referer blocking configuration rewriteSegmentUrls: type: boolean description: When enabled, a short-lived token is added to the segment URLs, derived from the token that was passed. This only works when JWT security is enabled on the same distribution. keys: type: array items: type: object properties: id: type: string description: Security key ID name: type: string description: Security key name required: - id description: Security keys required: - geoBlocking - ipBlocking - keys description: Security configuration endpoints: type: object properties: engineIds: type: array items: type: string description: Connected engine IDs required: - engineIds description: Endpoint configuration webRtc: type: object properties: priority: type: number description: WebRTC priority src: type: object properties: name: type: string description: WebRTC source name accountId: type: string description: WebRTC account ID apiUrl: type: string description: WebRTC API URL required: - name - accountId - apiUrl description: WebRTC source configuration required: - priority - src description: WebRTC configuration maxBitrate: type: number description: Maximum bitrate limit in bps outputs: type: object properties: hesp: type: boolean default: true description: Enable HESP output. Enabled by default. hls: type: boolean default: true description: Enable HLS output. Enabled by default. hlsMpegTs: type: boolean default: false description: Enable HLS MPEG-TS output. Disabled by default. description: Output format configuration dvr: type: object properties: enabled: type: boolean description: Whether DVR is enabled on the distribution description: DVR configuration overrides: type: array items: type: object properties: deviceType: type: - string - 'null' enum: - tv - mobile - desktop - other - null description: Target device type sdkType: type: - string - 'null' enum: - native - web - null description: Target SDK type osName: type: - string - 'null' enum: - apple - android - windows - roku - other - null description: Target OS name profileId: type: - string - 'null' description: Target profile ID targets: type: array items: type: object properties: distributionId: type: string description: Target distribution ID weight: type: number minimum: 0 maximum: 100 description: Weight (0-100) required: - distributionId - weight description: Override target distributions with weights required: - targets description: Distribution overrides customEndpoints: type: array items: type: object properties: customEndpointId: type: string description: ID of the connected custom endpoint weight: type: number description: Weight (0-100) required: - customEndpointId - weight description: Connected custom endpoints with weights ads: type: object properties: dai: type: object properties: weight: type: integer minimum: 0 maximum: 100 description: Weight for DAI endpoints (0-100) priority: type: integer description: Priority for DAI endpoints (any integer, lower = higher priority) required: - weight - priority additionalProperties: false description: DAI endpoint settings additionalProperties: false description: Ads configuration for the distribution playerSettings: type: object properties: hespCooldown: type: number minimum: 0 maximum: 300 description: Cooldown period in seconds (0-300) before the player retries HESP playback after falling back to another protocol. Defaults to 120 seconds when not set. additionalProperties: false description: Player settings applied to the player configuration in the discovery response required: - id - createdAt - name - enabled - latencies - security - endpoints - dvr ChannelObjectResult: type: object properties: data: allOf: - $ref: '#/components/schemas/Channel' - description: Channel object required: - data Channel: type: object properties: id: type: string description: Unique identifier of the channel createdAt: type: string description: Creation timestamp name: type: string description: Name of the channel status: type: string enum: - ready - stopped - deploying - starting - waiting - ingesting - playing - stopping - error - deleting - deleted description: Current status of the channel externalId: type: string description: Deprecated, use 'externalIds' instead. For now, this returns the first entry of the 'externalIds' list. deprecated: true externalIds: type: array items: type: string description: External identifiers of the channel timeout: type: number description: Timeout in seconds ads: type: object properties: enabled: type: boolean description: Whether OptiView ads are enabled on the channel settings: type: object properties: assetKey: type: string description: Deprecated. Use customAssetKey instead. deprecated: true layout: type: string enum: - SINGLE - DOUBLE - LSHAPE_AD - LSHAPE_CONTENT deprecated: true enableBumperAds: type: boolean deprecated: true podDuration: type: number deprecated: true customAdTagParameters: type: object additionalProperties: type: string deprecated: true description: Deprecated. Only returned for channels still using the old (V1) ads API underneath. deprecated: true required: - enabled description: OptiView Ads configuration dvr: type: object properties: enabled: type: boolean description: Whether DVR is enabled windowInSeconds: type: number minimum: 60 maximum: 86400 description: DVR window in seconds (60-86400) required: - enabled description: DVR configuration nielsen: type: object properties: enabled: type: boolean description: Whether Nielsen is enabled required: - enabled description: Nielsen configuration instreamMetadata: type: object properties: enabled: type: boolean description: Whether instream metadata is enabled. Supported metadata is h264 registered or unregistered SEI metadata uuids: type: array items: type: string format: uuid description: Array of instream metadata SEI UUIDs required: - enabled description: Instream metadata configuration perpetual: type: boolean description: Whether this channel is 24/7 (never times out, excluded from transcoding analytics) organizationId: type: string description: Organization ID required: - id - createdAt - name - status - timeout - perpetual - organizationId ChannelCreatedObjectResult: type: object properties: data: $ref: '#/components/schemas/ChannelCreated' required: - data ViewingCountryListResult: type: object properties: data: type: array items: type: object properties: countryCode: type: string description: ISO country code amount: type: number description: Metric value required: - countryCode - amount description: List of country viewing data required: - data CreateIngestBody: type: object properties: name: type: string description: Name of the ingest type: type: string enum: - rtmp-push - rtmp-pull - srt-pull - srt-push - sdi-pull - rtsp-pull - ndi-pull description: 'Ingest type. Note: srt-push requires SRT push to be enabled at organization level' url: type: string description: Source URL (required for pull types, except sdi-pull and ndi-pull). Must start with "rtsp://" for rtsp-pull region: type: string description: Region ID (required for rtmp-push, srt-pull and rtmp-pull). Must be a single ingest enabled region for pull types. Required and must be a DUPLO region when a 'speech' enhancement is enabled. Required and must be an on-prem region for rtsp-pull, ndi-pull and sdi-pull (ndi-pull and sdi-pull additionally require the region to support the ingest type) captions: type: array items: type: object properties: channel: type: number description: Caption channel number language: type: string description: Caption language code label: type: string description: Caption label required: - channel - language description: Caption configuration tracks: type: object properties: audio: type: array items: type: object properties: pid: type: number description: Audio track PID (mandatory for multi-audio) language: type: string description: Audio track language code label: type: string description: Audio track label required: - language - label description: Audio track configuration description: Audio track configuration sdi: allOf: - $ref: '#/components/schemas/IngestSdi' - description: SDI capture card configuration (required for sdi-pull) ndi: allOf: - $ref: '#/components/schemas/IngestNdi' - description: NDI source configuration (required for ndi-pull) required: - name - type additionalProperties: false SendInstreamMetadataBody: type: string format: binary description: Binary blob of instream metadata as the payload for the UUID IncludedIngests: type: object properties: data: type: array items: $ref: '#/components/schemas/Ingest' description: First 10 ingests hasMore: type: boolean description: Whether there are more than 10 ingests link: type: string description: Link to the full ingests list count: type: number description: Total number of ingests required: - data - hasMore - link - count description: Included ingests preview IngestSdi: type: object properties: persistentId: type: string description: 'Persistent ID of the SDI capture card, identifying it across reboots. Required for sdi-pull ingests: it must match an available SDI device of the region (see `/regions/{regionId}/sdi`) that is not connected to another ingest' audioConnection: type: string enum: - auto - sdi - hdmi - optical-sdi - component - composite - svideo description: Audio connection type videoConnection: type: string enum: - auto - sdi - hdmi - optical-sdi - component - composite - svideo description: Video connection type videoMode: type: string enum: - auto - ntsc - ntsc2398 - pal - ntsc-p - pal-p - 1080p2398 - 1080p24 - 1080p25 - 1080p2997 - 1080p30 - 1080i50 - 1080i5994 - 1080i60 - 1080p50 - 1080p5994 - 1080p60 - 720p50 - 720p5994 - 720p60 - 1556p2398 - 1556p24 - 1556p25 - 2kdcip2398 - 2kdcip24 - 2kdcip25 - 2kdcip2997 - 2kdcip30 - 2kdcip50 - 2kdcip5994 - 2kdcip60 - 2160p2398 - 2160p24 - 2160p25 - 2160p2997 - 2160p30 - 2160p50 - 2160p5994 - 2160p60 - ntsc-widescreen - ntsc2398-widescreen - pal-widescreen - ntsc-p-widescreen - pal-p-widescreen - 4kdcip2398 - 4kdcip24 - 4kdcip25 - 4kdcip2997 - 4kdcip30 - 4kdcip50 - 4kdcip5994 - 4kdcip60 - 8kp2398 - 8kp24 - 8kp25 - 8kp2997 - 8kp30 - 8kp50 - 8kp5994 - 8kp60 - 8kdcip2398 - 8kdcip24 - 8kdcip25 - 8kdcip2997 - 8kdcip30 - 8kdcip50 - 8kdcip5994 - 8kdcip60 description: Video mode profile: type: string enum: - default - one-sub-device-full - one-sub-device-half - two-sub-devices-full - two-sub-devices-half - four-sub-devices-half description: SDI profile videoFormat: type: string enum: - auto - 8bit-yuv - 10bit-yuv - 8bit-argb - 8bit-bgra - 10bit-rgb description: Video format additionalProperties: false description: SDI capture card configuration (only for sdi-pull ingests) IngestObjectResult: type: object properties: data: allOf: - $ref: '#/components/schemas/Ingest' - description: Ingest object required: - data CreateChannelBody: type: object properties: name: type: string description: Name of the channel externalId: type: string description: Deprecated, use 'externalIds' instead. Shorthand for a single-entry 'externalIds'. For now, responses will keep returning 'externalId' with the first entry of 'externalIds'. deprecated: true externalIds: type: array items: type: string minLength: 1 minItems: 1 description: External identifiers for the channel. Each must be unique across all channels of the organization. Mutually exclusive with externalId. timeout: type: number minimum: 0 default: 3600 description: Timeout in seconds. To never stop, specify 0 ads: type: object properties: enabled: type: boolean description: Whether OptiView ads are enabled on the channel customAssetKey: type: string description: DAI asset key, only possible when Google is linked to your ads account timebase: type: string enum: - wallclock - pts description: Timebase for ad insertion. Defaults to "wallclock" settings: type: object properties: assetKey: type: string description: Deprecated. Use customAssetKey instead. deprecated: true layout: type: string enum: - SINGLE - DOUBLE - LSHAPE_AD - LSHAPE_CONTENT deprecated: true enableBumperAds: type: boolean deprecated: true podDuration: type: number deprecated: true customAdTagParameters: type: object additionalProperties: type: string deprecated: true description: Deprecated. V1 ads settings. deprecated: true required: - enabled description: OptiView Ads configuration dvr: type: object properties: enabled: type: boolean description: Whether DVR is enabled windowInSeconds: type: number minimum: 60 maximum: 86400 description: DVR window in seconds (60-86400) required: - enabled description: DVR configuration nielsen: type: object properties: enabled: type: boolean description: Whether Nielsen is enabled required: - enabled description: Nielsen configuration instreamMetadata: type: object properties: enabled: type: boolean description: Whether instream metadata is enabled. Supported metadata is h264 registered or unregistered SEI metadata uuids: type: array items: type: string format: uuid description: Array of instream metadata SEI UUIDs required: - enabled description: Instream metadata configuration ingests: type: array items: allOf: - $ref: '#/components/schemas/CreateIngestBody' - type: object properties: engines: type: array items: type: object properties: name: type: string description: Name of the engine region: type: string description: Region ID to deploy the engine in priority: type: number minimum: -100 maximum: 100 description: Engine priority (-100 to 100). Lower numbers mean higher priority drm: type: boolean description: Enable DRM. Only possible when enabled for your organization. drmProvider: type: string enum: - ezdrm - drmtoday description: DRM provider to use. Only possible when your organization has access to the provider. Defaults to the organization default provider. quality: type: object properties: abrLadderId: type: string description: ABR ladder ID required: - abrLadderId description: Quality configuration daiAssetKey: type: - string - 'null' description: DAI asset key overlays: type: array items: type: object properties: url: type: string description: URL of the overlay image position: type: object properties: top: type: integer minimum: 0 description: Pixels from top bottom: type: integer minimum: 0 description: Pixels from bottom (ignored if top is present) left: type: integer minimum: 0 description: Pixels from left right: type: integer minimum: 0 description: Pixels from right (ignored if left is present) description: Overlay position size: type: object properties: width: type: integer minimum: 0 description: Width in pixels height: type: integer minimum: 0 description: Height in pixels description: Overlay size opacity: type: number minimum: 0 maximum: 1 description: Overlay opacity (`0`=fully transparent, `1`=fully opaque) required: - url description: Image overlay configuration outputs: type: object properties: hesp: type: boolean default: true description: Enable HESP output. Enabled by default. hls: type: boolean default: true description: Enable HLS output. Enabled by default. hlsMpegTs: type: boolean default: false description: Enable HLS MPEG-TS output. Only available when enabled for your organization. llHls: type: boolean default: false description: Enable Low-Latency HLS output. Enabling this also enables HLS output. Disabled by default. description: Output format configuration restream: type: array items: $ref: '#/components/schemas/Restream' description: Restream destinations. Only available when the engine runs in an on-prem region vision: type: - object - 'null' properties: toneLut: type: - object - 'null' properties: saturationBoost: type: - string - 'null' enum: - high - low - null description: Saturation boost level strength: type: - string - 'null' enum: - low - medium - high - null description: Tone mapping strength additionalProperties: false description: Tone mapping LUT configuration masteringDisplay: type: - object - 'null' properties: primaries: type: - object - 'null' properties: type: type: - string - 'null' enum: - rec2020 - p3d65 - rec709 - custom - null description: Color primaries preset red: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom red primary coordinates (required when type is `custom`) green: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom green primary coordinates (required when type is `custom`) blue: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom blue primary coordinates (required when type is `custom`) additionalProperties: false description: Mastering display color primaries whitePoint: type: - object - 'null' properties: type: type: - string - 'null' enum: - d65 - d60 - dci - custom - null description: White point preset x: type: - number - 'null' description: Custom white point x coordinate (required when type is `custom`) y: type: - number - 'null' description: Custom white point y coordinate (required when type is `custom`) additionalProperties: false description: Mastering display white point maxDisplayMasteringLuminance: type: - number - 'null' minimum: 0 maximum: 10000 description: Maximum display mastering luminance in nits (0-10000) minDisplayMasteringLuminance: type: - number - 'null' minimum: 0 description: Minimum display mastering luminance in nits additionalProperties: false description: Mastering display configuration contentLightLevels: type: - object - 'null' properties: cllMode: type: - string - 'null' enum: - auto - expert - null description: Content light level mode. `expert` requires maxCll and maxFall (nits) maxCll: type: - number - 'null' minimum: 0 description: Maximum content light level in nits (required when cllMode is `expert`) maxFall: type: - number - 'null' minimum: 0 description: Maximum frame-average light level in nits (required when cllMode is `expert`) additionalProperties: false description: Content light level configuration globalLook: type: - object - 'null' properties: l8Mode: type: - string - 'null' enum: - 'off' - quickControls - null description: L8 global look mode l8ContrastBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 contrast boost (required when l8Mode is `quickControls`) l8MidBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 mid boost (required when l8Mode is `quickControls`) l8SaturationBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 saturation boost (required when l8Mode is `quickControls`) additionalProperties: false description: Global look (L8) configuration contentType: type: - object - 'null' properties: l11ContentType: type: - string - 'null' enum: - default - cinema - game - sport - ugc - null description: L11 content type l11WhitePointK: type: - number - 'null' description: L11 white point in Kelvin, snapped to the 16 RPU steps additionalProperties: false description: Content type (L11) configuration additionalProperties: false description: Vision configuration. Only available when enabled for your organization. Pass `null` to disable. atmos: type: - object - 'null' properties: dialnorm: type: - integer - 'null' minimum: -31 maximum: -1 description: Dolby Atmos dialnorm value. Must be an integer between -1 and -31. Pass `null` to unset it. required: - dialnorm additionalProperties: false description: Dolby Atmos configuration. Only available when the connected ABR ladder has Dolby Atmos audio configured. Pass `null` to disable. required: - name - region - quality additionalProperties: false description: Engines to create for this ingest additionalProperties: false description: Ingests to create for the channel distributions: type: array items: type: object properties: name: type: string description: Name of the distribution externalId: type: string description: External identifier for the distribution enabled: type: boolean description: Whether the distribution is enabled targetLatency: type: number description: 'Deprecated: use latencies.hesp instead. If set, will be applied as latencies.hesp.' latencies: type: object properties: hesp: type: - number - 'null' minimum: 1 maximum: 30 description: 'HESP latency in seconds (1-30, default: 2)' hls: type: - number - 'null' minimum: 6 maximum: 30 description: 'HLS latency in seconds (6-30, default: 10)' description: Latency configuration per output protocol security: type: object properties: geoBlocking: type: object properties: enabled: type: boolean description: Whether geo-blocking is enabled mode: type: string enum: - allow - deny description: Geo-blocking mode countries: type: array items: type: string description: List of country codes description: Geo-blocking configuration ipBlocking: type: object properties: enabled: type: boolean description: Whether IP blocking is enabled mode: type: string enum: - allow - deny description: IP blocking mode cidrs: type: array items: type: string description: List of CIDR ranges description: IP blocking configuration refererBlocking: type: object properties: enabled: type: boolean description: Whether referer blocking is enabled allowedDomains: type: array items: type: string description: List of allowed domains. Matched exactly against the referer host including port (e.g. example.com). `localhost` with an optional port (e.g. localhost:3000) is also allowed. allowNativeApps: type: boolean description: Whether native apps are allowed description: Referer blocking configuration rewriteSegmentUrls: type: boolean description: When enabled, a short-lived token is added to the segment URLs, derived from the token that was passed. This only works when JWT security is enabled on the same distribution. keys: type: array items: type: object properties: name: type: string description: Name of the security key key: type: string description: Security key value required: - key maxItems: 2 description: Security keys (max 2, create only) description: Security configuration webRtc: type: - object - 'null' properties: priority: type: number description: WebRTC priority src: type: object properties: name: type: string description: WebRTC source name accountId: type: string description: WebRTC account ID apiUrl: type: string description: WebRTC API URL required: - name - accountId - apiUrl description: WebRTC source configuration required: - priority - src description: WebRTC configuration outputs: type: object properties: hesp: type: boolean default: true description: Enable HESP output. Enabled by default. hls: type: boolean default: true description: Enable HLS output. Enabled by default. hlsMpegTs: type: boolean default: false description: Enable HLS MPEG-TS output. Disabled by default. description: Output format configuration maxBitrate: type: - number - 'null' description: Maximum bitrate limit in bps dvr: type: object properties: enabled: type: boolean description: Whether DVR is enabled on the distribution description: DVR configuration overrides: type: array items: type: object properties: deviceType: type: - string - 'null' enum: - tv - mobile - desktop - other - null description: Target device type sdkType: type: - string - 'null' enum: - native - web - null description: Target SDK type osName: type: - string - 'null' enum: - apple - android - windows - roku - other - null description: Target OS name profileId: type: - string - 'null' description: Target profile ID targets: type: array items: type: object properties: distributionId: type: string description: Target distribution ID weight: type: number minimum: 0 maximum: 100 description: Weight (0-100) required: - distributionId - weight description: Override target distributions with weights required: - targets description: Distribution overrides for device targeting customEndpoints: type: array items: type: object properties: customEndpointId: type: string description: ID of the custom endpoint to connect weight: type: integer minimum: 0 maximum: 100 default: 100 description: Weight (0-100, default 100) required: - customEndpointId description: Custom endpoints to connect to this distribution ads: type: - object - 'null' properties: dai: type: object properties: weight: type: integer minimum: 0 maximum: 100 description: Weight for DAI endpoints (0-100) priority: type: integer description: Priority for DAI endpoints (any integer, lower = higher priority) required: - weight - priority additionalProperties: false description: DAI endpoint settings additionalProperties: false description: Ads configuration for the distribution playerSettings: type: - object - 'null' properties: hespCooldown: type: number minimum: 0 maximum: 300 description: Cooldown period in seconds (0-300) before the player retries HESP playback after falling back to another protocol. Defaults to 120 seconds when not set. additionalProperties: false description: Player settings applied to the player configuration in the discovery response required: - name additionalProperties: false description: Distributions to create for the channel (endpoints will be auto-configured) required: - name additionalProperties: false CustomEndpoint: type: object properties: id: type: string description: Unique identifier createdAt: type: string description: Creation timestamp updatedAt: type: string description: Last update timestamp organizationId: type: string description: Organization ID channelId: type: string description: Channel ID name: type: string description: Name src: type: string description: Source URL srcType: type: string enum: - hesp - hls - dash description: Source type provider: type: string description: Provider adSystem: type: string description: Ad system (defaults to 'sgai') drmConfig: type: - object - 'null' properties: integration: type: string enum: - ezdrm - mediakind - drmtoday description: DRM integration type merchant: type: string description: Merchant identifier, for integrations that identify the customer per license request widevine: type: object properties: licenseUrl: type: string description: Widevine license URL required: - licenseUrl description: Widevine DRM configuration playready: type: object properties: licenseUrl: type: string description: PlayReady license URL required: - licenseUrl description: PlayReady DRM configuration fairplay: type: object properties: licenseUrl: type: string description: FairPlay license URL certificateUrl: type: string description: FairPlay certificate URL required: - licenseUrl - certificateUrl description: FairPlay DRM configuration required: - integration additionalProperties: false description: DRM configuration cdn: type: string description: CDN identifier priority: type: number description: Priority required: - id - createdAt - updatedAt - organizationId - channelId - name - src - srcType - provider - adSystem - cdn - priority description: Custom endpoint object BrowserOsInsightsListResult: type: object properties: data: type: array items: type: object properties: browserName: type: string description: Browser name browserVersion: type: string description: Browser version osName: type: string description: OS name osVersion: type: string description: OS version amount: type: number description: Number of unique viewers required: - browserName - browserVersion - osName - osVersion - amount description: List of browser/OS insights required: - data EngineRun: type: object properties: engineId: type: string description: Engine ID start: type: string description: Run start timestamp end: type: string description: Run end timestamp config: type: object properties: ingest: type: object properties: type: type: string description: Ingest type used url: type: string description: Ingest URL used required: - type abrLadderId: type: string description: ABR ladder ID used drm: type: boolean description: Whether DRM was enabled required: - ingest - abrLadderId - drm description: Run configuration startType: type: string description: How the run was started startId: type: string description: ID of the entity who did the start action stopType: type: string description: How the run was stopped stopId: type: string description: ID of entity who did the stop action required: - engineId - start - config - startType - startId CustomEndpointListResult: type: object properties: data: type: array items: $ref: '#/components/schemas/CustomEndpoint' description: List of custom endpoints required: - data AnalyticsListResult: type: object properties: data: type: array items: type: object properties: timestamp: type: string description: Timestamp of the data point records: type: array items: type: object properties: id: type: string description: Identifier of the grouped entity amount: type: number description: Metric value required: - id - amount description: Records for this time bucket required: - timestamp - records description: List of analytics data points required: - data Ingest: type: object properties: id: type: string description: Unique identifier of the ingest name: type: string description: Name of the ingest createdAt: type: string description: Creation timestamp type: type: string enum: - rtmp-push - rtmp-pull - srt-pull - srt-push - sdi-pull - rtsp-pull - ndi-pull description: Ingest type url: type: string description: Ingest URL streamKey: type: string description: Stream key for RTMP push ingests tracks: type: object properties: audio: type: array items: type: object properties: pid: type: number description: Audio track PID (mandatory for multi-audio) language: type: string description: Audio track language code label: type: string description: Audio track label required: - language - label description: Audio track configuration description: Audio track configuration captions: type: array items: type: object properties: channel: type: number description: Caption channel number language: type: string description: Caption language code label: type: string description: Caption label required: - channel - language description: Caption configuration sdi: $ref: '#/components/schemas/IngestSdi' ndi: $ref: '#/components/schemas/IngestNdi' required: - id - name - createdAt - type - url - tracks - captions ChannelCreated: allOf: - $ref: '#/components/schemas/Channel' - type: object properties: ingests: type: array items: $ref: '#/components/schemas/Ingest' description: Connected ingests engines: type: array items: type: object properties: id: type: string description: Unique identifier of the engine name: type: string description: Name of the engine createdAt: type: string description: Creation timestamp updatedAt: type: string description: Last update timestamp quality: type: object properties: abrLadderId: type: string description: ABR ladder ID required: - abrLadderId description: Quality configuration overlays: type: array items: type: object properties: url: type: string description: URL of the overlay image position: type: object properties: top: type: integer minimum: 0 description: Pixels from top bottom: type: integer minimum: 0 description: Pixels from bottom (ignored if top is present) left: type: integer minimum: 0 description: Pixels from left right: type: integer minimum: 0 description: Pixels from right (ignored if left is present) description: Overlay position size: type: object properties: width: type: integer minimum: 0 description: Width in pixels height: type: integer minimum: 0 description: Height in pixels description: Overlay size opacity: type: number minimum: 0 maximum: 1 description: Overlay opacity (`0`=fully transparent, `1`=fully opaque) required: - url description: Image overlay configuration drm: type: boolean description: Whether DRM is enabled drmProvider: type: string enum: - ezdrm - drmtoday description: DRM provider used by this engine priority: type: number description: Engine priority status: type: string enum: - stopped - deploying - starting - waiting - ingesting - playing - stopping - error - deleting - deleted description: Current status of the engine daiAssetKey: type: - string - 'null' description: DAI asset key outputs: type: object properties: hesp: type: boolean default: true description: Enable HESP output. Enabled by default. hls: type: boolean default: true description: Enable HLS output. Enabled by default. hlsMpegTs: type: boolean default: false description: Enable HLS MPEG-TS output. Only available when enabled for your organization. llHls: type: boolean default: false description: Enable Low-Latency HLS output. Enabling this also enables HLS output. Disabled by default. description: Output format configuration vision: type: - object - 'null' properties: toneLut: type: - object - 'null' properties: saturationBoost: type: - string - 'null' enum: - high - low - null description: Saturation boost level strength: type: - string - 'null' enum: - low - medium - high - null description: Tone mapping strength additionalProperties: false description: Tone mapping LUT configuration masteringDisplay: type: - object - 'null' properties: primaries: type: - object - 'null' properties: type: type: - string - 'null' enum: - rec2020 - p3d65 - rec709 - custom - null description: Color primaries preset red: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom red primary coordinates (required when type is `custom`) green: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom green primary coordinates (required when type is `custom`) blue: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom blue primary coordinates (required when type is `custom`) additionalProperties: false description: Mastering display color primaries whitePoint: type: - object - 'null' properties: type: type: - string - 'null' enum: - d65 - d60 - dci - custom - null description: White point preset x: type: - number - 'null' description: Custom white point x coordinate (required when type is `custom`) y: type: - number - 'null' description: Custom white point y coordinate (required when type is `custom`) additionalProperties: false description: Mastering display white point maxDisplayMasteringLuminance: type: - number - 'null' minimum: 0 maximum: 10000 description: Maximum display mastering luminance in nits (0-10000) minDisplayMasteringLuminance: type: - number - 'null' minimum: 0 description: Minimum display mastering luminance in nits additionalProperties: false description: Mastering display configuration contentLightLevels: type: - object - 'null' properties: cllMode: type: - string - 'null' enum: - auto - expert - null description: Content light level mode. `expert` requires maxCll and maxFall (nits) maxCll: type: - number - 'null' minimum: 0 description: Maximum content light level in nits (required when cllMode is `expert`) maxFall: type: - number - 'null' minimum: 0 description: Maximum frame-average light level in nits (required when cllMode is `expert`) additionalProperties: false description: Content light level configuration globalLook: type: - object - 'null' properties: l8Mode: type: - string - 'null' enum: - 'off' - quickControls - null description: L8 global look mode l8ContrastBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 contrast boost (required when l8Mode is `quickControls`) l8MidBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 mid boost (required when l8Mode is `quickControls`) l8SaturationBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 saturation boost (required when l8Mode is `quickControls`) additionalProperties: false description: Global look (L8) configuration contentType: type: - object - 'null' properties: l11ContentType: type: - string - 'null' enum: - default - cinema - game - sport - ugc - null description: L11 content type l11WhitePointK: type: - number - 'null' description: L11 white point in Kelvin, snapped to the 16 RPU steps additionalProperties: false description: Content type (L11) configuration additionalProperties: false description: Vision configuration atmos: type: - object - 'null' properties: dialnorm: type: integer minimum: -31 maximum: -1 description: Dolby Atmos dialnorm value. Must be an integer between -1 and -31. required: - dialnorm additionalProperties: false description: Dolby Atmos configuration required: - id - name - createdAt - updatedAt - quality - overlays - drm - priority - status - outputs description: Connected engines distributions: type: array items: $ref: '#/components/schemas/Distribution' description: Connected distributions required: - ingests - engines - distributions description: Created channel with connected resources UpdateChannelBody: type: object properties: name: type: string description: Name of the channel externalId: type: string description: Deprecated, use 'externalIds' instead. Shorthand for a single-entry 'externalIds'. For now, responses will keep returning 'externalId' with the first entry of 'externalIds'. deprecated: true externalIds: type: array items: type: string minLength: 1 description: External identifiers for the channel. Replaces the full list; an empty array clears all external IDs. Mutually exclusive with externalId. timeout: type: number minimum: 0 description: Timeout in seconds (minimum 60). To never stop, specify 0 ads: type: object properties: enabled: type: boolean description: Whether OptiView ads are enabled on the channel customAssetKey: type: string description: DAI asset key, only possible when Google is linked to your ads account timebase: type: string enum: - wallclock - pts description: Timebase for ad insertion. Defaults to "wallclock" settings: type: object properties: assetKey: type: string description: Deprecated. Use customAssetKey instead. deprecated: true layout: type: string enum: - SINGLE - DOUBLE - LSHAPE_AD - LSHAPE_CONTENT deprecated: true enableBumperAds: type: boolean deprecated: true podDuration: type: number deprecated: true customAdTagParameters: type: object additionalProperties: type: string deprecated: true description: Deprecated. V1 ads settings. deprecated: true required: - enabled description: OptiView Ads configuration. Only available when OptiView Ads is enabled for your organization. dvr: type: object properties: enabled: type: boolean description: Whether DVR is enabled windowInSeconds: type: number minimum: 60 maximum: 86400 description: DVR window in seconds (60-86400) required: - enabled description: DVR configuration. Only available when DVR feature is enabled for your organization. nielsen: type: object properties: enabled: type: boolean description: Whether Nielsen is enabled required: - enabled description: Nielsen configuration. Only available when Nielsen feature is enabled for your organization. instreamMetadata: type: object properties: enabled: type: boolean description: Whether instream metadata is enabled. Supported metadata is h264 registered or unregistered SEI metadata uuids: type: array items: type: string format: uuid description: Array of instream metadata SEI UUIDs required: - enabled description: Instream metadata configuration additionalProperties: false CustomEndpointObjectResult: type: object properties: data: $ref: '#/components/schemas/CustomEndpoint' required: - data CreateDistributionBody: type: object properties: name: type: string description: Name of the distribution externalId: type: string description: External identifier for the distribution enabled: type: boolean description: Whether the distribution is enabled targetLatency: type: number description: 'Deprecated: use latencies.hesp instead. If set, will be applied as latencies.hesp.' latencies: type: object properties: hesp: type: - number - 'null' minimum: 1 maximum: 30 description: 'HESP latency in seconds (1-30, default: 2)' hls: type: - number - 'null' minimum: 6 maximum: 30 description: 'HLS latency in seconds (6-30, default: 10)' description: Latency configuration per output protocol security: type: object properties: geoBlocking: type: object properties: enabled: type: boolean description: Whether geo-blocking is enabled mode: type: string enum: - allow - deny description: Geo-blocking mode countries: type: array items: type: string description: List of country codes description: Geo-blocking configuration ipBlocking: type: object properties: enabled: type: boolean description: Whether IP blocking is enabled mode: type: string enum: - allow - deny description: IP blocking mode cidrs: type: array items: type: string description: List of CIDR ranges description: IP blocking configuration refererBlocking: type: object properties: enabled: type: boolean description: Whether referer blocking is enabled allowedDomains: type: array items: type: string description: List of allowed domains. Matched exactly against the referer host including port (e.g. example.com). `localhost` with an optional port (e.g. localhost:3000) is also allowed. allowNativeApps: type: boolean description: Whether native apps are allowed description: Referer blocking configuration rewriteSegmentUrls: type: boolean description: When enabled, a short-lived token is added to the segment URLs, derived from the token that was passed. This only works when JWT security is enabled on the same distribution. keys: type: array items: type: object properties: name: type: string description: Name of the security key key: type: string description: Security key value required: - key maxItems: 2 description: Security keys (max 2, create only) description: Security configuration endpoints: type: object properties: engineIds: type: array items: type: string description: Engine IDs to connect description: Endpoint configuration webRtc: type: - object - 'null' properties: priority: type: number description: WebRTC priority src: type: object properties: name: type: string description: WebRTC source name accountId: type: string description: WebRTC account ID apiUrl: type: string description: WebRTC API URL required: - name - accountId - apiUrl description: WebRTC source configuration required: - priority - src description: WebRTC configuration outputs: type: object properties: hesp: type: boolean default: true description: Enable HESP output. Enabled by default. hls: type: boolean default: true description: Enable HLS output. Enabled by default. hlsMpegTs: type: boolean default: false description: Enable HLS MPEG-TS output. Disabled by default. description: Output format configuration maxBitrate: type: - number - 'null' description: Maximum bitrate limit in bps dvr: type: object properties: enabled: type: boolean description: Whether DVR is enabled on the distribution description: DVR configuration overrides: type: array items: type: object properties: deviceType: type: - string - 'null' enum: - tv - mobile - desktop - other - null description: Target device type sdkType: type: - string - 'null' enum: - native - web - null description: Target SDK type osName: type: - string - 'null' enum: - apple - android - windows - roku - other - null description: Target OS name profileId: type: - string - 'null' description: Target profile ID targets: type: array items: type: object properties: distributionId: type: string description: Target distribution ID weight: type: number minimum: 0 maximum: 100 description: Weight (0-100) required: - distributionId - weight description: Override target distributions with weights required: - targets description: Distribution overrides for device targeting customEndpoints: type: array items: type: object properties: customEndpointId: type: string description: ID of the custom endpoint to connect weight: type: integer minimum: 0 maximum: 100 default: 100 description: Weight (0-100, default 100) required: - customEndpointId description: Custom endpoints to connect to this distribution ads: type: - object - 'null' properties: dai: type: object properties: weight: type: integer minimum: 0 maximum: 100 description: Weight for DAI endpoints (0-100) priority: type: integer description: Priority for DAI endpoints (any integer, lower = higher priority) required: - weight - priority additionalProperties: false description: DAI endpoint settings additionalProperties: false description: Ads configuration for the distribution playerSettings: type: - object - 'null' properties: hespCooldown: type: number minimum: 0 maximum: 300 description: Cooldown period in seconds (0-300) before the player retries HESP playback after falling back to another protocol. Defaults to 120 seconds when not set. additionalProperties: false description: Player settings applied to the player configuration in the discovery response required: - name additionalProperties: false PaginatedDistributionResult: type: object properties: data: type: array items: $ref: '#/components/schemas/Distribution' description: List of distributions pagination: type: object properties: hasMore: type: boolean description: Whether more results are available cursor: type: string description: Cursor for the next page of results required: - hasMore - cursor description: Pagination info required: - data - pagination ViewersInsightsListResult: type: object properties: data: type: array items: type: object properties: timestamp: type: string description: Timestamp of the data point amount: type: number description: Number of unique viewers required: - timestamp - amount description: List of viewer count data points required: - data ChannelDrmContentProtection: type: object properties: integration: type: string description: DRM integration type merchant: type: string description: Merchant identifier, for integrations that identify the customer per license request widevine: type: object properties: licenseUrl: type: string description: Widevine license acquisition URL required: - licenseUrl description: Widevine configuration playready: type: object properties: licenseUrl: type: string description: PlayReady license acquisition URL required: - licenseUrl description: PlayReady configuration fairplay: type: object properties: licenseUrl: type: string description: FairPlay license acquisition URL certificateUrl: type: string description: FairPlay certificate URL required: - licenseUrl - certificateUrl description: FairPlay configuration required: - integration CountryInsightsListResult: type: object properties: data: type: array items: type: object properties: city: type: string description: City name countryCode: type: string description: ISO country code geoLocation: type: string description: Rounded latitude,longitude amount: type: number description: Number of unique viewers required: - city - countryCode - geoLocation - amount description: List of country insights required: - data IncludedDistributions: type: object properties: data: type: array items: $ref: '#/components/schemas/Distribution' description: First 10 distributions hasMore: type: boolean description: Whether there are more than 10 distributions link: type: string description: Link to the full distributions list count: type: number description: Total number of distributions required: - data - hasMore - link - count description: Included distributions preview CustomEndpointDrmConfig: type: object properties: integration: type: string enum: - ezdrm - mediakind - drmtoday description: DRM integration type merchant: type: string description: Merchant identifier, for integrations that identify the customer per license request widevine: type: object properties: licenseUrl: type: string description: Widevine license URL required: - licenseUrl description: Widevine DRM configuration playready: type: object properties: licenseUrl: type: string description: PlayReady license URL required: - licenseUrl description: PlayReady DRM configuration fairplay: type: object properties: licenseUrl: type: string description: FairPlay license URL certificateUrl: type: string description: FairPlay certificate URL required: - licenseUrl - certificateUrl description: FairPlay DRM configuration required: - integration additionalProperties: false description: Optional DRM configuration IncludedEngines: type: object properties: data: type: array items: type: object properties: id: type: string description: Unique identifier of the engine name: type: string description: Name of the engine createdAt: type: string description: Creation timestamp updatedAt: type: string description: Last update timestamp quality: type: object properties: abrLadderId: type: string description: ABR ladder ID required: - abrLadderId description: Quality configuration overlays: type: array items: type: object properties: url: type: string description: URL of the overlay image position: type: object properties: top: type: integer minimum: 0 description: Pixels from top bottom: type: integer minimum: 0 description: Pixels from bottom (ignored if top is present) left: type: integer minimum: 0 description: Pixels from left right: type: integer minimum: 0 description: Pixels from right (ignored if left is present) description: Overlay position size: type: object properties: width: type: integer minimum: 0 description: Width in pixels height: type: integer minimum: 0 description: Height in pixels description: Overlay size opacity: type: number minimum: 0 maximum: 1 description: Overlay opacity (`0`=fully transparent, `1`=fully opaque) required: - url description: Image overlay configuration drm: type: boolean description: Whether DRM is enabled drmProvider: type: string enum: - ezdrm - drmtoday description: DRM provider used by this engine priority: type: number description: Engine priority status: type: string enum: - stopped - deploying - starting - waiting - ingesting - playing - stopping - error - deleting - deleted description: Current status of the engine daiAssetKey: type: - string - 'null' description: DAI asset key outputs: type: object properties: hesp: type: boolean default: true description: Enable HESP output. Enabled by default. hls: type: boolean default: true description: Enable HLS output. Enabled by default. hlsMpegTs: type: boolean default: false description: Enable HLS MPEG-TS output. Only available when enabled for your organization. llHls: type: boolean default: false description: Enable Low-Latency HLS output. Enabling this also enables HLS output. Disabled by default. description: Output format configuration vision: type: - object - 'null' properties: toneLut: type: - object - 'null' properties: saturationBoost: type: - string - 'null' enum: - high - low - null description: Saturation boost level strength: type: - string - 'null' enum: - low - medium - high - null description: Tone mapping strength additionalProperties: false description: Tone mapping LUT configuration masteringDisplay: type: - object - 'null' properties: primaries: type: - object - 'null' properties: type: type: - string - 'null' enum: - rec2020 - p3d65 - rec709 - custom - null description: Color primaries preset red: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom red primary coordinates (required when type is `custom`) green: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom green primary coordinates (required when type is `custom`) blue: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom blue primary coordinates (required when type is `custom`) additionalProperties: false description: Mastering display color primaries whitePoint: type: - object - 'null' properties: type: type: - string - 'null' enum: - d65 - d60 - dci - custom - null description: White point preset x: type: - number - 'null' description: Custom white point x coordinate (required when type is `custom`) y: type: - number - 'null' description: Custom white point y coordinate (required when type is `custom`) additionalProperties: false description: Mastering display white point maxDisplayMasteringLuminance: type: - number - 'null' minimum: 0 maximum: 10000 description: Maximum display mastering luminance in nits (0-10000) minDisplayMasteringLuminance: type: - number - 'null' minimum: 0 description: Minimum display mastering luminance in nits additionalProperties: false description: Mastering display configuration contentLightLevels: type: - object - 'null' properties: cllMode: type: - string - 'null' enum: - auto - expert - null description: Content light level mode. `expert` requires maxCll and maxFall (nits) maxCll: type: - number - 'null' minimum: 0 description: Maximum content light level in nits (required when cllMode is `expert`) maxFall: type: - number - 'null' minimum: 0 description: Maximum frame-average light level in nits (required when cllMode is `expert`) additionalProperties: false description: Content light level configuration globalLook: type: - object - 'null' properties: l8Mode: type: - string - 'null' enum: - 'off' - quickControls - null description: L8 global look mode l8ContrastBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 contrast boost (required when l8Mode is `quickControls`) l8MidBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 mid boost (required when l8Mode is `quickControls`) l8SaturationBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 saturation boost (required when l8Mode is `quickControls`) additionalProperties: false description: Global look (L8) configuration contentType: type: - object - 'null' properties: l11ContentType: type: - string - 'null' enum: - default - cinema - game - sport - ugc - null description: L11 content type l11WhitePointK: type: - number - 'null' description: L11 white point in Kelvin, snapped to the 16 RPU steps additionalProperties: false description: Content type (L11) configuration additionalProperties: false description: Vision configuration atmos: type: - object - 'null' properties: dialnorm: type: integer minimum: -31 maximum: -1 description: Dolby Atmos dialnorm value. Must be an integer between -1 and -31. required: - dialnorm additionalProperties: false description: Dolby Atmos configuration required: - id - name - createdAt - updatedAt - quality - overlays - drm - priority - status - outputs description: First 10 engines hasMore: type: boolean description: Whether there are more than 10 engines link: type: string description: Link to the full engines list count: type: number description: Total number of engines required: - data - hasMore - link - count description: Included engines preview EngineObjectResult: type: object properties: data: type: object properties: id: type: string description: Unique identifier of the engine name: type: string description: Name of the engine createdAt: type: string description: Creation timestamp updatedAt: type: string description: Last update timestamp quality: type: object properties: abrLadderId: type: string description: ABR ladder ID required: - abrLadderId description: Quality configuration overlays: type: array items: type: object properties: url: type: string description: URL of the overlay image position: type: object properties: top: type: integer minimum: 0 description: Pixels from top bottom: type: integer minimum: 0 description: Pixels from bottom (ignored if top is present) left: type: integer minimum: 0 description: Pixels from left right: type: integer minimum: 0 description: Pixels from right (ignored if left is present) description: Overlay position size: type: object properties: width: type: integer minimum: 0 description: Width in pixels height: type: integer minimum: 0 description: Height in pixels description: Overlay size opacity: type: number minimum: 0 maximum: 1 description: Overlay opacity (`0`=fully transparent, `1`=fully opaque) required: - url description: Image overlay configuration drm: type: boolean description: Whether DRM is enabled drmProvider: type: string enum: - ezdrm - drmtoday description: DRM provider used by this engine priority: type: number description: Engine priority status: type: string enum: - stopped - deploying - starting - waiting - ingesting - playing - stopping - error - deleting - deleted description: Current status of the engine daiAssetKey: type: - string - 'null' description: DAI asset key outputs: type: object properties: hesp: type: boolean default: true description: Enable HESP output. Enabled by default. hls: type: boolean default: true description: Enable HLS output. Enabled by default. hlsMpegTs: type: boolean default: false description: Enable HLS MPEG-TS output. Only available when enabled for your organization. llHls: type: boolean default: false description: Enable Low-Latency HLS output. Enabling this also enables HLS output. Disabled by default. description: Output format configuration vision: type: - object - 'null' properties: toneLut: type: - object - 'null' properties: saturationBoost: type: - string - 'null' enum: - high - low - null description: Saturation boost level strength: type: - string - 'null' enum: - low - medium - high - null description: Tone mapping strength additionalProperties: false description: Tone mapping LUT configuration masteringDisplay: type: - object - 'null' properties: primaries: type: - object - 'null' properties: type: type: - string - 'null' enum: - rec2020 - p3d65 - rec709 - custom - null description: Color primaries preset red: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom red primary coordinates (required when type is `custom`) green: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom green primary coordinates (required when type is `custom`) blue: type: - object - 'null' properties: x: type: number description: Chromaticity x coordinate y: type: number description: Chromaticity y coordinate required: - x - y additionalProperties: false description: Custom blue primary coordinates (required when type is `custom`) additionalProperties: false description: Mastering display color primaries whitePoint: type: - object - 'null' properties: type: type: - string - 'null' enum: - d65 - d60 - dci - custom - null description: White point preset x: type: - number - 'null' description: Custom white point x coordinate (required when type is `custom`) y: type: - number - 'null' description: Custom white point y coordinate (required when type is `custom`) additionalProperties: false description: Mastering display white point maxDisplayMasteringLuminance: type: - number - 'null' minimum: 0 maximum: 10000 description: Maximum display mastering luminance in nits (0-10000) minDisplayMasteringLuminance: type: - number - 'null' minimum: 0 description: Minimum display mastering luminance in nits additionalProperties: false description: Mastering display configuration contentLightLevels: type: - object - 'null' properties: cllMode: type: - string - 'null' enum: - auto - expert - null description: Content light level mode. `expert` requires maxCll and maxFall (nits) maxCll: type: - number - 'null' minimum: 0 description: Maximum content light level in nits (required when cllMode is `expert`) maxFall: type: - number - 'null' minimum: 0 description: Maximum frame-average light level in nits (required when cllMode is `expert`) additionalProperties: false description: Content light level configuration globalLook: type: - object - 'null' properties: l8Mode: type: - string - 'null' enum: - 'off' - quickControls - null description: L8 global look mode l8ContrastBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 contrast boost (required when l8Mode is `quickControls`) l8MidBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 mid boost (required when l8Mode is `quickControls`) l8SaturationBoost: type: - string - 'null' enum: - 'off' - low - mid - high - null description: L8 saturation boost (required when l8Mode is `quickControls`) additionalProperties: false description: Global look (L8) configuration contentType: type: - object - 'null' properties: l11ContentType: type: - string - 'null' enum: - default - cinema - game - sport - ugc - null description: L11 content type l11WhitePointK: type: - number - 'null' description: L11 white point in Kelvin, snapped to the 16 RPU steps additionalProperties: false description: Content type (L11) configuration additionalProperties: false description: Vision configuration atmos: type: - object - 'null' properties: dialnorm: type: integer minimum: -31 maximum: -1 description: Dolby Atmos dialnorm value. Must be an integer between -1 and -31. required: - dialnorm additionalProperties: false description: Dolby Atmos configuration required: - id - name - createdAt - updatedAt - quality - overlays - drm - priority - status - outputs description: Engine object required: - data ViewingBrowserListResult: type: object properties: data: type: array items: type: object properties: browserName: type: string description: Browser name hardwareType: type: string description: Hardware type amount: type: number description: Metric value required: - browserName - hardwareType - amount description: List of browser viewing data required: - data IngestNdi: type: object properties: id: type: string description: 'ID of the NDI source. Required for ndi-pull ingests: it must match a non-stale NDI source of the region (see `/regions/{regionId}/ndi`) that is not connected to another ingest' required: - id additionalProperties: false description: NDI source configuration (only for ndi-pull ingests) ChannelObjectResultWithIncludes: type: object properties: data: allOf: - $ref: '#/components/schemas/Channel' - description: Channel object ingests: $ref: '#/components/schemas/IncludedIngests' engines: $ref: '#/components/schemas/IncludedEngines' distributions: $ref: '#/components/schemas/IncludedDistributions' required: - data securitySchemes: basicAuth: type: http scheme: basic description: API key (username) and secret (password). orgId: type: apiKey in: header name: x-org-id description: Organization identifier. BasicAuth: type: http scheme: basic x-refined-from: - dolby-optiview-ads-openapi-original.json - dolby-optiview-live-openapi-original.json x-generator: NSwag v14.6.3.0 (NJsonSchema v11.5.2.0 (Newtonsoft.Json v13.0.0.0)) x-code-samples-replace: {}