Adversarial review found the previous multi-flood design non-viable:
PlayoutModeSchedulerFlood never yields to a following Dynamic-start
schedule item, so only the first item ever played, and grouping
media items into a Collection silently dropped the requested order.
Redesign:
- Single-item lineup: one ProgramScheduleItemFlood referencing the
target directly (media item / collection / smart / multi / rerun /
playlist); no generated collection or playlist. Response PlaylistId
is null.
- Multi-item lineup (>= 2): one generated IsSystem Playlist in a
get-or-created IsSystem PlaylistGroup ("Channel Lineups"), one
PlaylistItem per entry in lineup order with PlayAll=true, referenced
by a single Flood schedule item. Rerun collections and playlists are
rejected (422) in multi lineups (PlaylistItem/CollectionKey lack the
fields to enumerate them).
Review fixes:
- Normalize + strict-validate MediaType<->CollectionType pairs once up
front (422 on mismatch / wrong id / not exactly one id).
- Reject MultiCollection with non-Shuffle order (mirrors
PlayoutModeMustBeValid), Mirror playout source, all via 422.
- OnDemand parity: queue TimeShiftOnDemandPlayout post-commit.
- De-collide generated ProgramSchedule and Playlist names against their
unique indexes instead of leaking a UNIQUE-constraint DbUpdateException.
- Generic 422 on save failure + ILogger; AnyAsync existence checks;
Either/Validation unwrap via Match; XML doc on request DTO + endpoint.
- Response model: ChannelId, PlaylistId (nullable), ProgramScheduleId,
PlayoutId (CollectionId removed). Regenerated OpenAPI v1.json + v1.d.ts.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
805 lines
32 KiB
TypeScript
805 lines
32 KiB
TypeScript
// This file is generated by web/scripts/generate-openapi-types.mjs.
|
|
// Do not edit by hand.
|
|
|
|
export interface components {
|
|
schemas: {
|
|
"AddItemsToCollectionRequest": {
|
|
"movieIds": null | Array<number>;
|
|
"showIds": null | Array<number>;
|
|
"seasonIds": null | Array<number>;
|
|
"episodeIds": null | Array<number>;
|
|
"artistIds": null | Array<number>;
|
|
"musicVideoIds": null | Array<number>;
|
|
"otherVideoIds": null | Array<number>;
|
|
"songIds": null | Array<number>;
|
|
"imageIds": null | Array<number>;
|
|
"remoteStreamIds": null | Array<number>;
|
|
};
|
|
"ArtworkContentTypeModel": {
|
|
"path": null | string;
|
|
"contentType": null | string;
|
|
"isExternalUrl"?: boolean;
|
|
"hasContentType"?: boolean;
|
|
"urlWithContentType"?: null | string;
|
|
};
|
|
"ArtworkUploadResponseModel": {
|
|
"path": string;
|
|
"contentType": string;
|
|
};
|
|
"BulkDeleteChannelsRequest": {
|
|
"channelIds": Array<number>;
|
|
};
|
|
"BulkMoveChannelsToGroupRequest": {
|
|
"channelIds": Array<number>;
|
|
"group": string;
|
|
};
|
|
"BulkRenumberChannelRequest": {
|
|
"id": number;
|
|
"number": string;
|
|
};
|
|
"BulkRenumberChannelsRequest": {
|
|
"channels": Array<components["schemas"]["BulkRenumberChannelRequest"]>;
|
|
};
|
|
"ChannelGuideChannelResponseModel": {
|
|
"number": string;
|
|
"name": string;
|
|
"programmes": Array<components["schemas"]["ChannelGuideProgrammeResponseModel"]>;
|
|
};
|
|
"ChannelGuideProgrammeResponseModel": {
|
|
"start": string;
|
|
"stop": string;
|
|
"title": string;
|
|
"subTitle": null | string;
|
|
"category": null | string;
|
|
"fillerKind": components["schemas"]["FillerKind"];
|
|
};
|
|
"ChannelGuideResponseModel": {
|
|
"start": string;
|
|
"end": string;
|
|
"channels": Array<components["schemas"]["ChannelGuideChannelResponseModel"]>;
|
|
};
|
|
"ChannelIdleBehavior": "StopOnDisconnect" | "KeepRunning";
|
|
"ChannelMusicVideoCreditsMode": "None" | "GenerateSubtitles";
|
|
"ChannelNowPlayingResponseModel": {
|
|
"title": string;
|
|
"startUtc": string;
|
|
"finishUtc": string;
|
|
};
|
|
"ChannelPlayoutMode": "Continuous" | "OnDemand";
|
|
"ChannelPlayoutSource": "Generated" | "Mirror";
|
|
"ChannelResponseModel": {
|
|
"id": number;
|
|
"number": string;
|
|
"sortNumber": number;
|
|
"name": string;
|
|
"group": string;
|
|
"categories": string;
|
|
"fFmpegProfile": string;
|
|
"language": string;
|
|
"streamingMode": string;
|
|
"isEnabled": boolean;
|
|
"showInEpg": boolean;
|
|
};
|
|
"ChannelSongVideoMode": "Default" | "WithProgress";
|
|
"ChannelStateResponseModel": {
|
|
"channelId": number;
|
|
"channelNumber": string;
|
|
"onAir": boolean;
|
|
"nowPlaying": null | components["schemas"]["ChannelNowPlayingResponseModel"];
|
|
};
|
|
"ChannelStreamSelectorMode": "Default" | "Custom" | "Troubleshooting";
|
|
"ChannelSubtitleMode": "None" | "Forced" | "Default" | "Any";
|
|
"ChannelTemplateResponseModel": {
|
|
"id": number;
|
|
"name": string;
|
|
"description": string;
|
|
"isSystem": boolean;
|
|
"isDefault": boolean;
|
|
"fFmpegProfileId": number;
|
|
"watermarkId": null | number;
|
|
"fallbackFillerId": null | number;
|
|
"preRollFillerId": null | number;
|
|
"midRollFillerId": null | number;
|
|
"postRollFillerId": null | number;
|
|
"streamSelectorMode": components["schemas"]["ChannelStreamSelectorMode"];
|
|
"streamSelector": null | string;
|
|
"preferredAudioLanguageCode": null | string;
|
|
"preferredAudioTitle": null | string;
|
|
"playoutSource": components["schemas"]["ChannelPlayoutSource"];
|
|
"playoutMode": components["schemas"]["ChannelPlayoutMode"];
|
|
"streamingMode": components["schemas"]["StreamingMode"];
|
|
"preferredSubtitleLanguageCode": null | string;
|
|
"subtitleMode": components["schemas"]["ChannelSubtitleMode"];
|
|
"musicVideoCreditsMode": components["schemas"]["ChannelMusicVideoCreditsMode"];
|
|
"musicVideoCreditsTemplate": null | string;
|
|
"songVideoMode": components["schemas"]["ChannelSongVideoMode"];
|
|
"transcodeMode": components["schemas"]["ChannelTranscodeMode"];
|
|
"idleBehavior": components["schemas"]["ChannelIdleBehavior"];
|
|
"shuffleScheduleItems": boolean;
|
|
"randomStartPoint": boolean;
|
|
"fixedStartTimeBehavior": components["schemas"]["FixedStartTimeBehavior"];
|
|
};
|
|
"ChannelTranscodeMode": "OnDemand";
|
|
"ChannelViewModel": {
|
|
"id": number;
|
|
"number": null | string;
|
|
"name": null | string;
|
|
"group": null | string;
|
|
"categories": null | string;
|
|
"fFmpegProfileId": number;
|
|
"slugSeconds": null | number;
|
|
"logo": components["schemas"]["ArtworkContentTypeModel"];
|
|
"streamSelectorMode": components["schemas"]["ChannelStreamSelectorMode"];
|
|
"streamSelector": null | string;
|
|
"preferredAudioLanguageCode": null | string;
|
|
"preferredAudioTitle": null | string;
|
|
"playoutSource": components["schemas"]["ChannelPlayoutSource"];
|
|
"playoutMode": components["schemas"]["ChannelPlayoutMode"];
|
|
"mirrorSourceChannelId": null | number;
|
|
"playoutOffset": null | string;
|
|
"streamingMode": components["schemas"]["StreamingMode"];
|
|
"watermarkId": null | number;
|
|
"fallbackFillerId": null | number;
|
|
"playoutCount": number;
|
|
"preferredSubtitleLanguageCode": null | string;
|
|
"subtitleMode": components["schemas"]["ChannelSubtitleMode"];
|
|
"musicVideoCreditsMode": components["schemas"]["ChannelMusicVideoCreditsMode"];
|
|
"musicVideoCreditsTemplate": null | string;
|
|
"songVideoMode": components["schemas"]["ChannelSongVideoMode"];
|
|
"transcodeMode": components["schemas"]["ChannelTranscodeMode"];
|
|
"idleBehavior": components["schemas"]["ChannelIdleBehavior"];
|
|
"isEnabled": boolean;
|
|
"showInEpg": boolean;
|
|
"webEncodedName"?: null | string;
|
|
};
|
|
"ChannelWatermarkImageSource": "Custom" | "ChannelLogo" | "Resource";
|
|
"ChannelWatermarkMode": "None" | "Permanent" | "Intermittent" | "OpacityExpression";
|
|
"CollectionType": "Collection" | "TelevisionShow" | "TelevisionSeason" | "Artist" | "MultiCollection" | "SmartCollection" | "Playlist" | "RerunFirstRun" | "RerunRerun" | "SearchQuery" | "Movie" | "Episode" | "MusicVideo" | "OtherVideo" | "Song" | "Image" | "RemoteStream" | "FakeCollection" | "FakePlaylistItem";
|
|
"CombinedVersion": {
|
|
"apiVersion": number;
|
|
"appVersion": null | string;
|
|
};
|
|
"CreateChannelFromLineupAdvancedOptionsRequest": {
|
|
"playbackOrder"?: null | components["schemas"]["PlaybackOrder"];
|
|
"fFmpegProfileId"?: null | number;
|
|
"watermarkId"?: null | number;
|
|
"fallbackFillerId"?: null | number;
|
|
"preRollFillerId"?: null | number;
|
|
"midRollFillerId"?: null | number;
|
|
"postRollFillerId"?: null | number;
|
|
"streamSelectorMode"?: null | components["schemas"]["ChannelStreamSelectorMode"];
|
|
"streamSelector"?: null | string;
|
|
"preferredAudioLanguageCode"?: null | string;
|
|
"preferredAudioTitle"?: null | string;
|
|
"playoutSource"?: null | components["schemas"]["ChannelPlayoutSource"];
|
|
"playoutMode"?: null | components["schemas"]["ChannelPlayoutMode"];
|
|
"streamingMode"?: null | components["schemas"]["StreamingMode"];
|
|
"preferredSubtitleLanguageCode"?: null | string;
|
|
"subtitleMode"?: null | components["schemas"]["ChannelSubtitleMode"];
|
|
"musicVideoCreditsMode"?: null | components["schemas"]["ChannelMusicVideoCreditsMode"];
|
|
"musicVideoCreditsTemplate"?: null | string;
|
|
"songVideoMode"?: null | components["schemas"]["ChannelSongVideoMode"];
|
|
"transcodeMode"?: null | components["schemas"]["ChannelTranscodeMode"];
|
|
"idleBehavior"?: null | components["schemas"]["ChannelIdleBehavior"];
|
|
"shuffleScheduleItems"?: null | boolean;
|
|
"randomStartPoint"?: null | boolean;
|
|
"fixedStartTimeBehavior"?: null | components["schemas"]["FixedStartTimeBehavior"];
|
|
};
|
|
"CreateChannelFromLineupItemRequest": {
|
|
"mediaType": components["schemas"]["LibraryBrowseMediaType"];
|
|
"collectionType": components["schemas"]["CollectionType"];
|
|
"collectionId": null | number;
|
|
"multiCollectionId": null | number;
|
|
"smartCollectionId": null | number;
|
|
"rerunCollectionId": null | number;
|
|
"mediaItemId": null | number;
|
|
"playlistId": null | number;
|
|
};
|
|
"CreateChannelFromLineupRequest": {
|
|
"name": string;
|
|
"number": string;
|
|
"group": string;
|
|
"categories": string;
|
|
"logo": components["schemas"]["ArtworkContentTypeModel"];
|
|
"isEnabled": boolean;
|
|
"showInEpg": boolean;
|
|
"templateId": number;
|
|
"advanced": null | components["schemas"]["CreateChannelFromLineupAdvancedOptionsRequest"];
|
|
"lineup": Array<components["schemas"]["CreateChannelFromLineupItemRequest"]>;
|
|
};
|
|
"CreateChannelFromLineupResponseModel": {
|
|
"channelId": number;
|
|
"playlistId": null | number;
|
|
"programScheduleId": number;
|
|
"playoutId": number;
|
|
};
|
|
"CreateChannelRequest": {
|
|
"name": null | string;
|
|
"number": null | string;
|
|
"group": null | string;
|
|
"categories": null | string;
|
|
"fFmpegProfileId": number;
|
|
"slugSeconds": null | number;
|
|
"logo": components["schemas"]["ArtworkContentTypeModel"];
|
|
"streamSelectorMode": components["schemas"]["ChannelStreamSelectorMode"];
|
|
"streamSelector": null | string;
|
|
"preferredAudioLanguageCode": null | string;
|
|
"preferredAudioTitle": null | string;
|
|
"playoutSource": components["schemas"]["ChannelPlayoutSource"];
|
|
"playoutMode": components["schemas"]["ChannelPlayoutMode"];
|
|
"mirrorSourceChannelId": null | number;
|
|
"playoutOffset": null | string;
|
|
"streamingMode": components["schemas"]["StreamingMode"];
|
|
"watermarkId": null | number;
|
|
"fallbackFillerId": null | number;
|
|
"preferredSubtitleLanguageCode": null | string;
|
|
"subtitleMode": components["schemas"]["ChannelSubtitleMode"];
|
|
"musicVideoCreditsMode": components["schemas"]["ChannelMusicVideoCreditsMode"];
|
|
"musicVideoCreditsTemplate": null | string;
|
|
"songVideoMode": components["schemas"]["ChannelSongVideoMode"];
|
|
"transcodeMode": components["schemas"]["ChannelTranscodeMode"];
|
|
"idleBehavior": components["schemas"]["ChannelIdleBehavior"];
|
|
"isEnabled": boolean;
|
|
"showInEpg": boolean;
|
|
};
|
|
"CreateChannelTemplateRequest": {
|
|
"name": string;
|
|
"description": string;
|
|
"fFmpegProfileId": number;
|
|
"watermarkId": null | number;
|
|
"fallbackFillerId": null | number;
|
|
"preRollFillerId": null | number;
|
|
"midRollFillerId": null | number;
|
|
"postRollFillerId": null | number;
|
|
"streamSelectorMode": components["schemas"]["ChannelStreamSelectorMode"];
|
|
"streamSelector": null | string;
|
|
"preferredAudioLanguageCode": null | string;
|
|
"preferredAudioTitle": null | string;
|
|
"playoutSource": components["schemas"]["ChannelPlayoutSource"];
|
|
"playoutMode": components["schemas"]["ChannelPlayoutMode"];
|
|
"streamingMode": components["schemas"]["StreamingMode"];
|
|
"preferredSubtitleLanguageCode": null | string;
|
|
"subtitleMode": components["schemas"]["ChannelSubtitleMode"];
|
|
"musicVideoCreditsMode": components["schemas"]["ChannelMusicVideoCreditsMode"];
|
|
"musicVideoCreditsTemplate": null | string;
|
|
"songVideoMode": components["schemas"]["ChannelSongVideoMode"];
|
|
"transcodeMode": components["schemas"]["ChannelTranscodeMode"];
|
|
"idleBehavior": components["schemas"]["ChannelIdleBehavior"];
|
|
"shuffleScheduleItems": boolean;
|
|
"randomStartPoint": boolean;
|
|
"fixedStartTimeBehavior": components["schemas"]["FixedStartTimeBehavior"];
|
|
};
|
|
"CreateCollectionRequest": {
|
|
"name": null | string;
|
|
};
|
|
"CreateFFmpegProfileRequest": {
|
|
"name": null | string;
|
|
"threadCount": number;
|
|
"normalizeAudio": boolean;
|
|
"normalizeVideo": boolean;
|
|
"hardwareAcceleration": components["schemas"]["HardwareAccelerationKind"];
|
|
"vaapiDisplay": null | string;
|
|
"vaapiDriver": components["schemas"]["VaapiDriver"];
|
|
"vaapiDevice": null | string;
|
|
"qsvExtraHardwareFrames": null | number;
|
|
"resolutionId": number;
|
|
"scalingBehavior": components["schemas"]["ScalingBehavior"];
|
|
"padMode": components["schemas"]["FilterMode"];
|
|
"videoFormat": components["schemas"]["FFmpegProfileVideoFormat"];
|
|
"videoProfile": null | string;
|
|
"videoPreset": null | string;
|
|
"allowBFrames": boolean;
|
|
"bitDepth": components["schemas"]["FFmpegProfileBitDepth"];
|
|
"videoBitrate": number;
|
|
"videoBufferSize": number;
|
|
"tonemapAlgorithm": components["schemas"]["FFmpegProfileTonemapAlgorithm"];
|
|
"audioFormat": components["schemas"]["FFmpegProfileAudioFormat"];
|
|
"audioBitrate": number;
|
|
"audioBufferSize": number;
|
|
"normalizeLoudnessMode": components["schemas"]["NormalizeLoudnessMode"];
|
|
"targetLoudness": null | number;
|
|
"audioChannels": number;
|
|
"audioSampleRate": number;
|
|
"normalizeFramerate": boolean;
|
|
"normalizeColors": boolean;
|
|
"deinterlaceVideo": boolean;
|
|
};
|
|
"CreatePlayoutRequest": {
|
|
"channelId": number;
|
|
"programScheduleId": number;
|
|
};
|
|
"CreateScheduleRequest": {
|
|
"name": null | string;
|
|
"keepMultiPartEpisodesTogether": boolean;
|
|
"treatCollectionsAsShows": boolean;
|
|
"shuffleScheduleItems": boolean;
|
|
"randomStartPoint": boolean;
|
|
"fixedStartTimeBehavior": components["schemas"]["FixedStartTimeBehavior"];
|
|
};
|
|
"CreateSmartCollectionRequest": {
|
|
"name": null | string;
|
|
"query": null | string;
|
|
};
|
|
"FFmpegFullProfileResponseModel": {
|
|
"id": number;
|
|
"name": null | string;
|
|
"threadCount": number;
|
|
"hardwareAcceleration": components["schemas"]["HardwareAccelerationKind"];
|
|
"vaapiDisplay": null | string;
|
|
"vaapiDriver": components["schemas"]["VaapiDriver"];
|
|
"vaapiDevice": null | string;
|
|
"qsvExtraHardwareFrames": null | number;
|
|
"resolution": null | string;
|
|
"scalingBehavior": components["schemas"]["ScalingBehavior"];
|
|
"videoFormat": components["schemas"]["FFmpegProfileVideoFormat"];
|
|
"videoProfile": null | string;
|
|
"videoPreset": null | string;
|
|
"allowBFrames": boolean;
|
|
"bitDepth": components["schemas"]["FFmpegProfileBitDepth"];
|
|
"videoBitrate": number;
|
|
"videoBufferSize": number;
|
|
"tonemapAlgorithm": components["schemas"]["FFmpegProfileTonemapAlgorithm"];
|
|
"audioFormat": components["schemas"]["FFmpegProfileAudioFormat"];
|
|
"audioBitrate": number;
|
|
"audioBufferSize": number;
|
|
"normalizeLoudnessMode": components["schemas"]["NormalizeLoudnessMode"];
|
|
"audioChannels": number;
|
|
"audioSampleRate": number;
|
|
"normalizeFramerate": boolean;
|
|
"deinterlaceVideo": null | boolean;
|
|
};
|
|
"FFmpegProfileAudioFormat": "None" | "Aac" | "Ac3" | "AacLatm" | "Copy";
|
|
"FFmpegProfileBitDepth": "EightBit" | "TenBit";
|
|
"FFmpegProfileTonemapAlgorithm": "Linear" | "Clip" | "Gamma" | "Reinhard" | "Mobius" | "Hable";
|
|
"FFmpegProfileVideoFormat": "None" | "H264" | "Hevc" | "Mpeg2Video" | "Av1" | "Copy";
|
|
"FillerKind": "None" | "PreRoll" | "MidRoll" | "PostRoll" | "Tail" | "Fallback" | "GuideMode" | "DecoDefault";
|
|
"FillerMode": "None" | "Duration" | "Count" | "Pad" | "RandomCount";
|
|
"FillerPresetResponseModel": {
|
|
"id": number;
|
|
"name": null | string;
|
|
};
|
|
"FillerPresetViewModel": {
|
|
"id": number;
|
|
"name": null | string;
|
|
"fillerKind": components["schemas"]["FillerKind"];
|
|
"fillerMode": components["schemas"]["FillerMode"];
|
|
"duration": null | string;
|
|
"count": null | number;
|
|
"padToNearestMinute": null | number;
|
|
"allowWatermarks": boolean;
|
|
"collectionType": components["schemas"]["CollectionType"];
|
|
"collectionId": null | number;
|
|
"mediaItemId": null | number;
|
|
"multiCollectionId": null | number;
|
|
"smartCollectionId": null | number;
|
|
"playlist": components["schemas"]["PlaylistViewModel"];
|
|
"expression": null | string;
|
|
"useChaptersAsMediaItems": boolean;
|
|
};
|
|
"FillWithGroupMode": "None" | "FillWithOrderedGroups" | "FillWithShuffledGroups";
|
|
"FilterMode": "HardwareIfPossible" | "Software";
|
|
"FixedStartTimeBehavior": "Strict" | "Flexible";
|
|
"GraphicsElementResponseModel": {
|
|
"id": number;
|
|
"name": null | string;
|
|
};
|
|
"GraphicsElementViewModel": {
|
|
"id": number;
|
|
"name": null | string;
|
|
"fileName": null | string;
|
|
};
|
|
"GuideMode": "Normal" | "Filler";
|
|
"HardwareAccelerationKind": "None" | "Qsv" | "Nvenc" | "Vaapi" | "VideoToolbox" | "Amf" | "V4l2m2m" | "Rkmpp";
|
|
"HealthCheckResponseModel": {
|
|
"title": string;
|
|
"status": string;
|
|
"detail": string;
|
|
"link": null | string;
|
|
};
|
|
"HlsSessionModel": {
|
|
"channelNumber": null | string;
|
|
"state": null | string;
|
|
"transcodedUntil": string;
|
|
"lastAccess": string;
|
|
};
|
|
"IFormFile": string;
|
|
"LibraryBrowseItemResponseModel": {
|
|
"id": number;
|
|
"mediaType": components["schemas"]["LibraryBrowseMediaType"];
|
|
"title": string;
|
|
"libraryId": null | number;
|
|
"libraryName": null | string;
|
|
"artwork": string;
|
|
"duration": null | string;
|
|
"itemCount": null | number;
|
|
"collectionKind": null | string;
|
|
"collectionType": components["schemas"]["CollectionType"];
|
|
"collectionId": null | number;
|
|
"multiCollectionId": null | number;
|
|
"smartCollectionId": null | number;
|
|
"rerunCollectionId": null | number;
|
|
"mediaItemId": null | number;
|
|
"playlistId": null | number;
|
|
};
|
|
"LibraryBrowseMediaType": "Movie" | "TelevisionShow" | "TelevisionSeason" | "Artist" | "Collection" | "SmartCollection" | "MultiCollection" | "RerunCollection" | "Playlist";
|
|
"LibraryMediaKind": "Movies" | "Shows" | "MusicVideos" | "OtherVideos" | "Songs" | "Images" | "RemoteStreams";
|
|
"LibraryScanStatusResponseModel": {
|
|
"libraryId": number;
|
|
"percent": number;
|
|
};
|
|
"MarathonGroupBy": "None" | "Show" | "Season" | "Artist" | "Album" | "Director";
|
|
"MediaCollectionViewModel": {
|
|
"collectionType": components["schemas"]["CollectionType"];
|
|
"id": number;
|
|
"name": null | string;
|
|
"useCustomPlaybackOrder": boolean;
|
|
"mediaItemId"?: number;
|
|
"title"?: null | string;
|
|
"subtitle"?: null | string;
|
|
"sortTitle"?: null | string;
|
|
"poster"?: null | string;
|
|
"state": components["schemas"]["MediaItemState"];
|
|
"hasMediaInfo"?: boolean;
|
|
};
|
|
"MediaItemState": "Normal" | "FileNotFound" | "Unavailable" | "RemoteOnly";
|
|
"MediaSourceLibraryResponseModel": {
|
|
"id": number;
|
|
"name": string;
|
|
"mediaKind": components["schemas"]["LibraryMediaKind"];
|
|
"lastScan": null | string;
|
|
"itemCount": number;
|
|
};
|
|
"MediaSourceResponseModel": {
|
|
"id": number;
|
|
"kind": string;
|
|
"name": string;
|
|
"connectionAddress": null | string;
|
|
"libraries": Array<components["schemas"]["MediaSourceLibraryResponseModel"]>;
|
|
};
|
|
"MultiCollectionItemViewModel": {
|
|
"multiCollectionId": number;
|
|
"collection": components["schemas"]["MediaCollectionViewModel"];
|
|
"scheduleAsGroup": boolean;
|
|
"playbackOrder": components["schemas"]["PlaybackOrder"];
|
|
};
|
|
"MultiCollectionSmartItemViewModel": {
|
|
"multiCollectionId": number;
|
|
"smartCollection": components["schemas"]["SmartCollectionViewModel"];
|
|
"scheduleAsGroup": boolean;
|
|
"playbackOrder": components["schemas"]["PlaybackOrder"];
|
|
};
|
|
"MultiCollectionViewModel": {
|
|
"id": number;
|
|
"name": null | string;
|
|
"items": null | Array<components["schemas"]["MultiCollectionItemViewModel"]>;
|
|
"smartItems": null | Array<components["schemas"]["MultiCollectionSmartItemViewModel"]>;
|
|
};
|
|
"MultipleMode": "Count" | "CollectionSize" | "PlaylistItemSize" | "MultiEpisodeGroupSize";
|
|
"NamedMediaItemViewModel": {
|
|
"mediaItemId": number;
|
|
"name": null | string;
|
|
};
|
|
"NormalizeLoudnessMode": "Off" | "LoudNorm";
|
|
"PagedLibraryBrowseItemsResponseModel": {
|
|
"totalCount": number;
|
|
"page": Array<components["schemas"]["LibraryBrowseItemResponseModel"]>;
|
|
};
|
|
"PagedPlayoutItemsResponseModel": {
|
|
"totalCount": number;
|
|
"page": null | Array<components["schemas"]["PlayoutItemResponseModel"]>;
|
|
};
|
|
"PagedPlayoutsResponseModel": {
|
|
"totalCount": number;
|
|
"page": null | Array<components["schemas"]["PlayoutListItemResponseModel"]>;
|
|
};
|
|
"PlaybackOrder": "None" | "Chronological" | "Random" | "Shuffle" | "ShuffleInOrder" | "MultiEpisodeShuffle" | "SeasonEpisode" | "RandomRotation" | "Marathon";
|
|
"PlaylistViewModel": {
|
|
"id": number;
|
|
"playlistGroupId": number;
|
|
"name": null | string;
|
|
"isSystem": boolean;
|
|
};
|
|
"PlayoutBuildMode": "Continue" | "Refresh" | "Reset";
|
|
"PlayoutBuildStatusResponseModel": {
|
|
"lastBuild": string;
|
|
"success": boolean;
|
|
"message": null | string;
|
|
};
|
|
"PlayoutItemResponseModel": {
|
|
"title": null | string;
|
|
"start": string;
|
|
"finish": string;
|
|
"duration": null | string;
|
|
"fillerKind": null | components["schemas"]["FillerKind"];
|
|
};
|
|
"PlayoutListItemResponseModel": {
|
|
"id": number;
|
|
"channelNumber": string;
|
|
"channelName": string;
|
|
"scheduleKind": components["schemas"]["PlayoutScheduleKind"];
|
|
"scheduleName": string;
|
|
"dailyRebuildTime": null | string;
|
|
"buildStatus": null | components["schemas"]["PlayoutBuildStatusResponseModel"];
|
|
};
|
|
"PlayoutMode": "Flood" | "One" | "Multiple" | "Duration";
|
|
"PlayoutResponseModel": {
|
|
"id": number;
|
|
"scheduleKind": components["schemas"]["PlayoutScheduleKind"];
|
|
"channelName": string;
|
|
"channelNumber": string;
|
|
"playoutMode": components["schemas"]["ChannelPlayoutMode"];
|
|
"scheduleName": string;
|
|
"scheduleFile": null | string;
|
|
"dailyRebuildTime": null | string;
|
|
"buildStatus": null | components["schemas"]["PlayoutBuildStatusResponseModel"];
|
|
};
|
|
"PlayoutScheduleKind": "None" | "Classic" | "Block" | "Sequential" | "Scripted" | "ExternalJson";
|
|
"ProblemDetails": {
|
|
"type"?: null | string;
|
|
"title"?: null | string;
|
|
"status"?: null | number;
|
|
"detail"?: null | string;
|
|
"instance"?: null | string;
|
|
};
|
|
"ProgramScheduleItemsWithDurationViewModel": {
|
|
"items": null | Array<components["schemas"]["ProgramScheduleItemViewModel"]>;
|
|
"totalDurationEstimate": null | string;
|
|
};
|
|
"ProgramScheduleItemViewModel": {
|
|
"id"?: number;
|
|
"index"?: number;
|
|
"startType"?: components["schemas"]["StartType"];
|
|
"startTime"?: null | string;
|
|
"fixedStartTimeBehavior"?: null | components["schemas"]["FixedStartTimeBehavior"];
|
|
"playoutMode"?: components["schemas"]["PlayoutMode"];
|
|
"collectionType"?: components["schemas"]["CollectionType"];
|
|
"collection"?: components["schemas"]["MediaCollectionViewModel"];
|
|
"multiCollection"?: components["schemas"]["MultiCollectionViewModel"];
|
|
"smartCollection"?: components["schemas"]["SmartCollectionViewModel"];
|
|
"rerunCollection"?: components["schemas"]["RerunCollectionViewModel"];
|
|
"playlist"?: components["schemas"]["PlaylistViewModel"];
|
|
"mediaItem"?: components["schemas"]["NamedMediaItemViewModel"];
|
|
"searchTitle"?: null | string;
|
|
"searchQuery"?: null | string;
|
|
"playbackOrder"?: components["schemas"]["PlaybackOrder"];
|
|
"marathonGroupBy"?: components["schemas"]["MarathonGroupBy"];
|
|
"marathonShuffleGroups"?: boolean;
|
|
"marathonShuffleItems"?: boolean;
|
|
"marathonBatchSize"?: null | number;
|
|
"fillWithGroupMode"?: components["schemas"]["FillWithGroupMode"];
|
|
"customTitle"?: null | string;
|
|
"guideMode"?: components["schemas"]["GuideMode"];
|
|
"preRollFiller"?: components["schemas"]["FillerPresetViewModel"];
|
|
"midRollFiller"?: components["schemas"]["FillerPresetViewModel"];
|
|
"postRollFiller"?: components["schemas"]["FillerPresetViewModel"];
|
|
"tailFiller"?: components["schemas"]["FillerPresetViewModel"];
|
|
"fallbackFiller"?: components["schemas"]["FillerPresetViewModel"];
|
|
"watermarks"?: null | Array<components["schemas"]["WatermarkViewModel"]>;
|
|
"graphicsElements"?: null | Array<components["schemas"]["GraphicsElementViewModel"]>;
|
|
"preferredAudioLanguageCode"?: null | string;
|
|
"preferredAudioTitle"?: null | string;
|
|
"preferredSubtitleLanguageCode"?: null | string;
|
|
"subtitleMode"?: null | components["schemas"]["ChannelSubtitleMode"];
|
|
"durationEstimate"?: null | string;
|
|
"name"?: null | string;
|
|
};
|
|
"ProgramScheduleViewModel": {
|
|
"id": number;
|
|
"name": null | string;
|
|
"keepMultiPartEpisodesTogether": boolean;
|
|
"treatCollectionsAsShows": boolean;
|
|
"shuffleScheduleItems": boolean;
|
|
"randomStartPoint": boolean;
|
|
"fixedStartTimeBehavior": components["schemas"]["FixedStartTimeBehavior"];
|
|
};
|
|
"ReplaceScheduleItemsRequest": {
|
|
"items": null | Array<components["schemas"]["ScheduleItemRequest"]>;
|
|
};
|
|
"RerunCollectionViewModel": {
|
|
"id": number;
|
|
"name": null | string;
|
|
"collectionType": components["schemas"]["CollectionType"];
|
|
"collection": components["schemas"]["MediaCollectionViewModel"];
|
|
"multiCollection": components["schemas"]["MultiCollectionViewModel"];
|
|
"smartCollection": components["schemas"]["SmartCollectionViewModel"];
|
|
"mediaItem": components["schemas"]["NamedMediaItemViewModel"];
|
|
"firstRunPlaybackOrder": components["schemas"]["PlaybackOrder"];
|
|
"rerunPlaybackOrder": components["schemas"]["PlaybackOrder"];
|
|
};
|
|
"ResolutionViewModel": {
|
|
"id": number;
|
|
"name": null | string;
|
|
"width": number;
|
|
"height": number;
|
|
"isCustom": boolean;
|
|
};
|
|
"ScalingBehavior": "ScaleAndPad" | "Stretch" | "Crop";
|
|
"ScanShowRequest": {
|
|
"showTitle": null | string;
|
|
"deepScan"?: boolean;
|
|
};
|
|
"ScheduleItemRequest": {
|
|
"startType": components["schemas"]["StartType"];
|
|
"startTime": null | string;
|
|
"fixedStartTimeBehavior": null | components["schemas"]["FixedStartTimeBehavior"];
|
|
"playoutMode": components["schemas"]["PlayoutMode"];
|
|
"collectionType": components["schemas"]["CollectionType"];
|
|
"collectionId": null | number;
|
|
"multiCollectionId": null | number;
|
|
"smartCollectionId": null | number;
|
|
"rerunCollectionId": null | number;
|
|
"mediaItemId": null | number;
|
|
"playlistId": null | number;
|
|
"searchTitle": null | string;
|
|
"searchQuery": null | string;
|
|
"playbackOrder": components["schemas"]["PlaybackOrder"];
|
|
"marathonGroupBy": components["schemas"]["MarathonGroupBy"];
|
|
"marathonShuffleGroups": boolean;
|
|
"marathonShuffleItems": boolean;
|
|
"marathonBatchSize": null | number;
|
|
"fillWithGroupMode": components["schemas"]["FillWithGroupMode"];
|
|
"multipleMode": components["schemas"]["MultipleMode"];
|
|
"multipleCount": null | string;
|
|
"playoutDuration": null | string;
|
|
"tailMode": components["schemas"]["TailMode"];
|
|
"discardToFillAttempts": null | number;
|
|
"customTitle": null | string;
|
|
"guideMode": components["schemas"]["GuideMode"];
|
|
"preRollFillerId": null | number;
|
|
"midRollFillerId": null | number;
|
|
"postRollFillerId": null | number;
|
|
"tailFillerId": null | number;
|
|
"fallbackFillerId": null | number;
|
|
"watermarkIds": null | Array<number>;
|
|
"graphicsElementIds": null | Array<number>;
|
|
"preferredAudioLanguageCode": null | string;
|
|
"preferredAudioTitle": null | string;
|
|
"preferredSubtitleLanguageCode": null | string;
|
|
"subtitleMode": null | components["schemas"]["ChannelSubtitleMode"];
|
|
};
|
|
"SmartCollectionResponseModel": {
|
|
"id": number;
|
|
"name": null | string;
|
|
"query": null | string;
|
|
};
|
|
"SmartCollectionViewModel": {
|
|
"id": number;
|
|
"name": null | string;
|
|
"query": null | string;
|
|
};
|
|
"StartType": "Dynamic" | "Fixed";
|
|
"StreamingMode": "TransportStream" | "HttpLiveStreamingDirect" | "HttpLiveStreamingSegmenter" | "TransportStreamHybrid";
|
|
"TailMode": "None" | "Offline" | "Slate" | "Filler";
|
|
"UpdateChannelRequest": {
|
|
"name": null | string;
|
|
"number": null | string;
|
|
"group": null | string;
|
|
"categories": null | string;
|
|
"fFmpegProfileId": number;
|
|
"slugSeconds": null | number;
|
|
"logo": components["schemas"]["ArtworkContentTypeModel"];
|
|
"streamSelectorMode": components["schemas"]["ChannelStreamSelectorMode"];
|
|
"streamSelector": null | string;
|
|
"preferredAudioLanguageCode": null | string;
|
|
"preferredAudioTitle": null | string;
|
|
"playoutSource": components["schemas"]["ChannelPlayoutSource"];
|
|
"playoutMode": components["schemas"]["ChannelPlayoutMode"];
|
|
"mirrorSourceChannelId": null | number;
|
|
"playoutOffset": null | string;
|
|
"streamingMode": components["schemas"]["StreamingMode"];
|
|
"watermarkId": null | number;
|
|
"fallbackFillerId": null | number;
|
|
"preferredSubtitleLanguageCode": null | string;
|
|
"subtitleMode": components["schemas"]["ChannelSubtitleMode"];
|
|
"musicVideoCreditsMode": components["schemas"]["ChannelMusicVideoCreditsMode"];
|
|
"musicVideoCreditsTemplate": null | string;
|
|
"songVideoMode": components["schemas"]["ChannelSongVideoMode"];
|
|
"transcodeMode": components["schemas"]["ChannelTranscodeMode"];
|
|
"idleBehavior": components["schemas"]["ChannelIdleBehavior"];
|
|
"isEnabled": boolean;
|
|
"showInEpg": boolean;
|
|
};
|
|
"UpdateChannelTemplateRequest": {
|
|
"name": string;
|
|
"description": string;
|
|
"fFmpegProfileId": number;
|
|
"watermarkId": null | number;
|
|
"fallbackFillerId": null | number;
|
|
"preRollFillerId": null | number;
|
|
"midRollFillerId": null | number;
|
|
"postRollFillerId": null | number;
|
|
"streamSelectorMode": components["schemas"]["ChannelStreamSelectorMode"];
|
|
"streamSelector": null | string;
|
|
"preferredAudioLanguageCode": null | string;
|
|
"preferredAudioTitle": null | string;
|
|
"playoutSource": components["schemas"]["ChannelPlayoutSource"];
|
|
"playoutMode": components["schemas"]["ChannelPlayoutMode"];
|
|
"streamingMode": components["schemas"]["StreamingMode"];
|
|
"preferredSubtitleLanguageCode": null | string;
|
|
"subtitleMode": components["schemas"]["ChannelSubtitleMode"];
|
|
"musicVideoCreditsMode": components["schemas"]["ChannelMusicVideoCreditsMode"];
|
|
"musicVideoCreditsTemplate": null | string;
|
|
"songVideoMode": components["schemas"]["ChannelSongVideoMode"];
|
|
"transcodeMode": components["schemas"]["ChannelTranscodeMode"];
|
|
"idleBehavior": components["schemas"]["ChannelIdleBehavior"];
|
|
"shuffleScheduleItems": boolean;
|
|
"randomStartPoint": boolean;
|
|
"fixedStartTimeBehavior": components["schemas"]["FixedStartTimeBehavior"];
|
|
};
|
|
"UpdateCollectionRequest": {
|
|
"name": null | string;
|
|
"useCustomPlaybackOrder": null | boolean;
|
|
};
|
|
"UpdateFFmpegProfileRequest": {
|
|
"name": null | string;
|
|
"threadCount": number;
|
|
"normalizeAudio": boolean;
|
|
"normalizeVideo": boolean;
|
|
"hardwareAcceleration": components["schemas"]["HardwareAccelerationKind"];
|
|
"vaapiDisplay": null | string;
|
|
"vaapiDriver": components["schemas"]["VaapiDriver"];
|
|
"vaapiDevice": null | string;
|
|
"qsvExtraHardwareFrames": null | number;
|
|
"resolutionId": number;
|
|
"scalingBehavior": components["schemas"]["ScalingBehavior"];
|
|
"padMode": components["schemas"]["FilterMode"];
|
|
"videoFormat": components["schemas"]["FFmpegProfileVideoFormat"];
|
|
"videoProfile": null | string;
|
|
"videoPreset": null | string;
|
|
"allowBFrames": boolean;
|
|
"bitDepth": components["schemas"]["FFmpegProfileBitDepth"];
|
|
"videoBitrate": number;
|
|
"videoBufferSize": number;
|
|
"tonemapAlgorithm": components["schemas"]["FFmpegProfileTonemapAlgorithm"];
|
|
"audioFormat": components["schemas"]["FFmpegProfileAudioFormat"];
|
|
"audioBitrate": number;
|
|
"audioBufferSize": number;
|
|
"normalizeLoudnessMode": components["schemas"]["NormalizeLoudnessMode"];
|
|
"targetLoudness": null | number;
|
|
"audioChannels": number;
|
|
"audioSampleRate": number;
|
|
"normalizeFramerate": boolean;
|
|
"normalizeColors": boolean;
|
|
"deinterlaceVideo": boolean;
|
|
};
|
|
"UpdateScheduleRequest": {
|
|
"name": null | string;
|
|
"keepMultiPartEpisodesTogether": boolean;
|
|
"treatCollectionsAsShows": boolean;
|
|
"shuffleScheduleItems": boolean;
|
|
"randomStartPoint": boolean;
|
|
"fixedStartTimeBehavior": components["schemas"]["FixedStartTimeBehavior"];
|
|
};
|
|
"UpdateSmartCollectionRequest": {
|
|
"name": null | string;
|
|
"query": null | string;
|
|
};
|
|
"VaapiDriver": "Default" | "iHD" | "i965" | "RadeonSI" | "Nouveau";
|
|
"WatermarkLocation": number;
|
|
"WatermarkResponseModel": {
|
|
"id": number;
|
|
"name": null | string;
|
|
};
|
|
"WatermarkSize": number;
|
|
"WatermarkViewModel": {
|
|
"id": number;
|
|
"image": components["schemas"]["ArtworkContentTypeModel"];
|
|
"name": null | string;
|
|
"mode": components["schemas"]["ChannelWatermarkMode"];
|
|
"imageSource": components["schemas"]["ChannelWatermarkImageSource"];
|
|
"location": components["schemas"]["WatermarkLocation"];
|
|
"size": components["schemas"]["WatermarkSize"];
|
|
"width": number;
|
|
"horizontalMargin": number;
|
|
"verticalMargin": number;
|
|
"frequencyMinutes": number;
|
|
"durationSeconds": number;
|
|
"opacity": number;
|
|
"placeWithinSourceContent": boolean;
|
|
"opacityExpression": null | string;
|
|
"zIndex": number;
|
|
};
|
|
};
|
|
}
|
|
|