Files
ersatztv/ErsatzTV/wwwroot/openapi/v1.json
T
timothyandClaude Fable 5 8d89ab1624
Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 3m57s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 4m53s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Has been skipped
fix(api): add nullable context to #96/#98 DTOs; regen OpenAPI + SPA types
ChannelResponseModel and BulkChannelRequests DTOs lacked file-scoped
#nullable enable, so the OpenAPI generator emitted every string
property as a ["null","string"] union (project Nullable default is
disable), polluting SPA typegen with needless `| null` unions.
ChannelStateResponseModel already complied with this convention
(precedent: PlayoutResponseModel). All properties in both files are
always populated (never null in practice), so no property needed to
become explicitly optional/nullable - just adding #nullable enable
was sufficient to clean up the generated schema.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-04 08:02:28 +02:00

7246 lines
181 KiB
JSON

{
"openapi": "3.1.1",
"info": {
"title": "ErsatzTV | v1",
"version": "1.0.0"
},
"paths": {
"/api/artwork/uploads": {
"post": {
"tags": [
"Artwork"
],
"summary": "Upload channel logo or watermark artwork",
"operationId": "UploadArtwork",
"requestBody": {
"content": {
"multipart/form-data": {
"schema": {
"type": "object",
"allOf": [
{
"type": "object",
"properties": {
"file": {
"$ref": "#/components/schemas/IFormFile"
}
}
},
{
"type": "object",
"properties": {
"target": {
"type": "string"
}
}
}
]
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ArtworkUploadResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ArtworkUploadResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ArtworkUploadResponseModel"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/channels": {
"get": {
"tags": [
"Channel"
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChannelResponseModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChannelResponseModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChannelResponseModel"
}
}
}
}
}
}
},
"post": {
"tags": [
"Channels"
],
"summary": "Create a channel",
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/CreateChannelRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateChannelRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CreateChannelRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/CreateChannelRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ChannelViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChannelViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ChannelViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/channels/state": {
"get": {
"tags": [
"Channels"
],
"summary": "Get channel runtime state",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChannelStateResponseModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChannelStateResponseModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChannelStateResponseModel"
}
}
}
}
}
}
}
},
"/api/guide": {
"get": {
"tags": [
"Channels"
],
"summary": "Get the JSON channel guide (EPG)",
"description": "Returns per-channel programme arrays for the EPG grid. When omitted, start defaults to now, and end defaults to start plus the configured XmltvDaysToBuild window.",
"parameters": [
{
"name": "start",
"in": "query",
"schema": {
"type": "string",
"format": "date-time"
}
},
{
"name": "end",
"in": "query",
"schema": {
"type": "string",
"format": "date-time"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ChannelGuideResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChannelGuideResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ChannelGuideResponseModel"
}
}
}
}
}
}
},
"/api/channels/{id}": {
"get": {
"tags": [
"Channels"
],
"summary": "Get a channel by id",
"operationId": "GetChannelById",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ChannelViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChannelViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ChannelViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"put": {
"tags": [
"Channels"
],
"summary": "Update a channel",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/UpdateChannelRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateChannelRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateChannelRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateChannelRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ChannelViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ChannelViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ChannelViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"delete": {
"tags": [
"Channels"
],
"summary": "Delete a channel",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/channels/bulk/renumber": {
"post": {
"tags": [
"Channels"
],
"summary": "Renumber channels",
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/BulkRenumberChannelsRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/BulkRenumberChannelsRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/BulkRenumberChannelsRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/BulkRenumberChannelsRequest"
}
}
},
"required": true
},
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/channels/bulk/group": {
"post": {
"tags": [
"Channels"
],
"summary": "Move channels to a group",
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/BulkMoveChannelsToGroupRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/BulkMoveChannelsToGroupRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/BulkMoveChannelsToGroupRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/BulkMoveChannelsToGroupRequest"
}
}
},
"required": true
},
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/channels/bulk/delete": {
"post": {
"tags": [
"Channels"
],
"summary": "Delete channels",
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/BulkDeleteChannelsRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/BulkDeleteChannelsRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/BulkDeleteChannelsRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/BulkDeleteChannelsRequest"
}
}
},
"required": true
},
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/channels/{channelNumber}/playout/reset": {
"post": {
"tags": [
"Channels"
],
"summary": "Reset channel playout",
"description": "When mode is omitted, classic playouts use Refresh (rebuild while maintaining collection progress) and all other playout kinds use Reset (rebuild from scratch), matching the Blazor UI. Pass mode to force a specific PlayoutBuildMode.",
"parameters": [
{
"name": "channelNumber",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
},
{
"name": "mode",
"in": "query",
"schema": {
"$ref": "#/components/schemas/PlayoutBuildMode"
}
}
],
"responses": {
"200": {
"description": "OK"
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/collections": {
"get": {
"tags": [
"Collections"
],
"summary": "Get all collections",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
}
}
}
}
}
}
},
"post": {
"tags": [
"Collections"
],
"summary": "Create a collection",
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/CreateCollectionRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateCollectionRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CreateCollectionRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/CreateCollectionRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/collections/{id}": {
"get": {
"tags": [
"Collections"
],
"summary": "Get a collection by id",
"operationId": "GetCollectionById",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"put": {
"tags": [
"Collections"
],
"summary": "Update a collection",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/UpdateCollectionRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateCollectionRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateCollectionRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateCollectionRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"delete": {
"tags": [
"Collections"
],
"summary": "Delete a collection",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/collections/{id}/items": {
"post": {
"tags": [
"Collections"
],
"summary": "Add items to a collection",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/AddItemsToCollectionRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/AddItemsToCollectionRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/AddItemsToCollectionRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/AddItemsToCollectionRequest"
}
}
},
"required": true
},
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/collections/{id}/items/{mediaItemId}": {
"delete": {
"tags": [
"Collections"
],
"summary": "Remove an item from a collection",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "mediaItemId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/ffmpeg/profiles": {
"get": {
"tags": [
"FFmpeg Profiles"
],
"summary": "Get all FFmpeg profiles",
"operationId": "GetFFmpegProfiles",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FFmpegFullProfileResponseModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FFmpegFullProfileResponseModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FFmpegFullProfileResponseModel"
}
}
}
}
}
}
},
"post": {
"tags": [
"FFmpeg Profiles"
],
"summary": "Create an FFmpeg profile",
"operationId": "CreateFFmpegProfile",
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/CreateFFmpegProfileRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateFFmpegProfileRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CreateFFmpegProfileRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/CreateFFmpegProfileRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/FFmpegFullProfileResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/FFmpegFullProfileResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/FFmpegFullProfileResponseModel"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/ffmpeg/profiles/{id}": {
"get": {
"tags": [
"FFmpeg Profiles"
],
"summary": "Get an FFmpeg profile by id",
"operationId": "GetFFmpegProfileById",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/FFmpegFullProfileResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/FFmpegFullProfileResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/FFmpegFullProfileResponseModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"put": {
"tags": [
"FFmpeg Profiles"
],
"summary": "Update an FFmpeg profile",
"operationId": "UpdateFFmpegProfile",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/UpdateFFmpegProfileRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateFFmpegProfileRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateFFmpegProfileRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateFFmpegProfileRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/FFmpegFullProfileResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/FFmpegFullProfileResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/FFmpegFullProfileResponseModel"
}
}
}
},
"401": {
"description": "Unauthorized",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"delete": {
"tags": [
"FFmpeg Profiles"
],
"summary": "Delete an FFmpeg profile",
"operationId": "DeleteFFmpegProfile",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "No Content"
},
"401": {
"description": "Unauthorized",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/filler-presets": {
"get": {
"tags": [
"Filler Presets"
],
"summary": "Get all filler presets",
"operationId": "GetFillerPresets",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FillerPresetResponseModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FillerPresetResponseModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FillerPresetResponseModel"
}
}
}
}
}
}
}
},
"/api/graphics-elements": {
"get": {
"tags": [
"Graphics Elements"
],
"summary": "Get all graphics elements",
"operationId": "GetGraphicsElements",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GraphicsElementResponseModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GraphicsElementResponseModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/GraphicsElementResponseModel"
}
}
}
}
}
}
}
},
"/api/health": {
"get": {
"tags": [
"Health"
],
"summary": "Get health check results",
"operationId": "GetHealthChecks",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/HealthCheckResponseModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/HealthCheckResponseModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/HealthCheckResponseModel"
}
}
}
}
}
}
}
},
"/api/libraries/scan-status": {
"get": {
"tags": [
"Libraries"
],
"summary": "Get active library scan status",
"operationId": "GetLibraryScanStatus",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LibraryScanStatusResponseModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LibraryScanStatusResponseModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LibraryScanStatusResponseModel"
}
}
}
}
}
}
}
},
"/api/libraries/{id}/scan": {
"post": {
"tags": [
"Libraries"
],
"summary": "Scan library",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/api/libraries/{id}/scan-show": {
"post": {
"tags": [
"Libraries"
],
"summary": "Scan show",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/ScanShowRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ScanShowRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ScanShowRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ScanShowRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/api/maintenance/gc": {
"get": {
"tags": [
"Maintenance"
],
"summary": "Garbage collect",
"parameters": [
{
"name": "force",
"in": "query",
"schema": {
"type": "boolean",
"default": false
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/api/maintenance/empty_trash": {
"post": {
"tags": [
"Maintenance"
],
"summary": "Empty trash",
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/api/maintenance/clean_artwork": {
"post": {
"tags": [
"Maintenance"
],
"summary": "Clean artwork cache",
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/api/media-sources": {
"get": {
"tags": [
"Media Sources"
],
"summary": "Get all media sources with their libraries",
"operationId": "GetMediaSources",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MediaSourceResponseModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MediaSourceResponseModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MediaSourceResponseModel"
}
}
}
}
}
}
}
},
"/api/playouts": {
"get": {
"tags": [
"Playouts"
],
"summary": "List playouts",
"operationId": "GetPlayouts",
"parameters": [
{
"name": "query",
"in": "query",
"schema": {
"type": "string",
"default": ""
}
},
{
"name": "pageNum",
"in": "query",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "pageSize",
"in": "query",
"schema": {
"type": "integer",
"format": "int32",
"default": 100
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/PagedPlayoutsResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/PagedPlayoutsResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/PagedPlayoutsResponseModel"
}
}
}
}
}
},
"post": {
"tags": [
"Playouts"
],
"summary": "Create a classic playout",
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/CreatePlayoutRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreatePlayoutRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CreatePlayoutRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/CreatePlayoutRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/PlayoutResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlayoutResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/PlayoutResponseModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/playouts/warnings/count": {
"get": {
"tags": [
"Playouts"
],
"summary": "Count playouts with a failed build",
"operationId": "GetPlayoutWarningsCount",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "integer",
"format": "int32"
}
},
"application/json": {
"schema": {
"type": "integer",
"format": "int32"
}
},
"text/json": {
"schema": {
"type": "integer",
"format": "int32"
}
}
}
}
}
}
},
"/api/playouts/{id}": {
"get": {
"tags": [
"Playouts"
],
"summary": "Get a playout by id",
"operationId": "GetPlayoutById",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/PlayoutResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/PlayoutResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/PlayoutResponseModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"delete": {
"tags": [
"Playouts"
],
"summary": "Delete a playout",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/playouts/{id}/items": {
"get": {
"tags": [
"Playouts"
],
"summary": "Get upcoming items (and unscheduled gaps) for a playout",
"operationId": "GetPlayoutItems",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "showFiller",
"in": "query",
"schema": {
"type": "boolean",
"default": false
}
},
{
"name": "pageNum",
"in": "query",
"schema": {
"type": "integer",
"format": "int32",
"default": 0
}
},
{
"name": "pageSize",
"in": "query",
"schema": {
"type": "integer",
"format": "int32",
"default": 100
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/PagedPlayoutItemsResponseModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/PagedPlayoutItemsResponseModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/PagedPlayoutItemsResponseModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/playouts/reset-all": {
"post": {
"tags": [
"Playouts"
],
"summary": "Reset all playouts",
"operationId": "ResetAllPlayouts",
"responses": {
"202": {
"description": "Accepted"
}
}
}
},
"/api/ffmpeg/resolution/by-name/{name}": {
"get": {
"tags": [
"Resolution"
],
"operationId": "GetResolutionByName",
"parameters": [
{
"name": "name",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ResolutionViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ResolutionViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ResolutionViewModel"
}
}
}
}
}
}
},
"/api/schedules": {
"get": {
"tags": [
"Schedules"
],
"summary": "Get all schedules",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProgramScheduleViewModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProgramScheduleViewModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProgramScheduleViewModel"
}
}
}
}
}
}
},
"post": {
"tags": [
"Schedules"
],
"summary": "Create a schedule",
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/CreateScheduleRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateScheduleRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CreateScheduleRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/CreateScheduleRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/schedules/{id}": {
"get": {
"tags": [
"Schedules"
],
"summary": "Get a schedule by id",
"operationId": "GetScheduleById",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"put": {
"tags": [
"Schedules"
],
"summary": "Update a schedule",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/UpdateScheduleRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateScheduleRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateScheduleRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateScheduleRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"delete": {
"tags": [
"Schedules"
],
"summary": "Delete a schedule",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/schedules/{id}/items": {
"get": {
"tags": [
"Schedules"
],
"summary": "Get schedule items",
"description": "Returns the schedule's items plus a computed, best-effort runtime estimate: each item carries a nullable durationEstimate and the envelope carries a nullable totalDurationEstimate. Estimates are derived from referenced collection/media runtimes and are null when unbounded or unknown.",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleItemsWithDurationViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleItemsWithDurationViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleItemsWithDurationViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"post": {
"tags": [
"Schedules"
],
"summary": "Add a schedule item",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/ScheduleItemRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ScheduleItemRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ScheduleItemRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ScheduleItemRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleItemViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleItemViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProgramScheduleItemViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"put": {
"tags": [
"Schedules"
],
"summary": "Replace schedule items",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/ReplaceScheduleItemsRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReplaceScheduleItemsRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ReplaceScheduleItemsRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/ReplaceScheduleItemsRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProgramScheduleItemViewModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProgramScheduleItemViewModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ProgramScheduleItemViewModel"
}
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/schedules/{id}/items/{itemId}": {
"delete": {
"tags": [
"Schedules"
],
"summary": "Delete a schedule item",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
},
{
"name": "itemId",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/sessions": {
"get": {
"tags": [
"Sessions"
],
"summary": "Get sessions",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/HlsSessionModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/HlsSessionModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/HlsSessionModel"
}
}
}
}
}
}
}
},
"/api/session/{channelNumber}": {
"delete": {
"tags": [
"Sessions"
],
"summary": "Stop session",
"parameters": [
{
"name": "channelNumber",
"in": "path",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK"
}
}
}
},
"/api/smart-collections": {
"get": {
"tags": [
"Smart Collections"
],
"summary": "Get all smart collections",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SmartCollectionResponseModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SmartCollectionResponseModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SmartCollectionResponseModel"
}
}
}
}
}
}
},
"post": {
"tags": [
"Smart Collections"
],
"summary": "Create a smart collection",
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/CreateSmartCollectionRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateSmartCollectionRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CreateSmartCollectionRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/CreateSmartCollectionRequest"
}
}
},
"required": true
},
"responses": {
"201": {
"description": "Created",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/SmartCollectionViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/SmartCollectionViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/SmartCollectionViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/smart-collections/{id}": {
"get": {
"tags": [
"Smart Collections"
],
"summary": "Get a smart collection by id",
"operationId": "GetSmartCollectionById",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/SmartCollectionViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/SmartCollectionViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/SmartCollectionViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"put": {
"tags": [
"Smart Collections"
],
"summary": "Update a smart collection",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"requestBody": {
"content": {
"application/json-patch+json": {
"schema": {
"$ref": "#/components/schemas/UpdateSmartCollectionRequest"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/UpdateSmartCollectionRequest"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/UpdateSmartCollectionRequest"
}
},
"application/*+json": {
"schema": {
"$ref": "#/components/schemas/UpdateSmartCollectionRequest"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/SmartCollectionViewModel"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/SmartCollectionViewModel"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/SmartCollectionViewModel"
}
}
}
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"delete": {
"tags": [
"Smart Collections"
],
"summary": "Delete a smart collection",
"parameters": [
{
"name": "id",
"in": "path",
"required": true,
"schema": {
"type": "integer",
"format": "int32"
}
}
],
"responses": {
"204": {
"description": "No Content"
},
"404": {
"description": "Not Found",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"422": {
"description": "Unprocessable Entity",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
},
"/api/version": {
"get": {
"tags": [
"Version"
],
"summary": "Get version",
"operationId": "GetVersion",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"$ref": "#/components/schemas/CombinedVersion"
}
},
"application/json": {
"schema": {
"$ref": "#/components/schemas/CombinedVersion"
}
},
"text/json": {
"schema": {
"$ref": "#/components/schemas/CombinedVersion"
}
}
}
}
}
}
},
"/api/watermarks": {
"get": {
"tags": [
"Watermarks"
],
"summary": "Get all watermarks",
"operationId": "GetWatermarks",
"responses": {
"200": {
"description": "OK",
"content": {
"text/plain": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WatermarkResponseModel"
}
}
},
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WatermarkResponseModel"
}
}
},
"text/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/WatermarkResponseModel"
}
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"AddItemsToCollectionRequest": {
"required": [
"movieIds",
"showIds",
"seasonIds",
"episodeIds",
"artistIds",
"musicVideoIds",
"otherVideoIds",
"songIds",
"imageIds",
"remoteStreamIds"
],
"type": "object",
"properties": {
"movieIds": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"format": "int32"
}
},
"showIds": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"format": "int32"
}
},
"seasonIds": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"format": "int32"
}
},
"episodeIds": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"format": "int32"
}
},
"artistIds": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"format": "int32"
}
},
"musicVideoIds": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"format": "int32"
}
},
"otherVideoIds": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"format": "int32"
}
},
"songIds": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"format": "int32"
}
},
"imageIds": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"format": "int32"
}
},
"remoteStreamIds": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"format": "int32"
}
}
}
},
"ArtworkContentTypeModel": {
"required": [
"path",
"contentType"
],
"type": "object",
"properties": {
"path": {
"type": [
"null",
"string"
]
},
"contentType": {
"type": [
"null",
"string"
]
},
"isExternalUrl": {
"type": "boolean"
},
"hasContentType": {
"type": "boolean"
},
"urlWithContentType": {
"type": [
"null",
"string"
]
}
}
},
"ArtworkUploadResponseModel": {
"required": [
"path",
"contentType"
],
"type": "object",
"properties": {
"path": {
"type": "string"
},
"contentType": {
"type": "string"
}
}
},
"BulkDeleteChannelsRequest": {
"required": [
"channelIds"
],
"type": "object",
"properties": {
"channelIds": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
}
}
}
},
"BulkMoveChannelsToGroupRequest": {
"required": [
"channelIds",
"group"
],
"type": "object",
"properties": {
"channelIds": {
"type": "array",
"items": {
"type": "integer",
"format": "int32"
}
},
"group": {
"type": "string"
}
}
},
"BulkRenumberChannelRequest": {
"required": [
"id",
"number"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"number": {
"type": "string"
}
}
},
"BulkRenumberChannelsRequest": {
"required": [
"channels"
],
"type": "object",
"properties": {
"channels": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BulkRenumberChannelRequest"
}
}
}
},
"ChannelGuideChannelResponseModel": {
"required": [
"number",
"name",
"programmes"
],
"type": "object",
"properties": {
"number": {
"type": "string"
},
"name": {
"type": "string"
},
"programmes": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChannelGuideProgrammeResponseModel"
}
}
}
},
"ChannelGuideProgrammeResponseModel": {
"required": [
"start",
"stop",
"title",
"subTitle",
"category",
"fillerKind"
],
"type": "object",
"properties": {
"start": {
"type": "string",
"format": "date-time"
},
"stop": {
"type": "string",
"format": "date-time"
},
"title": {
"type": "string"
},
"subTitle": {
"type": [
"null",
"string"
]
},
"category": {
"type": [
"null",
"string"
]
},
"fillerKind": {
"$ref": "#/components/schemas/FillerKind"
}
}
},
"ChannelGuideResponseModel": {
"required": [
"start",
"end",
"channels"
],
"type": "object",
"properties": {
"start": {
"type": "string",
"format": "date-time"
},
"end": {
"type": "string",
"format": "date-time"
},
"channels": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ChannelGuideChannelResponseModel"
}
}
}
},
"ChannelIdleBehavior": {
"enum": [
"StopOnDisconnect",
"KeepRunning"
],
"type": "string"
},
"ChannelMusicVideoCreditsMode": {
"enum": [
"None",
"GenerateSubtitles"
],
"type": "string"
},
"ChannelNowPlayingResponseModel": {
"required": [
"title",
"startUtc",
"finishUtc"
],
"type": "object",
"properties": {
"title": {
"type": "string"
},
"startUtc": {
"type": "string",
"format": "date-time"
},
"finishUtc": {
"type": "string",
"format": "date-time"
}
}
},
"ChannelPlayoutMode": {
"enum": [
"Continuous",
"OnDemand"
],
"type": "string"
},
"ChannelPlayoutSource": {
"enum": [
"Generated",
"Mirror"
],
"type": "string"
},
"ChannelResponseModel": {
"required": [
"id",
"number",
"sortNumber",
"name",
"group",
"categories",
"fFmpegProfile",
"language",
"streamingMode",
"isEnabled",
"showInEpg"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"number": {
"type": "string"
},
"sortNumber": {
"type": "number",
"format": "double"
},
"name": {
"type": "string"
},
"group": {
"type": "string"
},
"categories": {
"type": "string"
},
"fFmpegProfile": {
"type": "string"
},
"language": {
"type": "string"
},
"streamingMode": {
"type": "string"
},
"isEnabled": {
"type": "boolean"
},
"showInEpg": {
"type": "boolean"
}
}
},
"ChannelSongVideoMode": {
"enum": [
"Default",
"WithProgress"
],
"type": "string"
},
"ChannelStateResponseModel": {
"required": [
"channelId",
"channelNumber",
"onAir",
"nowPlaying"
],
"type": "object",
"properties": {
"channelId": {
"type": "integer",
"format": "int32"
},
"channelNumber": {
"type": "string"
},
"onAir": {
"type": "boolean"
},
"nowPlaying": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/ChannelNowPlayingResponseModel"
}
]
}
}
},
"ChannelStreamSelectorMode": {
"enum": [
"Default",
"Custom",
"Troubleshooting"
],
"type": "string"
},
"ChannelSubtitleMode": {
"enum": [
"None",
"Forced",
"Default",
"Any"
],
"type": "string"
},
"ChannelTranscodeMode": {
"enum": [
"OnDemand"
],
"type": "string"
},
"ChannelViewModel": {
"required": [
"id",
"number",
"name",
"group",
"categories",
"fFmpegProfileId",
"slugSeconds",
"logo",
"streamSelectorMode",
"streamSelector",
"preferredAudioLanguageCode",
"preferredAudioTitle",
"playoutSource",
"playoutMode",
"mirrorSourceChannelId",
"playoutOffset",
"streamingMode",
"watermarkId",
"fallbackFillerId",
"playoutCount",
"preferredSubtitleLanguageCode",
"subtitleMode",
"musicVideoCreditsMode",
"musicVideoCreditsTemplate",
"songVideoMode",
"transcodeMode",
"idleBehavior",
"isEnabled",
"showInEpg"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"number": {
"type": [
"null",
"string"
]
},
"name": {
"type": [
"null",
"string"
]
},
"group": {
"type": [
"null",
"string"
]
},
"categories": {
"type": [
"null",
"string"
]
},
"fFmpegProfileId": {
"type": "integer",
"format": "int32"
},
"slugSeconds": {
"type": [
"null",
"number"
],
"format": "double"
},
"logo": {
"$ref": "#/components/schemas/ArtworkContentTypeModel"
},
"streamSelectorMode": {
"$ref": "#/components/schemas/ChannelStreamSelectorMode"
},
"streamSelector": {
"type": [
"null",
"string"
]
},
"preferredAudioLanguageCode": {
"type": [
"null",
"string"
]
},
"preferredAudioTitle": {
"type": [
"null",
"string"
]
},
"playoutSource": {
"$ref": "#/components/schemas/ChannelPlayoutSource"
},
"playoutMode": {
"$ref": "#/components/schemas/ChannelPlayoutMode"
},
"mirrorSourceChannelId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"playoutOffset": {
"pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
"type": [
"null",
"string"
]
},
"streamingMode": {
"$ref": "#/components/schemas/StreamingMode"
},
"watermarkId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"fallbackFillerId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"playoutCount": {
"type": "integer",
"format": "int32"
},
"preferredSubtitleLanguageCode": {
"type": [
"null",
"string"
]
},
"subtitleMode": {
"$ref": "#/components/schemas/ChannelSubtitleMode"
},
"musicVideoCreditsMode": {
"$ref": "#/components/schemas/ChannelMusicVideoCreditsMode"
},
"musicVideoCreditsTemplate": {
"type": [
"null",
"string"
]
},
"songVideoMode": {
"$ref": "#/components/schemas/ChannelSongVideoMode"
},
"transcodeMode": {
"$ref": "#/components/schemas/ChannelTranscodeMode"
},
"idleBehavior": {
"$ref": "#/components/schemas/ChannelIdleBehavior"
},
"isEnabled": {
"type": "boolean"
},
"showInEpg": {
"type": "boolean"
},
"webEncodedName": {
"type": [
"null",
"string"
]
}
}
},
"ChannelWatermarkImageSource": {
"enum": [
"Custom",
"ChannelLogo",
"Resource"
],
"type": "string"
},
"ChannelWatermarkMode": {
"enum": [
"None",
"Permanent",
"Intermittent",
"OpacityExpression"
],
"type": "string"
},
"CollectionType": {
"enum": [
"Collection",
"TelevisionShow",
"TelevisionSeason",
"Artist",
"MultiCollection",
"SmartCollection",
"Playlist",
"RerunFirstRun",
"RerunRerun",
"SearchQuery",
"Movie",
"Episode",
"MusicVideo",
"OtherVideo",
"Song",
"Image",
"RemoteStream",
"FakeCollection",
"FakePlaylistItem"
],
"type": "string"
},
"CombinedVersion": {
"required": [
"apiVersion",
"appVersion"
],
"type": "object",
"properties": {
"apiVersion": {
"type": "integer",
"format": "int32"
},
"appVersion": {
"type": [
"null",
"string"
]
}
}
},
"CreateChannelRequest": {
"required": [
"name",
"number",
"group",
"categories",
"fFmpegProfileId",
"slugSeconds",
"logo",
"streamSelectorMode",
"streamSelector",
"preferredAudioLanguageCode",
"preferredAudioTitle",
"playoutSource",
"playoutMode",
"mirrorSourceChannelId",
"playoutOffset",
"streamingMode",
"watermarkId",
"fallbackFillerId",
"preferredSubtitleLanguageCode",
"subtitleMode",
"musicVideoCreditsMode",
"musicVideoCreditsTemplate",
"songVideoMode",
"transcodeMode",
"idleBehavior",
"isEnabled",
"showInEpg"
],
"type": "object",
"properties": {
"name": {
"type": [
"null",
"string"
]
},
"number": {
"type": [
"null",
"string"
]
},
"group": {
"type": [
"null",
"string"
]
},
"categories": {
"type": [
"null",
"string"
]
},
"fFmpegProfileId": {
"type": "integer",
"format": "int32"
},
"slugSeconds": {
"type": [
"null",
"number"
],
"format": "double"
},
"logo": {
"$ref": "#/components/schemas/ArtworkContentTypeModel"
},
"streamSelectorMode": {
"$ref": "#/components/schemas/ChannelStreamSelectorMode"
},
"streamSelector": {
"type": [
"null",
"string"
]
},
"preferredAudioLanguageCode": {
"type": [
"null",
"string"
]
},
"preferredAudioTitle": {
"type": [
"null",
"string"
]
},
"playoutSource": {
"$ref": "#/components/schemas/ChannelPlayoutSource"
},
"playoutMode": {
"$ref": "#/components/schemas/ChannelPlayoutMode"
},
"mirrorSourceChannelId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"playoutOffset": {
"pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
"type": [
"null",
"string"
]
},
"streamingMode": {
"$ref": "#/components/schemas/StreamingMode"
},
"watermarkId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"fallbackFillerId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"preferredSubtitleLanguageCode": {
"type": [
"null",
"string"
]
},
"subtitleMode": {
"$ref": "#/components/schemas/ChannelSubtitleMode"
},
"musicVideoCreditsMode": {
"$ref": "#/components/schemas/ChannelMusicVideoCreditsMode"
},
"musicVideoCreditsTemplate": {
"type": [
"null",
"string"
]
},
"songVideoMode": {
"$ref": "#/components/schemas/ChannelSongVideoMode"
},
"transcodeMode": {
"$ref": "#/components/schemas/ChannelTranscodeMode"
},
"idleBehavior": {
"$ref": "#/components/schemas/ChannelIdleBehavior"
},
"isEnabled": {
"type": "boolean"
},
"showInEpg": {
"type": "boolean"
}
}
},
"CreateCollectionRequest": {
"required": [
"name"
],
"type": "object",
"properties": {
"name": {
"type": [
"null",
"string"
]
}
}
},
"CreateFFmpegProfileRequest": {
"required": [
"name",
"threadCount",
"normalizeAudio",
"normalizeVideo",
"hardwareAcceleration",
"vaapiDisplay",
"vaapiDriver",
"vaapiDevice",
"qsvExtraHardwareFrames",
"resolutionId",
"scalingBehavior",
"padMode",
"videoFormat",
"videoProfile",
"videoPreset",
"allowBFrames",
"bitDepth",
"videoBitrate",
"videoBufferSize",
"tonemapAlgorithm",
"audioFormat",
"audioBitrate",
"audioBufferSize",
"normalizeLoudnessMode",
"targetLoudness",
"audioChannels",
"audioSampleRate",
"normalizeFramerate",
"normalizeColors",
"deinterlaceVideo"
],
"type": "object",
"properties": {
"name": {
"type": [
"null",
"string"
]
},
"threadCount": {
"type": "integer",
"format": "int32"
},
"normalizeAudio": {
"type": "boolean"
},
"normalizeVideo": {
"type": "boolean"
},
"hardwareAcceleration": {
"$ref": "#/components/schemas/HardwareAccelerationKind"
},
"vaapiDisplay": {
"type": [
"null",
"string"
]
},
"vaapiDriver": {
"$ref": "#/components/schemas/VaapiDriver"
},
"vaapiDevice": {
"type": [
"null",
"string"
]
},
"qsvExtraHardwareFrames": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"resolutionId": {
"type": "integer",
"format": "int32"
},
"scalingBehavior": {
"$ref": "#/components/schemas/ScalingBehavior"
},
"padMode": {
"$ref": "#/components/schemas/FilterMode"
},
"videoFormat": {
"$ref": "#/components/schemas/FFmpegProfileVideoFormat"
},
"videoProfile": {
"type": [
"null",
"string"
]
},
"videoPreset": {
"type": [
"null",
"string"
]
},
"allowBFrames": {
"type": "boolean"
},
"bitDepth": {
"$ref": "#/components/schemas/FFmpegProfileBitDepth"
},
"videoBitrate": {
"type": "integer",
"format": "int32"
},
"videoBufferSize": {
"type": "integer",
"format": "int32"
},
"tonemapAlgorithm": {
"$ref": "#/components/schemas/FFmpegProfileTonemapAlgorithm"
},
"audioFormat": {
"$ref": "#/components/schemas/FFmpegProfileAudioFormat"
},
"audioBitrate": {
"type": "integer",
"format": "int32"
},
"audioBufferSize": {
"type": "integer",
"format": "int32"
},
"normalizeLoudnessMode": {
"$ref": "#/components/schemas/NormalizeLoudnessMode"
},
"targetLoudness": {
"type": [
"null",
"number"
],
"format": "double"
},
"audioChannels": {
"type": "integer",
"format": "int32"
},
"audioSampleRate": {
"type": "integer",
"format": "int32"
},
"normalizeFramerate": {
"type": "boolean"
},
"normalizeColors": {
"type": "boolean"
},
"deinterlaceVideo": {
"type": "boolean"
}
}
},
"CreatePlayoutRequest": {
"required": [
"channelId",
"programScheduleId"
],
"type": "object",
"properties": {
"channelId": {
"type": "integer",
"format": "int32"
},
"programScheduleId": {
"type": "integer",
"format": "int32"
}
}
},
"CreateScheduleRequest": {
"required": [
"name",
"keepMultiPartEpisodesTogether",
"treatCollectionsAsShows",
"shuffleScheduleItems",
"randomStartPoint",
"fixedStartTimeBehavior"
],
"type": "object",
"properties": {
"name": {
"type": [
"null",
"string"
]
},
"keepMultiPartEpisodesTogether": {
"type": "boolean"
},
"treatCollectionsAsShows": {
"type": "boolean"
},
"shuffleScheduleItems": {
"type": "boolean"
},
"randomStartPoint": {
"type": "boolean"
},
"fixedStartTimeBehavior": {
"$ref": "#/components/schemas/FixedStartTimeBehavior"
}
}
},
"CreateSmartCollectionRequest": {
"required": [
"name",
"query"
],
"type": "object",
"properties": {
"name": {
"type": [
"null",
"string"
]
},
"query": {
"type": [
"null",
"string"
]
}
}
},
"FFmpegFullProfileResponseModel": {
"required": [
"id",
"name",
"threadCount",
"hardwareAcceleration",
"vaapiDisplay",
"vaapiDriver",
"vaapiDevice",
"qsvExtraHardwareFrames",
"resolution",
"scalingBehavior",
"videoFormat",
"videoProfile",
"videoPreset",
"allowBFrames",
"bitDepth",
"videoBitrate",
"videoBufferSize",
"tonemapAlgorithm",
"audioFormat",
"audioBitrate",
"audioBufferSize",
"normalizeLoudnessMode",
"audioChannels",
"audioSampleRate",
"normalizeFramerate",
"deinterlaceVideo"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
},
"threadCount": {
"type": "integer",
"format": "int32"
},
"hardwareAcceleration": {
"$ref": "#/components/schemas/HardwareAccelerationKind"
},
"vaapiDisplay": {
"type": [
"null",
"string"
]
},
"vaapiDriver": {
"$ref": "#/components/schemas/VaapiDriver"
},
"vaapiDevice": {
"type": [
"null",
"string"
]
},
"qsvExtraHardwareFrames": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"resolution": {
"type": [
"null",
"string"
]
},
"scalingBehavior": {
"$ref": "#/components/schemas/ScalingBehavior"
},
"videoFormat": {
"$ref": "#/components/schemas/FFmpegProfileVideoFormat"
},
"videoProfile": {
"type": [
"null",
"string"
]
},
"videoPreset": {
"type": [
"null",
"string"
]
},
"allowBFrames": {
"type": "boolean"
},
"bitDepth": {
"$ref": "#/components/schemas/FFmpegProfileBitDepth"
},
"videoBitrate": {
"type": "integer",
"format": "int32"
},
"videoBufferSize": {
"type": "integer",
"format": "int32"
},
"tonemapAlgorithm": {
"$ref": "#/components/schemas/FFmpegProfileTonemapAlgorithm"
},
"audioFormat": {
"$ref": "#/components/schemas/FFmpegProfileAudioFormat"
},
"audioBitrate": {
"type": "integer",
"format": "int32"
},
"audioBufferSize": {
"type": "integer",
"format": "int32"
},
"normalizeLoudnessMode": {
"$ref": "#/components/schemas/NormalizeLoudnessMode"
},
"audioChannels": {
"type": "integer",
"format": "int32"
},
"audioSampleRate": {
"type": "integer",
"format": "int32"
},
"normalizeFramerate": {
"type": "boolean"
},
"deinterlaceVideo": {
"type": [
"null",
"boolean"
]
}
}
},
"FFmpegProfileAudioFormat": {
"enum": [
"None",
"Aac",
"Ac3",
"AacLatm",
"Copy"
],
"type": "string"
},
"FFmpegProfileBitDepth": {
"enum": [
"EightBit",
"TenBit"
],
"type": "string"
},
"FFmpegProfileTonemapAlgorithm": {
"enum": [
"Linear",
"Clip",
"Gamma",
"Reinhard",
"Mobius",
"Hable"
],
"type": "string"
},
"FFmpegProfileVideoFormat": {
"enum": [
"None",
"H264",
"Hevc",
"Mpeg2Video",
"Av1",
"Copy"
],
"type": "string"
},
"FillerKind": {
"enum": [
"None",
"PreRoll",
"MidRoll",
"PostRoll",
"Tail",
"Fallback",
"GuideMode",
"DecoDefault"
],
"type": "string"
},
"FillerMode": {
"enum": [
"None",
"Duration",
"Count",
"Pad",
"RandomCount"
],
"type": "string"
},
"FillerPresetResponseModel": {
"required": [
"id",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
}
}
},
"FillerPresetViewModel": {
"required": [
"id",
"name",
"fillerKind",
"fillerMode",
"duration",
"count",
"padToNearestMinute",
"allowWatermarks",
"collectionType",
"collectionId",
"mediaItemId",
"multiCollectionId",
"smartCollectionId",
"playlist",
"expression",
"useChaptersAsMediaItems"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
},
"fillerKind": {
"$ref": "#/components/schemas/FillerKind"
},
"fillerMode": {
"$ref": "#/components/schemas/FillerMode"
},
"duration": {
"pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
"type": [
"null",
"string"
]
},
"count": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"padToNearestMinute": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"allowWatermarks": {
"type": "boolean"
},
"collectionType": {
"$ref": "#/components/schemas/CollectionType"
},
"collectionId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"mediaItemId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"multiCollectionId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"smartCollectionId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"playlist": {
"$ref": "#/components/schemas/PlaylistViewModel"
},
"expression": {
"type": [
"null",
"string"
]
},
"useChaptersAsMediaItems": {
"type": "boolean"
}
}
},
"FillWithGroupMode": {
"enum": [
"None",
"FillWithOrderedGroups",
"FillWithShuffledGroups"
],
"type": "string"
},
"FilterMode": {
"enum": [
"HardwareIfPossible",
"Software"
],
"type": "string"
},
"FixedStartTimeBehavior": {
"enum": [
"Strict",
"Flexible"
],
"type": "string"
},
"GraphicsElementResponseModel": {
"required": [
"id",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
}
}
},
"GraphicsElementViewModel": {
"required": [
"id",
"name",
"fileName"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
},
"fileName": {
"type": [
"null",
"string"
]
}
}
},
"GuideMode": {
"enum": [
"Normal",
"Filler"
],
"type": "string"
},
"HardwareAccelerationKind": {
"enum": [
"None",
"Qsv",
"Nvenc",
"Vaapi",
"VideoToolbox",
"Amf",
"V4l2m2m",
"Rkmpp"
],
"type": "string"
},
"HealthCheckResponseModel": {
"required": [
"title",
"status",
"detail",
"link"
],
"type": "object",
"properties": {
"title": {
"type": "string"
},
"status": {
"type": "string"
},
"detail": {
"type": "string"
},
"link": {
"type": [
"null",
"string"
]
}
}
},
"HlsSessionModel": {
"required": [
"channelNumber",
"state",
"transcodedUntil",
"lastAccess"
],
"type": "object",
"properties": {
"channelNumber": {
"type": [
"null",
"string"
]
},
"state": {
"type": [
"null",
"string"
]
},
"transcodedUntil": {
"type": "string",
"format": "date-time"
},
"lastAccess": {
"type": "string",
"format": "date-time"
}
}
},
"IFormFile": {
"type": "string",
"format": "binary"
},
"LibraryMediaKind": {
"enum": [
"Movies",
"Shows",
"MusicVideos",
"OtherVideos",
"Songs",
"Images",
"RemoteStreams"
],
"type": "string"
},
"LibraryScanStatusResponseModel": {
"required": [
"libraryId",
"percent"
],
"type": "object",
"properties": {
"libraryId": {
"type": "integer",
"format": "int32"
},
"percent": {
"type": "number",
"format": "double"
}
}
},
"MarathonGroupBy": {
"enum": [
"None",
"Show",
"Season",
"Artist",
"Album",
"Director"
],
"type": "string"
},
"MediaCollectionViewModel": {
"required": [
"collectionType",
"id",
"name",
"useCustomPlaybackOrder",
"state"
],
"type": "object",
"properties": {
"collectionType": {
"$ref": "#/components/schemas/CollectionType"
},
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
},
"useCustomPlaybackOrder": {
"type": "boolean"
},
"mediaItemId": {
"type": "integer",
"format": "int32"
},
"title": {
"type": [
"null",
"string"
]
},
"subtitle": {
"type": [
"null",
"string"
]
},
"sortTitle": {
"type": [
"null",
"string"
]
},
"poster": {
"type": [
"null",
"string"
]
},
"state": {
"$ref": "#/components/schemas/MediaItemState"
},
"hasMediaInfo": {
"type": "boolean"
}
}
},
"MediaItemState": {
"enum": [
"Normal",
"FileNotFound",
"Unavailable",
"RemoteOnly"
],
"type": "string"
},
"MediaSourceLibraryResponseModel": {
"required": [
"id",
"name",
"mediaKind",
"lastScan",
"itemCount"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": "string"
},
"mediaKind": {
"$ref": "#/components/schemas/LibraryMediaKind"
},
"lastScan": {
"type": [
"null",
"string"
],
"format": "date-time"
},
"itemCount": {
"type": "integer",
"format": "int32"
}
}
},
"MediaSourceResponseModel": {
"required": [
"id",
"kind",
"name",
"connectionAddress",
"libraries"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"kind": {
"type": "string"
},
"name": {
"type": "string"
},
"connectionAddress": {
"type": [
"null",
"string"
]
},
"libraries": {
"type": "array",
"items": {
"$ref": "#/components/schemas/MediaSourceLibraryResponseModel"
}
}
}
},
"MultiCollectionItemViewModel": {
"required": [
"multiCollectionId",
"collection",
"scheduleAsGroup",
"playbackOrder"
],
"type": "object",
"properties": {
"multiCollectionId": {
"type": "integer",
"format": "int32"
},
"collection": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
},
"scheduleAsGroup": {
"type": "boolean"
},
"playbackOrder": {
"$ref": "#/components/schemas/PlaybackOrder"
}
}
},
"MultiCollectionSmartItemViewModel": {
"required": [
"multiCollectionId",
"smartCollection",
"scheduleAsGroup",
"playbackOrder"
],
"type": "object",
"properties": {
"multiCollectionId": {
"type": "integer",
"format": "int32"
},
"smartCollection": {
"$ref": "#/components/schemas/SmartCollectionViewModel"
},
"scheduleAsGroup": {
"type": "boolean"
},
"playbackOrder": {
"$ref": "#/components/schemas/PlaybackOrder"
}
}
},
"MultiCollectionViewModel": {
"required": [
"id",
"name",
"items",
"smartItems"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
},
"items": {
"type": [
"null",
"array"
],
"items": {
"$ref": "#/components/schemas/MultiCollectionItemViewModel"
}
},
"smartItems": {
"type": [
"null",
"array"
],
"items": {
"$ref": "#/components/schemas/MultiCollectionSmartItemViewModel"
}
}
}
},
"MultipleMode": {
"enum": [
"Count",
"CollectionSize",
"PlaylistItemSize",
"MultiEpisodeGroupSize"
],
"type": "string"
},
"NamedMediaItemViewModel": {
"required": [
"mediaItemId",
"name"
],
"type": "object",
"properties": {
"mediaItemId": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
}
}
},
"NormalizeLoudnessMode": {
"enum": [
"Off",
"LoudNorm"
],
"type": "string"
},
"PagedPlayoutItemsResponseModel": {
"required": [
"totalCount",
"page"
],
"type": "object",
"properties": {
"totalCount": {
"type": "integer",
"format": "int32"
},
"page": {
"type": [
"null",
"array"
],
"items": {
"$ref": "#/components/schemas/PlayoutItemResponseModel"
}
}
}
},
"PagedPlayoutsResponseModel": {
"required": [
"totalCount",
"page"
],
"type": "object",
"properties": {
"totalCount": {
"type": "integer",
"format": "int32"
},
"page": {
"type": [
"null",
"array"
],
"items": {
"$ref": "#/components/schemas/PlayoutListItemResponseModel"
}
}
}
},
"PlaybackOrder": {
"enum": [
"None",
"Chronological",
"Random",
"Shuffle",
"ShuffleInOrder",
"MultiEpisodeShuffle",
"SeasonEpisode",
"RandomRotation",
"Marathon"
],
"type": "string"
},
"PlaylistViewModel": {
"required": [
"id",
"playlistGroupId",
"name",
"isSystem"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"playlistGroupId": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
},
"isSystem": {
"type": "boolean"
}
}
},
"PlayoutBuildMode": {
"enum": [
"Continue",
"Refresh",
"Reset"
],
"type": "string"
},
"PlayoutBuildStatusResponseModel": {
"required": [
"lastBuild",
"success",
"message"
],
"type": "object",
"properties": {
"lastBuild": {
"type": "string",
"format": "date-time"
},
"success": {
"type": "boolean"
},
"message": {
"type": [
"null",
"string"
]
}
}
},
"PlayoutItemResponseModel": {
"required": [
"title",
"start",
"finish",
"duration",
"fillerKind"
],
"type": "object",
"properties": {
"title": {
"type": [
"null",
"string"
]
},
"start": {
"type": "string",
"format": "date-time"
},
"finish": {
"type": "string",
"format": "date-time"
},
"duration": {
"type": [
"null",
"string"
]
},
"fillerKind": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/FillerKind"
}
]
}
}
},
"PlayoutListItemResponseModel": {
"required": [
"id",
"channelNumber",
"channelName",
"scheduleKind",
"scheduleName",
"dailyRebuildTime",
"buildStatus"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"channelNumber": {
"type": "string"
},
"channelName": {
"type": "string"
},
"scheduleKind": {
"$ref": "#/components/schemas/PlayoutScheduleKind"
},
"scheduleName": {
"type": "string"
},
"dailyRebuildTime": {
"pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
"type": [
"null",
"string"
]
},
"buildStatus": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/PlayoutBuildStatusResponseModel"
}
]
}
}
},
"PlayoutMode": {
"enum": [
"Flood",
"One",
"Multiple",
"Duration"
],
"type": "string"
},
"PlayoutResponseModel": {
"required": [
"id",
"scheduleKind",
"channelName",
"channelNumber",
"playoutMode",
"scheduleName",
"scheduleFile",
"dailyRebuildTime",
"buildStatus"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"scheduleKind": {
"$ref": "#/components/schemas/PlayoutScheduleKind"
},
"channelName": {
"type": "string"
},
"channelNumber": {
"type": "string"
},
"playoutMode": {
"$ref": "#/components/schemas/ChannelPlayoutMode"
},
"scheduleName": {
"type": "string"
},
"scheduleFile": {
"type": [
"null",
"string"
]
},
"dailyRebuildTime": {
"pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
"type": [
"null",
"string"
]
},
"buildStatus": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/PlayoutBuildStatusResponseModel"
}
]
}
}
},
"PlayoutScheduleKind": {
"enum": [
"None",
"Classic",
"Block",
"Sequential",
"Scripted",
"ExternalJson"
],
"type": "string"
},
"ProblemDetails": {
"type": "object",
"properties": {
"type": {
"type": [
"null",
"string"
]
},
"title": {
"type": [
"null",
"string"
]
},
"status": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"detail": {
"type": [
"null",
"string"
]
},
"instance": {
"type": [
"null",
"string"
]
}
}
},
"ProgramScheduleItemsWithDurationViewModel": {
"required": [
"items",
"totalDurationEstimate"
],
"type": "object",
"properties": {
"items": {
"type": [
"null",
"array"
],
"items": {
"$ref": "#/components/schemas/ProgramScheduleItemViewModel"
}
},
"totalDurationEstimate": {
"pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
"type": [
"null",
"string"
]
}
}
},
"ProgramScheduleItemViewModel": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"index": {
"type": "integer",
"format": "int32"
},
"startType": {
"$ref": "#/components/schemas/StartType"
},
"startTime": {
"pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
"type": [
"null",
"string"
]
},
"fixedStartTimeBehavior": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/FixedStartTimeBehavior"
}
]
},
"playoutMode": {
"$ref": "#/components/schemas/PlayoutMode"
},
"collectionType": {
"$ref": "#/components/schemas/CollectionType"
},
"collection": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
},
"multiCollection": {
"$ref": "#/components/schemas/MultiCollectionViewModel"
},
"smartCollection": {
"$ref": "#/components/schemas/SmartCollectionViewModel"
},
"rerunCollection": {
"$ref": "#/components/schemas/RerunCollectionViewModel"
},
"playlist": {
"$ref": "#/components/schemas/PlaylistViewModel"
},
"mediaItem": {
"$ref": "#/components/schemas/NamedMediaItemViewModel"
},
"searchTitle": {
"type": [
"null",
"string"
]
},
"searchQuery": {
"type": [
"null",
"string"
]
},
"playbackOrder": {
"$ref": "#/components/schemas/PlaybackOrder"
},
"marathonGroupBy": {
"$ref": "#/components/schemas/MarathonGroupBy"
},
"marathonShuffleGroups": {
"type": "boolean"
},
"marathonShuffleItems": {
"type": "boolean"
},
"marathonBatchSize": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"fillWithGroupMode": {
"$ref": "#/components/schemas/FillWithGroupMode"
},
"customTitle": {
"type": [
"null",
"string"
]
},
"guideMode": {
"$ref": "#/components/schemas/GuideMode"
},
"preRollFiller": {
"$ref": "#/components/schemas/FillerPresetViewModel"
},
"midRollFiller": {
"$ref": "#/components/schemas/FillerPresetViewModel"
},
"postRollFiller": {
"$ref": "#/components/schemas/FillerPresetViewModel"
},
"tailFiller": {
"$ref": "#/components/schemas/FillerPresetViewModel"
},
"fallbackFiller": {
"$ref": "#/components/schemas/FillerPresetViewModel"
},
"watermarks": {
"type": [
"null",
"array"
],
"items": {
"$ref": "#/components/schemas/WatermarkViewModel"
}
},
"graphicsElements": {
"type": [
"null",
"array"
],
"items": {
"$ref": "#/components/schemas/GraphicsElementViewModel"
}
},
"preferredAudioLanguageCode": {
"type": [
"null",
"string"
]
},
"preferredAudioTitle": {
"type": [
"null",
"string"
]
},
"preferredSubtitleLanguageCode": {
"type": [
"null",
"string"
]
},
"subtitleMode": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/ChannelSubtitleMode"
}
]
},
"durationEstimate": {
"pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
"type": [
"null",
"string"
]
},
"name": {
"type": [
"null",
"string"
]
}
}
},
"ProgramScheduleViewModel": {
"required": [
"id",
"name",
"keepMultiPartEpisodesTogether",
"treatCollectionsAsShows",
"shuffleScheduleItems",
"randomStartPoint",
"fixedStartTimeBehavior"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
},
"keepMultiPartEpisodesTogether": {
"type": "boolean"
},
"treatCollectionsAsShows": {
"type": "boolean"
},
"shuffleScheduleItems": {
"type": "boolean"
},
"randomStartPoint": {
"type": "boolean"
},
"fixedStartTimeBehavior": {
"$ref": "#/components/schemas/FixedStartTimeBehavior"
}
}
},
"ReplaceScheduleItemsRequest": {
"required": [
"items"
],
"type": "object",
"properties": {
"items": {
"type": [
"null",
"array"
],
"items": {
"$ref": "#/components/schemas/ScheduleItemRequest"
}
}
}
},
"RerunCollectionViewModel": {
"required": [
"id",
"name",
"collectionType",
"collection",
"multiCollection",
"smartCollection",
"mediaItem",
"firstRunPlaybackOrder",
"rerunPlaybackOrder"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
},
"collectionType": {
"$ref": "#/components/schemas/CollectionType"
},
"collection": {
"$ref": "#/components/schemas/MediaCollectionViewModel"
},
"multiCollection": {
"$ref": "#/components/schemas/MultiCollectionViewModel"
},
"smartCollection": {
"$ref": "#/components/schemas/SmartCollectionViewModel"
},
"mediaItem": {
"$ref": "#/components/schemas/NamedMediaItemViewModel"
},
"firstRunPlaybackOrder": {
"$ref": "#/components/schemas/PlaybackOrder"
},
"rerunPlaybackOrder": {
"$ref": "#/components/schemas/PlaybackOrder"
}
}
},
"ResolutionViewModel": {
"required": [
"id",
"name",
"width",
"height",
"isCustom"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
},
"width": {
"type": "integer",
"format": "int32"
},
"height": {
"type": "integer",
"format": "int32"
},
"isCustom": {
"type": "boolean"
}
}
},
"ScalingBehavior": {
"enum": [
"ScaleAndPad",
"Stretch",
"Crop"
],
"type": "string"
},
"ScanShowRequest": {
"required": [
"showTitle"
],
"type": "object",
"properties": {
"showTitle": {
"type": [
"null",
"string"
]
},
"deepScan": {
"type": "boolean",
"default": false
}
}
},
"ScheduleItemRequest": {
"required": [
"startType",
"startTime",
"fixedStartTimeBehavior",
"playoutMode",
"collectionType",
"collectionId",
"multiCollectionId",
"smartCollectionId",
"rerunCollectionId",
"mediaItemId",
"playlistId",
"searchTitle",
"searchQuery",
"playbackOrder",
"marathonGroupBy",
"marathonShuffleGroups",
"marathonShuffleItems",
"marathonBatchSize",
"fillWithGroupMode",
"multipleMode",
"multipleCount",
"playoutDuration",
"tailMode",
"discardToFillAttempts",
"customTitle",
"guideMode",
"preRollFillerId",
"midRollFillerId",
"postRollFillerId",
"tailFillerId",
"fallbackFillerId",
"watermarkIds",
"graphicsElementIds",
"preferredAudioLanguageCode",
"preferredAudioTitle",
"preferredSubtitleLanguageCode",
"subtitleMode"
],
"type": "object",
"properties": {
"startType": {
"$ref": "#/components/schemas/StartType"
},
"startTime": {
"pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
"type": [
"null",
"string"
]
},
"fixedStartTimeBehavior": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/FixedStartTimeBehavior"
}
]
},
"playoutMode": {
"$ref": "#/components/schemas/PlayoutMode"
},
"collectionType": {
"$ref": "#/components/schemas/CollectionType"
},
"collectionId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"multiCollectionId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"smartCollectionId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"rerunCollectionId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"mediaItemId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"playlistId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"searchTitle": {
"type": [
"null",
"string"
]
},
"searchQuery": {
"type": [
"null",
"string"
]
},
"playbackOrder": {
"$ref": "#/components/schemas/PlaybackOrder"
},
"marathonGroupBy": {
"$ref": "#/components/schemas/MarathonGroupBy"
},
"marathonShuffleGroups": {
"type": "boolean"
},
"marathonShuffleItems": {
"type": "boolean"
},
"marathonBatchSize": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"fillWithGroupMode": {
"$ref": "#/components/schemas/FillWithGroupMode"
},
"multipleMode": {
"$ref": "#/components/schemas/MultipleMode"
},
"multipleCount": {
"type": [
"null",
"string"
]
},
"playoutDuration": {
"pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
"type": [
"null",
"string"
]
},
"tailMode": {
"$ref": "#/components/schemas/TailMode"
},
"discardToFillAttempts": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"customTitle": {
"type": [
"null",
"string"
]
},
"guideMode": {
"$ref": "#/components/schemas/GuideMode"
},
"preRollFillerId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"midRollFillerId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"postRollFillerId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"tailFillerId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"fallbackFillerId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"watermarkIds": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"format": "int32"
}
},
"graphicsElementIds": {
"type": [
"null",
"array"
],
"items": {
"type": "integer",
"format": "int32"
}
},
"preferredAudioLanguageCode": {
"type": [
"null",
"string"
]
},
"preferredAudioTitle": {
"type": [
"null",
"string"
]
},
"preferredSubtitleLanguageCode": {
"type": [
"null",
"string"
]
},
"subtitleMode": {
"oneOf": [
{
"type": "null"
},
{
"$ref": "#/components/schemas/ChannelSubtitleMode"
}
]
}
}
},
"SmartCollectionResponseModel": {
"required": [
"id",
"name",
"query"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
},
"query": {
"type": [
"null",
"string"
]
}
}
},
"SmartCollectionViewModel": {
"required": [
"id",
"name",
"query"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
},
"query": {
"type": [
"null",
"string"
]
}
}
},
"StartType": {
"enum": [
"Dynamic",
"Fixed"
],
"type": "string"
},
"StreamingMode": {
"enum": [
"TransportStream",
"HttpLiveStreamingDirect",
"HttpLiveStreamingSegmenter",
"TransportStreamHybrid"
],
"type": "string"
},
"TailMode": {
"enum": [
"None",
"Offline",
"Slate",
"Filler"
],
"type": "string"
},
"UpdateChannelRequest": {
"required": [
"name",
"number",
"group",
"categories",
"fFmpegProfileId",
"slugSeconds",
"logo",
"streamSelectorMode",
"streamSelector",
"preferredAudioLanguageCode",
"preferredAudioTitle",
"playoutSource",
"playoutMode",
"mirrorSourceChannelId",
"playoutOffset",
"streamingMode",
"watermarkId",
"fallbackFillerId",
"preferredSubtitleLanguageCode",
"subtitleMode",
"musicVideoCreditsMode",
"musicVideoCreditsTemplate",
"songVideoMode",
"transcodeMode",
"idleBehavior",
"isEnabled",
"showInEpg"
],
"type": "object",
"properties": {
"name": {
"type": [
"null",
"string"
]
},
"number": {
"type": [
"null",
"string"
]
},
"group": {
"type": [
"null",
"string"
]
},
"categories": {
"type": [
"null",
"string"
]
},
"fFmpegProfileId": {
"type": "integer",
"format": "int32"
},
"slugSeconds": {
"type": [
"null",
"number"
],
"format": "double"
},
"logo": {
"$ref": "#/components/schemas/ArtworkContentTypeModel"
},
"streamSelectorMode": {
"$ref": "#/components/schemas/ChannelStreamSelectorMode"
},
"streamSelector": {
"type": [
"null",
"string"
]
},
"preferredAudioLanguageCode": {
"type": [
"null",
"string"
]
},
"preferredAudioTitle": {
"type": [
"null",
"string"
]
},
"playoutSource": {
"$ref": "#/components/schemas/ChannelPlayoutSource"
},
"playoutMode": {
"$ref": "#/components/schemas/ChannelPlayoutMode"
},
"mirrorSourceChannelId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"playoutOffset": {
"pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
"type": [
"null",
"string"
]
},
"streamingMode": {
"$ref": "#/components/schemas/StreamingMode"
},
"watermarkId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"fallbackFillerId": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"preferredSubtitleLanguageCode": {
"type": [
"null",
"string"
]
},
"subtitleMode": {
"$ref": "#/components/schemas/ChannelSubtitleMode"
},
"musicVideoCreditsMode": {
"$ref": "#/components/schemas/ChannelMusicVideoCreditsMode"
},
"musicVideoCreditsTemplate": {
"type": [
"null",
"string"
]
},
"songVideoMode": {
"$ref": "#/components/schemas/ChannelSongVideoMode"
},
"transcodeMode": {
"$ref": "#/components/schemas/ChannelTranscodeMode"
},
"idleBehavior": {
"$ref": "#/components/schemas/ChannelIdleBehavior"
},
"isEnabled": {
"type": "boolean"
},
"showInEpg": {
"type": "boolean"
}
}
},
"UpdateCollectionRequest": {
"required": [
"name",
"useCustomPlaybackOrder"
],
"type": "object",
"properties": {
"name": {
"type": [
"null",
"string"
]
},
"useCustomPlaybackOrder": {
"type": [
"null",
"boolean"
]
}
}
},
"UpdateFFmpegProfileRequest": {
"required": [
"name",
"threadCount",
"normalizeAudio",
"normalizeVideo",
"hardwareAcceleration",
"vaapiDisplay",
"vaapiDriver",
"vaapiDevice",
"qsvExtraHardwareFrames",
"resolutionId",
"scalingBehavior",
"padMode",
"videoFormat",
"videoProfile",
"videoPreset",
"allowBFrames",
"bitDepth",
"videoBitrate",
"videoBufferSize",
"tonemapAlgorithm",
"audioFormat",
"audioBitrate",
"audioBufferSize",
"normalizeLoudnessMode",
"targetLoudness",
"audioChannels",
"audioSampleRate",
"normalizeFramerate",
"normalizeColors",
"deinterlaceVideo"
],
"type": "object",
"properties": {
"name": {
"type": [
"null",
"string"
]
},
"threadCount": {
"type": "integer",
"format": "int32"
},
"normalizeAudio": {
"type": "boolean"
},
"normalizeVideo": {
"type": "boolean"
},
"hardwareAcceleration": {
"$ref": "#/components/schemas/HardwareAccelerationKind"
},
"vaapiDisplay": {
"type": [
"null",
"string"
]
},
"vaapiDriver": {
"$ref": "#/components/schemas/VaapiDriver"
},
"vaapiDevice": {
"type": [
"null",
"string"
]
},
"qsvExtraHardwareFrames": {
"type": [
"null",
"integer"
],
"format": "int32"
},
"resolutionId": {
"type": "integer",
"format": "int32"
},
"scalingBehavior": {
"$ref": "#/components/schemas/ScalingBehavior"
},
"padMode": {
"$ref": "#/components/schemas/FilterMode"
},
"videoFormat": {
"$ref": "#/components/schemas/FFmpegProfileVideoFormat"
},
"videoProfile": {
"type": [
"null",
"string"
]
},
"videoPreset": {
"type": [
"null",
"string"
]
},
"allowBFrames": {
"type": "boolean"
},
"bitDepth": {
"$ref": "#/components/schemas/FFmpegProfileBitDepth"
},
"videoBitrate": {
"type": "integer",
"format": "int32"
},
"videoBufferSize": {
"type": "integer",
"format": "int32"
},
"tonemapAlgorithm": {
"$ref": "#/components/schemas/FFmpegProfileTonemapAlgorithm"
},
"audioFormat": {
"$ref": "#/components/schemas/FFmpegProfileAudioFormat"
},
"audioBitrate": {
"type": "integer",
"format": "int32"
},
"audioBufferSize": {
"type": "integer",
"format": "int32"
},
"normalizeLoudnessMode": {
"$ref": "#/components/schemas/NormalizeLoudnessMode"
},
"targetLoudness": {
"type": [
"null",
"number"
],
"format": "double"
},
"audioChannels": {
"type": "integer",
"format": "int32"
},
"audioSampleRate": {
"type": "integer",
"format": "int32"
},
"normalizeFramerate": {
"type": "boolean"
},
"normalizeColors": {
"type": "boolean"
},
"deinterlaceVideo": {
"type": "boolean"
}
}
},
"UpdateScheduleRequest": {
"required": [
"name",
"keepMultiPartEpisodesTogether",
"treatCollectionsAsShows",
"shuffleScheduleItems",
"randomStartPoint",
"fixedStartTimeBehavior"
],
"type": "object",
"properties": {
"name": {
"type": [
"null",
"string"
]
},
"keepMultiPartEpisodesTogether": {
"type": "boolean"
},
"treatCollectionsAsShows": {
"type": "boolean"
},
"shuffleScheduleItems": {
"type": "boolean"
},
"randomStartPoint": {
"type": "boolean"
},
"fixedStartTimeBehavior": {
"$ref": "#/components/schemas/FixedStartTimeBehavior"
}
}
},
"UpdateSmartCollectionRequest": {
"required": [
"name",
"query"
],
"type": "object",
"properties": {
"name": {
"type": [
"null",
"string"
]
},
"query": {
"type": [
"null",
"string"
]
}
}
},
"VaapiDriver": {
"enum": [
"Default",
"iHD",
"i965",
"RadeonSI",
"Nouveau"
],
"type": "string"
},
"WatermarkLocation": {
"type": "integer"
},
"WatermarkResponseModel": {
"required": [
"id",
"name"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"name": {
"type": [
"null",
"string"
]
}
}
},
"WatermarkSize": {
"type": "integer"
},
"WatermarkViewModel": {
"required": [
"id",
"image",
"name",
"mode",
"imageSource",
"location",
"size",
"width",
"horizontalMargin",
"verticalMargin",
"frequencyMinutes",
"durationSeconds",
"opacity",
"placeWithinSourceContent",
"opacityExpression",
"zIndex"
],
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int32"
},
"image": {
"$ref": "#/components/schemas/ArtworkContentTypeModel"
},
"name": {
"type": [
"null",
"string"
]
},
"mode": {
"$ref": "#/components/schemas/ChannelWatermarkMode"
},
"imageSource": {
"$ref": "#/components/schemas/ChannelWatermarkImageSource"
},
"location": {
"$ref": "#/components/schemas/WatermarkLocation"
},
"size": {
"$ref": "#/components/schemas/WatermarkSize"
},
"width": {
"type": "number",
"format": "double"
},
"horizontalMargin": {
"type": "number",
"format": "double"
},
"verticalMargin": {
"type": "number",
"format": "double"
},
"frequencyMinutes": {
"type": "integer",
"format": "int32"
},
"durationSeconds": {
"type": "integer",
"format": "int32"
},
"opacity": {
"type": "integer",
"format": "int32"
},
"placeWithinSourceContent": {
"type": "boolean"
},
"opacityExpression": {
"type": [
"null",
"string"
]
},
"zIndex": {
"type": "integer",
"format": "int32"
}
}
}
}
},
"tags": [
{
"name": "Artwork"
},
{
"name": "Channel"
},
{
"name": "Channels"
},
{
"name": "Collections"
},
{
"name": "FFmpeg Profiles"
},
{
"name": "Filler Presets"
},
{
"name": "Graphics Elements"
},
{
"name": "Health"
},
{
"name": "Libraries"
},
{
"name": "Maintenance"
},
{
"name": "Media Sources"
},
{
"name": "Playouts"
},
{
"name": "Resolution"
},
{
"name": "Schedules"
},
{
"name": "Sessions"
},
{
"name": "Smart Collections"
},
{
"name": "Version"
},
{
"name": "Watermarks"
}
]
}