{ "openapi": "3.1.1", "info": { "title": "ErsatzTV | v1", "version": "1.0.0" }, "paths": { "/api/artists/{id}": { "get": { "tags": [ "Artists" ], "summary": "Get an artist by id", "operationId": "GetArtistById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ArtistDetailResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ArtistDetailResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ArtistDetailResponseModel" } } } }, "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/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/blocks/groups": { "get": { "tags": [ "Blocks" ], "summary": "Get all block groups", "operationId": "GetBlockGroups", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockGroupResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockGroupResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockGroupResponseModel" } } } } } } }, "post": { "tags": [ "Blocks" ], "summary": "Create a block group", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateBlockGroupRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateBlockGroupRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateBlockGroupRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateBlockGroupRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BlockGroupResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BlockGroupResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BlockGroupResponseModel" } } } }, "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/blocks/groups/{id}": { "delete": { "tags": [ "Blocks" ], "summary": "Delete a block group", "description": "Deletes the block group. The database cascade removes every block (and its items) in the group.", "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" } } } } } } }, "/api/blocks": { "get": { "tags": [ "Blocks" ], "summary": "Get all blocks", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockResponseModel" } } } } } } }, "post": { "tags": [ "Blocks" ], "summary": "Create a block", "description": "Creates an empty block in the given block group. The block defaults to 30 minutes.", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateBlockRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateBlockRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateBlockRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateBlockRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BlockResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BlockResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BlockResponseModel" } } } }, "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/blocks/{id}": { "get": { "tags": [ "Blocks" ], "summary": "Get a block by id", "operationId": "GetBlockById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BlockResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BlockResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BlockResponseModel" } } } }, "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": [ "Blocks" ], "summary": "Delete a block", "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" } } } } } }, "put": { "tags": [ "Blocks" ], "summary": "Replace a block and its items", "description": "Replaces the block's name/minutes/stop-scheduling and its full item list. Item indexes are assigned from the array order. Minutes must be greater than zero, divisible by 5, and at most 24 hours.", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/ReplaceBlockRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ReplaceBlockRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ReplaceBlockRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ReplaceBlockRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BlockWithItemsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BlockWithItemsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BlockWithItemsResponseModel" } } } }, "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/blocks/{id}/items": { "get": { "tags": [ "Blocks" ], "summary": "Get block items", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockItemResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockItemResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockItemResponseModel" } } } } }, "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/blocks/{id}/preview": { "post": { "tags": [ "Blocks" ], "summary": "Preview a block playout", "description": "Builds a preview playout from the supplied block definition without persisting any changes to the block, its items, or any playout. Returns the resulting start/finish/title/duration list.", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/ReplaceBlockRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ReplaceBlockRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ReplaceBlockRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ReplaceBlockRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockPreviewItemResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockPreviewItemResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockPreviewItemResponseModel" } } } } }, "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/blocks/{id}/copy": { "post": { "tags": [ "Blocks" ], "summary": "Copy a block", "description": "Copies the block and its items into another (or the same) block group under a new name.", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CopyBlockRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CopyBlockRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CopyBlockRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CopyBlockRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/BlockResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/BlockResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/BlockResponseModel" } } } }, "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": { "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/from-lineup": { "post": { "tags": [ "Channels" ], "summary": "Create a channel from a library lineup", "description": "Atomically creates the channel, program schedule, a classic playout, and (for multi-item lineups) a generated system playlist. A single-item lineup produces one flood schedule item that references the target directly (movie, show, season, artist, collection, smart/multi collection, rerun collection, or playlist) and no generated playlist. A lineup with two or more items produces one generated system playlist whose entries play in the given order (each entry played in full before the next) referenced by one flood schedule item; only movies, shows, seasons, artists, collections, smart collections and multi collections are allowed there (rerun collections and playlists are single-item only). playbackOrder sets how items within each lineup entry are ordered. Template defaults are stamped at create time; advanced overrides win.", "operationId": "CreateChannelFromLineup", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateChannelFromLineupRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateChannelFromLineupRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateChannelFromLineupRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateChannelFromLineupRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/CreateChannelFromLineupResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateChannelFromLineupResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateChannelFromLineupResponseModel" } } } }, "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/channel-templates": { "get": { "tags": [ "Channel Templates" ], "summary": "Get all channel templates", "operationId": "GetChannelTemplates", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } } } } } } }, "post": { "tags": [ "Channel Templates" ], "summary": "Create a channel template", "operationId": "CreateChannelTemplate", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateChannelTemplateRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateChannelTemplateRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateChannelTemplateRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateChannelTemplateRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } } } }, "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/channel-templates/default": { "get": { "tags": [ "Channel Templates" ], "summary": "Get the default channel template", "operationId": "GetDefaultChannelTemplate", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } } } }, "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/channel-templates/default/{id}": { "put": { "tags": [ "Channel Templates" ], "summary": "Set the default channel template", "operationId": "SetDefaultChannelTemplate", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } } } }, "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/channel-templates/{id}": { "get": { "tags": [ "Channel Templates" ], "summary": "Get a channel template by id", "operationId": "GetChannelTemplateById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } } } }, "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": [ "Channel Templates" ], "summary": "Update a channel template", "operationId": "UpdateChannelTemplate", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateChannelTemplateRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateChannelTemplateRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateChannelTemplateRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateChannelTemplateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ChannelTemplateResponseModel" } } } }, "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": [ "Channel Templates" ], "summary": "Delete a channel template", "operationId": "DeleteChannelTemplate", "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": { "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": { "get": { "tags": [ "Collections" ], "summary": "Get the items in a manual collection", "description": "Returns a manual collection's full contents (all media kinds), paged.", "operationId": "GetCollectionItems", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "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/PagedLibraryBrowseItemsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PagedLibraryBrowseItemsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PagedLibraryBrowseItemsResponseModel" } } } }, "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": [ "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}/custom-order": { "put": { "tags": [ "Collections" ], "summary": "Set a collection's custom playback order", "description": "Replaces the custom playback order of a manual collection. CustomIndex is assigned from array position (the request body has no index field); ids that are not members of the collection are ignored. Set UseCustomPlaybackOrder on the collection for this order to take effect.", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateCollectionCustomOrderRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCollectionCustomOrderRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateCollectionCustomOrderRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateCollectionCustomOrderRequest" } } }, "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/decos/groups": { "get": { "tags": [ "Decos" ], "summary": "Get all deco groups", "operationId": "GetDecoGroups", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoGroupResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoGroupResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoGroupResponseModel" } } } } } } }, "post": { "tags": [ "Decos" ], "summary": "Create a deco group", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateDecoGroupRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateDecoGroupRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateDecoGroupRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateDecoGroupRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/DecoGroupResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/DecoGroupResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DecoGroupResponseModel" } } } }, "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/decos/groups/{id}": { "delete": { "tags": [ "Decos" ], "summary": "Delete a deco group", "description": "Deletes the deco group. The database cascade removes every deco in the group (and each deco's break content and watermark/graphics-element assignments); any playout that used a removed deco has its default deco cleared.", "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" } } } } } } }, "/api/decos": { "get": { "tags": [ "Decos" ], "summary": "Get all decos", "description": "Returns every deco as a flat list, ordered by group name then deco name.", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoListItemResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoListItemResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoListItemResponseModel" } } } } } } }, "post": { "tags": [ "Decos" ], "summary": "Create a deco", "description": "Creates a deco in the given deco group. The deco inherits everything by default.", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateDecoRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateDecoRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateDecoRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateDecoRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/DecoResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/DecoResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DecoResponseModel" } } } }, "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/decos/{id}": { "get": { "tags": [ "Decos" ], "summary": "Get a deco by id", "operationId": "GetDecoById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/DecoResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/DecoResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DecoResponseModel" } } } }, "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": [ "Decos" ], "summary": "Delete a deco", "description": "Deletes the deco. Any playout that used it as its default deco has that default cleared.", "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" } } } } } }, "put": { "tags": [ "Decos" ], "summary": "Replace a deco", "description": "Replaces the full state of the deco (name and all six sections). Send the entire desired state, including unchanged sections. Merge is only valid for the watermark and graphics-element modes. Break content allows at most one item per placement.", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/ReplaceDecoRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ReplaceDecoRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ReplaceDecoRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ReplaceDecoRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/DecoResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/DecoResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DecoResponseModel" } } } }, "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/deco-templates/groups": { "get": { "tags": [ "DecoTemplates" ], "summary": "Get all deco template groups", "operationId": "GetDecoTemplateGroups", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoTemplateGroupResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoTemplateGroupResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoTemplateGroupResponseModel" } } } } } } }, "post": { "tags": [ "DecoTemplates" ], "summary": "Create a deco template group", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateDecoTemplateGroupRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateDecoTemplateGroupRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateDecoTemplateGroupRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateDecoTemplateGroupRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/DecoTemplateGroupResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/DecoTemplateGroupResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DecoTemplateGroupResponseModel" } } } }, "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/deco-templates/groups/{id}": { "delete": { "tags": [ "DecoTemplates" ], "summary": "Delete a deco template group", "description": "Deletes the deco template group. The database cascade removes every deco template (and its items) in the group; any playout template that used a removed deco template has that reference cleared.", "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" } } } } } } }, "/api/deco-templates": { "get": { "tags": [ "DecoTemplates" ], "summary": "Get all deco templates", "description": "Returns every deco template as a flat list, ordered by group name then deco template name.", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoTemplateResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoTemplateResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoTemplateResponseModel" } } } } } } }, "post": { "tags": [ "DecoTemplates" ], "summary": "Create a deco template", "description": "Creates an empty deco template in the given deco template group.", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateDecoTemplateRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateDecoTemplateRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateDecoTemplateRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateDecoTemplateRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/DecoTemplateResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/DecoTemplateResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DecoTemplateResponseModel" } } } }, "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/deco-templates/{id}": { "get": { "tags": [ "DecoTemplates" ], "summary": "Get a deco template by id", "operationId": "GetDecoTemplateById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/DecoTemplateResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/DecoTemplateResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DecoTemplateResponseModel" } } } }, "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": [ "DecoTemplates" ], "summary": "Delete a deco template", "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" } } } } } }, "put": { "tags": [ "DecoTemplates" ], "summary": "Replace a deco template and its items", "description": "Replaces the deco template's name and its full item list. Each item assigns a deco to a start/end time of day; an end time of 00:00:00 means the item runs to the end of the day. Items must not overlap.", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/ReplaceDecoTemplateRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ReplaceDecoTemplateRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ReplaceDecoTemplateRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ReplaceDecoTemplateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/DecoTemplateWithItemsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/DecoTemplateWithItemsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DecoTemplateWithItemsResponseModel" } } } }, "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/deco-templates/{id}/items": { "get": { "tags": [ "DecoTemplates" ], "summary": "Get deco template items", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoTemplateItemResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoTemplateItemResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/DecoTemplateItemResponseModel" } } } } }, "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/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/hardware-acceleration-kinds": { "get": { "tags": [ "FFmpeg Profiles" ], "summary": "Get supported hardware acceleration kinds", "description": "Returns the hardware-acceleration kinds available on this host (probed from the configured FFmpeg binary). Always includes None; falls back to just None when FFmpeg is unavailable.", "operationId": "GetSupportedHardwareAccelerationKinds", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/HardwareAccelerationKind" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/HardwareAccelerationKind" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/HardwareAccelerationKind" } } } } } } } }, "/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" } } } } } } }, "post": { "tags": [ "Filler Presets" ], "summary": "Create a filler preset", "operationId": "CreateFillerPreset", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateFillerPresetRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateFillerPresetRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateFillerPresetRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateFillerPresetRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/FillerPresetFullResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/FillerPresetFullResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/FillerPresetFullResponseModel" } } } }, "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/{id}": { "get": { "tags": [ "Filler Presets" ], "summary": "Get a filler preset by id", "operationId": "GetFillerPresetById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/FillerPresetFullResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/FillerPresetFullResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/FillerPresetFullResponseModel" } } } }, "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": [ "Filler Presets" ], "summary": "Update a filler preset", "operationId": "UpdateFillerPreset", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateFillerPresetRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateFillerPresetRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateFillerPresetRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateFillerPresetRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/FillerPresetFullResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/FillerPresetFullResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/FillerPresetFullResponseModel" } } } }, "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": [ "Filler Presets" ], "summary": "Delete a filler preset", "operationId": "DeleteFillerPreset", "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/graphics-elements": { "get": { "tags": [ "Graphics Elements" ], "summary": "Get all graphics elements", "description": "Returns all graphics elements. Pass refresh=true to first re-sync the on-disk graphics element definitions into the database (matching the legacy Blazor behavior) so newly added files appear.", "operationId": "GetGraphicsElements", "parameters": [ { "name": "refresh", "in": "query", "schema": { "type": "boolean" } } ], "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/images/folders": { "get": { "tags": [ "Images" ], "summary": "List image library folders", "description": "Omit parentId for the top-level folders; pass a folder id to list that folder's children.", "operationId": "GetImageFolders", "parameters": [ { "name": "parentId", "in": "query", "description": "Parent image library-folder id; omit for the top-level folders", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ImageFolderResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ImageFolderResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ImageFolderResponseModel" } } } } } } } }, "/api/images/folders/{id}/duration": { "put": { "tags": [ "Images" ], "summary": "Set or clear an image folder's playout duration", "description": "Pass a positive durationSeconds to set the per-image duration for this folder (cascades to descendant images that don't override it); pass null to clear it and inherit from an ancestor.", "operationId": "UpdateImageFolderDuration", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateImageFolderDurationRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateImageFolderDurationRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateImageFolderDurationRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateImageFolderDurationRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/UpdateImageFolderDurationResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateImageFolderDurationResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateImageFolderDurationResponseModel" } } } }, "400": { "description": "Bad Request", "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" } } } } } } }, "/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" }, "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" } } } }, "400": { "description": "Bad Request", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/api/library/browse": { "get": { "tags": [ "Libraries" ], "summary": "Browse and search library items", "operationId": "BrowseLibrary", "parameters": [ { "name": "query", "in": "query", "schema": { "type": "string", "default": "" } }, { "name": "libraryId", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "mediaType", "in": "query", "schema": { "$ref": "#/components/schemas/LibraryBrowseMediaType" } }, { "name": "pageNum", "in": "query", "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "pageSize", "in": "query", "schema": { "type": "integer", "format": "int32", "default": 100 } }, { "name": "parentId", "in": "query", "description": "Parent id for a drill-in listing; only used with mediaType=TelevisionSeason (that show's seasons), mediaType=Episode (that season's episodes) or mediaType=MusicVideo (that artist's music videos), ignored otherwise", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PagedLibraryBrowseItemsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PagedLibraryBrowseItemsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PagedLibraryBrowseItemsResponseModel" } } } } } } }, "/api/logs": { "get": { "tags": [ "Logs" ], "summary": "Get recent log entries", "operationId": "GetLogs", "parameters": [ { "name": "pageNum", "in": "query", "schema": { "type": "integer", "format": "int32", "default": 0 } }, { "name": "pageSize", "in": "query", "schema": { "type": "integer", "format": "int32", "default": 100 } }, { "name": "filter", "in": "query", "schema": { "type": "string", "default": "" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PagedLogEntriesResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PagedLogEntriesResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PagedLogEntriesResponseModel" } } } } } } }, "/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-items": { "delete": { "tags": [ "Media Items" ], "summary": "Delete media items from the database", "operationId": "DeleteMediaItems", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/DeleteMediaItemsRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/DeleteMediaItemsRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/DeleteMediaItemsRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/DeleteMediaItemsRequest" } } }, "required": true }, "responses": { "204": { "description": "No Content" }, "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/media-items/{id}/info": { "get": { "tags": [ "Media Items" ], "summary": "Get technical media info for a media item", "operationId": "GetMediaItemInfo", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/MediaItemInfoResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/MediaItemInfoResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MediaItemInfoResponseModel" } } } }, "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/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/movies/{id}": { "get": { "tags": [ "Movies" ], "summary": "Get a movie by id", "operationId": "GetMovieById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/MovieDetailResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/MovieDetailResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MovieDetailResponseModel" } } } }, "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/multi-collections": { "get": { "tags": [ "Multi Collections" ], "summary": "Get all multi collections (paged)", "operationId": "GetMultiCollections", "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/PagedMultiCollectionsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PagedMultiCollectionsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PagedMultiCollectionsResponseModel" } } } } } }, "post": { "tags": [ "Multi Collections" ], "summary": "Create a multi collection", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateMultiCollectionRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateMultiCollectionRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateMultiCollectionRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateMultiCollectionRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/MultiCollectionResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/MultiCollectionResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MultiCollectionResponseModel" } } } }, "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/multi-collections/{id}": { "get": { "tags": [ "Multi Collections" ], "summary": "Get a multi collection by id", "operationId": "GetMultiCollectionById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/MultiCollectionResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/MultiCollectionResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MultiCollectionResponseModel" } } } }, "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": [ "Multi Collections" ], "summary": "Update a multi collection", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateMultiCollectionRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateMultiCollectionRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateMultiCollectionRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateMultiCollectionRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/MultiCollectionResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/MultiCollectionResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/MultiCollectionResponseModel" } } } }, "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": [ "Multi Collections" ], "summary": "Delete a multi 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/playlists/groups": { "get": { "tags": [ "Playlists" ], "summary": "Get all playlist groups", "operationId": "GetPlaylistGroups", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistGroupResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistGroupResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistGroupResponseModel" } } } } } } }, "post": { "tags": [ "Playlists" ], "summary": "Create a playlist group", "operationId": "CreatePlaylistGroup", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreatePlaylistGroupRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreatePlaylistGroupRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreatePlaylistGroupRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreatePlaylistGroupRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PlaylistGroupResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PlaylistGroupResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PlaylistGroupResponseModel" } } } }, "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/playlists/groups/{id}": { "put": { "tags": [ "Playlists" ], "summary": "Rename a playlist group", "operationId": "UpdatePlaylistGroup", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdatePlaylistGroupRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePlaylistGroupRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdatePlaylistGroupRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdatePlaylistGroupRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PlaylistGroupResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PlaylistGroupResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PlaylistGroupResponseModel" } } } }, "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": [ "Playlists" ], "summary": "Delete a playlist group", "operationId": "DeletePlaylistGroup", "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/playlists": { "get": { "tags": [ "Playlists" ], "summary": "Get playlists in a playlist group", "description": "Returns the playlists in the given playlist group.", "operationId": "GetPlaylists", "parameters": [ { "name": "playlistGroupId", "in": "query", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistResponseModel" } } } } } } }, "post": { "tags": [ "Playlists" ], "summary": "Create a playlist", "operationId": "CreatePlaylistInGroup", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreatePlaylistRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreatePlaylistRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreatePlaylistRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreatePlaylistRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PlaylistResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PlaylistResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PlaylistResponseModel" } } } }, "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/playlists/{id}": { "get": { "tags": [ "Playlists" ], "summary": "Get a playlist by id", "operationId": "GetPlaylistById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PlaylistResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PlaylistResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PlaylistResponseModel" } } } }, "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": [ "Playlists" ], "summary": "Update a playlist (rename and replace its items)", "operationId": "UpdatePlaylist", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/ReplacePlaylistRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ReplacePlaylistRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ReplacePlaylistRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ReplacePlaylistRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistItemResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistItemResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistItemResponseModel" } } } } }, "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": [ "Playlists" ], "summary": "Delete a playlist", "operationId": "DeletePlaylist", "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/playlists/{id}/items": { "get": { "tags": [ "Playlists" ], "summary": "Get the items in a playlist", "operationId": "GetPlaylistItems", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistItemResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistItemResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistItemResponseModel" } } } } }, "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": [ "Playlists" ], "summary": "Add items to a playlist", "operationId": "AddItemsToPlaylist", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/AddItemsToPlaylistRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/AddItemsToPlaylistRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AddItemsToPlaylistRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AddItemsToPlaylistRequest" } } }, "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/playlists/preview": { "post": { "tags": [ "Playlists" ], "summary": "Preview the playout of a draft playlist", "description": "Builds a preview playout from the posted draft playlist items (no persistence).", "operationId": "PreviewPlaylist", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/ReplacePlaylistRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ReplacePlaylistRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ReplacePlaylistRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ReplacePlaylistRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistPreviewItemResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistPreviewItemResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlaylistPreviewItemResponseModel" } } } } }, "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": { "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 playout", "description": "Creates a playout of any kind (Classic, Block, Sequential, Scripted, or ExternalJson) for a channel. Classic requires ProgramScheduleId; Sequential/Scripted/ExternalJson require ScheduleFile; Block requires neither. A channel may only have one 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" } } } } } }, "put": { "tags": [ "Playouts" ], "summary": "Update playout scheduling details", "description": "DailyRebuildTime is always applied; omit it (null) to clear the daily reset. ScheduleFile is only valid for Sequential, Scripted, and ExternalJson playouts; omit it (null) to leave it unchanged.", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdatePlayoutDetailsRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePlayoutDetailsRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdatePlayoutDetailsRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdatePlayoutDetailsRequest" } } }, "required": true }, "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" } } } }, "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": [ "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/{id}/deco": { "put": { "tags": [ "Playouts" ], "summary": "Set (or clear) a playout's default deco", "description": "Assigns the default deco for a block playout. Send a null decoId to clear it.", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateDefaultDecoRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateDefaultDecoRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateDefaultDecoRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateDefaultDecoRequest" } } }, "required": true }, "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" } } } }, "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}/alternate-schedules": { "get": { "tags": [ "Playouts" ], "summary": "Get a classic playout's alternate schedules", "description": "Lists a Classic playout's alternate schedules in priority order (first = highest priority). The last entry is the catch-all default, and its schedule is the playout's default schedule; if no explicit catch-all exists the query synthesizes one from the playout's default schedule. Only valid for Classic playouts; other kinds return 422.", "operationId": "GetPlayoutAlternateSchedules", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutAlternateScheduleResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutAlternateScheduleResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutAlternateScheduleResponseModel" } } } } }, "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": [ "Playouts" ], "summary": "Replace a classic playout's alternate schedules", "description": "Replaces a Classic playout's alternate schedules. Items are ordered by priority: the first item is the highest priority and the last item is the catch-all default whose schedule becomes the playout's default schedule. Index is assigned from array order (the request body has no Index field). The list must contain at least one item, and every ProgramScheduleId must exist. Only valid for Classic playouts.", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/ReplacePlayoutAlternateSchedulesRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ReplacePlayoutAlternateSchedulesRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ReplacePlayoutAlternateSchedulesRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ReplacePlayoutAlternateSchedulesRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutAlternateScheduleResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutAlternateScheduleResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutAlternateScheduleResponseModel" } } } } }, "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}/templates": { "get": { "tags": [ "Playouts" ], "summary": "Get a block playout's templates", "description": "Lists a Block playout's templates in priority order (first = highest priority). Each template optionally carries a deco template. Only valid for Block playouts; other kinds return 422.", "operationId": "GetPlayoutTemplates", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutTemplateResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutTemplateResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutTemplateResponseModel" } } } } }, "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": [ "Playouts" ], "summary": "Replace a block playout's templates", "description": "Replaces a Block playout's templates. Items are ordered by priority (first = highest priority); Index is assigned from array order (the request body has no Index field). Every TemplateId must exist, and any supplied DecoTemplateId must exist. An empty list clears all templates. Only valid for Block playouts.", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/ReplacePlayoutTemplatesRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ReplacePlayoutTemplatesRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ReplacePlayoutTemplatesRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ReplacePlayoutTemplatesRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutTemplateResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutTemplateResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutTemplateResponseModel" } } } } }, "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}/blocks": { "get": { "tags": [ "Playouts" ], "summary": "Get the blocks scheduled by a block playout", "description": "Lists the distinct blocks reachable through a Block playout's templates, ordered by group then name. A playout with no templates (including non-Block playouts) returns an empty list.", "operationId": "GetPlayoutBlocks", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/BlockResponseModel" } } } } }, "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/{id}/blocks/{blockId}/history": { "get": { "tags": [ "Playouts" ], "summary": "Get a block's playout history", "description": "Returns the paged scheduling history for a single block within a block playout, oldest first. Each row's Key and Details carry raw JSON; decode a row via GET /api/playouts/history/{id}.", "operationId": "GetPlayoutBlockHistory", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "name": "blockId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } }, { "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/PagedPlayoutHistoryResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PagedPlayoutHistoryResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PagedPlayoutHistoryResponseModel" } } } }, "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/history/{id}": { "get": { "tags": [ "Playouts" ], "summary": "Decode a playout history row", "description": "Decodes a single playout history row (by its id) into its playback order, collection, and media-item details. Returns 422 if the row's stored Key/Details JSON cannot be decoded.", "operationId": "GetPlayoutHistoryDetails", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PlayoutHistoryDetailsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PlayoutHistoryDetailsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PlayoutHistoryDetailsResponseModel" } } } }, "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/reset-all": { "post": { "tags": [ "Playouts" ], "summary": "Reset all playouts", "operationId": "ResetAllPlayouts", "responses": { "202": { "description": "Accepted" } } } }, "/api/playouts/{id}/erase-items": { "post": { "tags": [ "Playouts" ], "summary": "Erase a playout's items", "description": "Deletes the built items (plus gaps and build status) for a Block, Sequential, or Scripted playout, preserving history that precedes the currently-airing item. Only valid for those kinds; other kinds return 422.", "operationId": "ErasePlayoutItems", "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}/erase-items-and-history": { "post": { "tags": [ "Playouts" ], "summary": "Erase a playout's items and history", "description": "Deletes all built items, history, anchors, and build status for a Classic, Block, Sequential, or Scripted playout, and reseeds it. Only valid for those kinds; other kinds return 422.", "operationId": "ErasePlayoutItemsAndHistory", "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/items/{id}/scheduling-context": { "get": { "tags": [ "Playouts" ], "summary": "Decode a playout item's scheduling context", "description": "Decodes the stored scheduling context for a single playout item (by its row id) into readable, enriched JSON. Returns 404 when the item is missing or has no scheduling context.", "operationId": "GetPlayoutItemSchedulingContext", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PlayoutItemSchedulingContextResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PlayoutItemSchedulingContextResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PlayoutItemSchedulingContextResponseModel" } } } }, "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/rerun-collections": { "get": { "tags": [ "Rerun Collections" ], "summary": "Get all rerun collections (paged)", "operationId": "GetRerunCollections", "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/PagedRerunCollectionsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PagedRerunCollectionsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PagedRerunCollectionsResponseModel" } } } } } }, "post": { "tags": [ "Rerun Collections" ], "summary": "Create a rerun collection", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateRerunCollectionRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateRerunCollectionRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateRerunCollectionRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateRerunCollectionRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/RerunCollectionResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/RerunCollectionResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/RerunCollectionResponseModel" } } } }, "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/rerun-collections/{id}": { "get": { "tags": [ "Rerun Collections" ], "summary": "Get a rerun collection by id", "operationId": "GetRerunCollectionById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/RerunCollectionResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/RerunCollectionResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/RerunCollectionResponseModel" } } } }, "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": [ "Rerun Collections" ], "summary": "Update a rerun collection", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateRerunCollectionRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRerunCollectionRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateRerunCollectionRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateRerunCollectionRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/RerunCollectionResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/RerunCollectionResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/RerunCollectionResponseModel" } } } }, "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": [ "Rerun Collections" ], "summary": "Delete a rerun 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/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/settings/resolutions": { "get": { "tags": [ "Settings" ], "summary": "Get all resolutions, including custom resolutions", "operationId": "GetResolutions", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResolutionResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResolutionResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ResolutionResponseModel" } } } } } } }, "post": { "tags": [ "Settings" ], "summary": "Create a custom resolution", "operationId": "CreateResolution", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateResolutionRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateResolutionRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateResolutionRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateResolutionRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ResolutionResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ResolutionResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ResolutionResponseModel" } } } }, "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" } } } }, "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/settings/resolutions/{id}": { "delete": { "tags": [ "Settings" ], "summary": "Delete a custom resolution", "operationId": "DeleteResolution", "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/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/search": { "get": { "tags": [ "Search" ], "summary": "Search library items across all media kinds", "operationId": "Search", "parameters": [ { "name": "query", "in": "query", "schema": { "type": "string", "default": "" } }, { "name": "pageSize", "in": "query", "schema": { "type": "integer", "format": "int32", "default": 50 } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/SearchResultsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/SearchResultsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SearchResultsResponseModel" } } } }, "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/search/all-items": { "get": { "tags": [ "Search" ], "summary": "Search library items across all media kinds and return raw id lists", "description": "Returns every matching item's id, grouped by media kind, with no paging. Used by the SPA's \"add all to collection/playlist\" flow to materialize ids before calling the add endpoints.", "operationId": "SearchAllItems", "parameters": [ { "name": "query", "in": "query", "schema": { "type": "string", "default": "" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/SearchResultAllItemsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/SearchResultAllItemsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SearchResultAllItemsResponseModel" } } } }, "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/search/collections": { "get": { "tags": [ "Search" ], "summary": "Search collections by name", "description": "Returns matching collections as {id, name} options for scheduling editors.", "operationId": "SearchCollections", "parameters": [ { "name": "query", "in": "query", "schema": { "type": "string", "default": "" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } } } } } } }, "/api/search/television-shows": { "get": { "tags": [ "Search" ], "summary": "Search television shows by name", "description": "Returns matching television shows as {id, name} options for scheduling editors.", "operationId": "SearchTelevisionShows", "parameters": [ { "name": "query", "in": "query", "schema": { "type": "string", "default": "" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } } } } } } }, "/api/search/television-seasons": { "get": { "tags": [ "Search" ], "summary": "Search television seasons by name", "description": "Returns matching television seasons as {id, name} options for scheduling editors.", "operationId": "SearchTelevisionSeasons", "parameters": [ { "name": "query", "in": "query", "schema": { "type": "string", "default": "" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } } } } } } }, "/api/search/smart-collections": { "get": { "tags": [ "Search" ], "summary": "Search smart collections by name", "description": "Returns matching smart collections as {id, name} options for scheduling editors.", "operationId": "SearchSmartCollections", "parameters": [ { "name": "query", "in": "query", "schema": { "type": "string", "default": "" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } } } } } } }, "/api/search/artists": { "get": { "tags": [ "Search" ], "summary": "Search artists by name", "description": "Returns matching artists as {id, name} options for scheduling editors.", "operationId": "SearchArtists", "parameters": [ { "name": "query", "in": "query", "schema": { "type": "string", "default": "" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } } } } } } }, "/api/search/multi-collections": { "get": { "tags": [ "Search" ], "summary": "Search multi collections by name", "description": "Returns matching multi collections as {id, name} options for scheduling editors.", "operationId": "SearchMultiCollections", "parameters": [ { "name": "query", "in": "query", "schema": { "type": "string", "default": "" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/SchedulingPickerOptionResponseModel" } } } } } } } }, "/api/seasons/{id}": { "get": { "tags": [ "Television" ], "summary": "Get a television season by id", "operationId": "GetSeasonById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/SeasonDetailResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/SeasonDetailResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/SeasonDetailResponseModel" } } } }, "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/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/settings/ffmpeg": { "get": { "tags": [ "Settings" ], "summary": "Get global FFmpeg settings", "operationId": "GetFfmpegSettings", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/FFmpegSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/FFmpegSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/FFmpegSettingsResponseModel" } } } } } }, "put": { "tags": [ "Settings" ], "summary": "Update global FFmpeg settings", "operationId": "UpdateFfmpegSettings", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateFFmpegSettingsRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateFFmpegSettingsRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateFFmpegSettingsRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateFFmpegSettingsRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/FFmpegSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/FFmpegSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/FFmpegSettingsResponseModel" } } } }, "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" } } } }, "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/settings/playout": { "get": { "tags": [ "Settings" ], "summary": "Get global playout settings", "operationId": "GetPlayoutSettings", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PlayoutSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PlayoutSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PlayoutSettingsResponseModel" } } } } } }, "put": { "tags": [ "Settings" ], "summary": "Update global playout settings", "operationId": "UpdatePlayoutSettings", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdatePlayoutSettingsRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePlayoutSettingsRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdatePlayoutSettingsRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdatePlayoutSettingsRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/PlayoutSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PlayoutSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PlayoutSettingsResponseModel" } } } }, "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" } } } }, "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/settings/xmltv": { "get": { "tags": [ "Settings" ], "summary": "Get global XMLTV settings", "operationId": "GetXmltvSettings", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/XmltvSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/XmltvSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/XmltvSettingsResponseModel" } } } } } }, "put": { "tags": [ "Settings" ], "summary": "Update global XMLTV settings", "operationId": "UpdateXmltvSettings", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateXmltvSettingsRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateXmltvSettingsRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateXmltvSettingsRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateXmltvSettingsRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/XmltvSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/XmltvSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/XmltvSettingsResponseModel" } } } }, "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" } } } }, "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/settings/scanner": { "get": { "tags": [ "Settings" ], "summary": "Get library scan cadence", "operationId": "GetScannerSettings", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ScannerSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ScannerSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ScannerSettingsResponseModel" } } } } } }, "put": { "tags": [ "Settings" ], "summary": "Update library scan cadence", "operationId": "UpdateScannerSettings", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateScannerSettingsRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateScannerSettingsRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateScannerSettingsRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateScannerSettingsRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ScannerSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ScannerSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ScannerSettingsResponseModel" } } } }, "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" } } } }, "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/settings/logging": { "get": { "tags": [ "Settings" ], "summary": "Get per-area minimum log levels", "operationId": "GetLoggingSettings", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/LoggingSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/LoggingSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LoggingSettingsResponseModel" } } } } } }, "put": { "tags": [ "Settings" ], "summary": "Update per-area minimum log levels", "operationId": "UpdateLoggingSettings", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateLoggingSettingsRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateLoggingSettingsRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateLoggingSettingsRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateLoggingSettingsRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/LoggingSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/LoggingSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/LoggingSettingsResponseModel" } } } }, "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" } } } }, "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/settings/ui": { "get": { "tags": [ "Settings" ], "summary": "Get UI preferences", "operationId": "GetUiSettings", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/UiSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UiSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UiSettingsResponseModel" } } } } } }, "put": { "tags": [ "Settings" ], "summary": "Update UI preferences", "operationId": "UpdateUiSettings", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateUiSettingsRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUiSettingsRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateUiSettingsRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateUiSettingsRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/UiSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UiSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UiSettingsResponseModel" } } } }, "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" } } } }, "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/settings/hdhr": { "get": { "tags": [ "Settings" ], "summary": "Get HDHomeRun emulation settings", "operationId": "GetHdhrSettings", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/HdhrSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/HdhrSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/HdhrSettingsResponseModel" } } } } } }, "put": { "tags": [ "Settings" ], "summary": "Update HDHomeRun emulation settings", "operationId": "UpdateHdhrSettings", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateHdhrSettingsRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateHdhrSettingsRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateHdhrSettingsRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateHdhrSettingsRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/HdhrSettingsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/HdhrSettingsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/HdhrSettingsResponseModel" } } } }, "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" } } } }, "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/shows/{id}": { "get": { "tags": [ "Television" ], "summary": "Get a television show by id", "operationId": "GetShowById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ShowDetailResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ShowDetailResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ShowDetailResponseModel" } } } }, "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/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/templates/groups": { "get": { "tags": [ "Templates" ], "summary": "Get all template groups", "operationId": "GetTemplateGroups", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TemplateGroupResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TemplateGroupResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TemplateGroupResponseModel" } } } } } } }, "post": { "tags": [ "Templates" ], "summary": "Create a template group", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateTemplateGroupRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateTemplateGroupRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateTemplateGroupRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateTemplateGroupRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TemplateGroupResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TemplateGroupResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TemplateGroupResponseModel" } } } }, "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/templates/groups/{id}": { "delete": { "tags": [ "Templates" ], "summary": "Delete a template group", "description": "Deletes the template group. The database cascade removes every template (and its items) in the group.", "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" } } } } } } }, "/api/templates": { "get": { "tags": [ "Templates" ], "summary": "Get all templates", "description": "Returns every template. Pass templateGroupId to filter to the templates in a single template group.", "parameters": [ { "name": "templateGroupId", "in": "query", "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TemplateResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TemplateResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TemplateResponseModel" } } } } } } }, "post": { "tags": [ "Templates" ], "summary": "Create a template", "description": "Creates an empty template in the given template group.", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateTemplateRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateTemplateRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateTemplateRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateTemplateRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TemplateResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TemplateResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TemplateResponseModel" } } } }, "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/templates/{id}": { "get": { "tags": [ "Templates" ], "summary": "Get a template by id", "operationId": "GetTemplateById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TemplateResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TemplateResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TemplateResponseModel" } } } }, "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": [ "Templates" ], "summary": "Delete a template", "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" } } } } } }, "put": { "tags": [ "Templates" ], "summary": "Replace a template and its items", "description": "Replaces the template's name and its full item list. Each item assigns a block to a start time of day; items must not overlap (an item's end time is its start time plus the assigned block's duration).", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/ReplaceTemplateRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ReplaceTemplateRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ReplaceTemplateRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ReplaceTemplateRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TemplateWithItemsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TemplateWithItemsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TemplateWithItemsResponseModel" } } } }, "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/templates/{id}/items": { "get": { "tags": [ "Templates" ], "summary": "Get template items", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TemplateItemResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TemplateItemResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TemplateItemResponseModel" } } } } }, "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/templates/{id}/copy": { "post": { "tags": [ "Templates" ], "summary": "Copy a template", "description": "Copies the template and its items into another (or the same) template group under a new name.", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CopyTemplateRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CopyTemplateRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CopyTemplateRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CopyTemplateRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TemplateResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TemplateResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TemplateResponseModel" } } } }, "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/trakt/lists": { "get": { "tags": [ "Trakt" ], "summary": "Get paged Trakt lists", "operationId": "GetTraktLists", "parameters": [ { "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/PagedTraktListsResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/PagedTraktListsResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/PagedTraktListsResponseModel" } } } } } }, "post": { "tags": [ "Trakt" ], "summary": "Add a Trakt list by URL", "description": "Dispatches to the same background worker channel used by the classic UI's \"Add Trakt List\" dialog; the list is fetched, saved, and matched asynchronously. Poll GET /api/trakt/status while busy.", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/AddTraktListRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/AddTraktListRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/AddTraktListRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/AddTraktListRequest" } } }, "required": true }, "responses": { "202": { "description": "Accepted" }, "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" } } } }, "409": { "description": "Conflict", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/api/trakt/lists/{id}": { "get": { "tags": [ "Trakt" ], "summary": "Get a Trakt list by id", "operationId": "GetTraktListById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TraktListResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TraktListResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TraktListResponseModel" } } } }, "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": [ "Trakt" ], "summary": "Delete a Trakt list", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "202": { "description": "Accepted" }, "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" } } } }, "409": { "description": "Conflict", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } }, "put": { "tags": [ "Trakt" ], "summary": "Update a Trakt list's settings", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateTraktListRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTraktListRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateTraktListRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateTraktListRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TraktListResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TraktListResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TraktListResponseModel" } } } }, "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/trakt/lists/{id}/match": { "post": { "tags": [ "Trakt" ], "summary": "Match a Trakt list's items", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "202": { "description": "Accepted" }, "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" } } } }, "409": { "description": "Conflict", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/api/trakt/status": { "get": { "tags": [ "Trakt" ], "summary": "Get Trakt background operation status", "description": "Wraps IEntityLocker.IsTraktLocked() — the HTTP-observable substitute for the Blazor page's live lock event. The SPA polls this while add/match/delete are in flight.", "operationId": "GetTraktStatus", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TraktStatusResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TraktStatusResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TraktStatusResponseModel" } } } } } } }, "/api/troubleshoot/info": { "get": { "tags": [ "Troubleshooting" ], "summary": "Get troubleshooting diagnostic info", "operationId": "GetTroubleshootingInfo", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TroubleshootingInfoResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TroubleshootingInfoResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TroubleshootingInfoResponseModel" } } } } } } }, "/api/troubleshoot/validate-schedule": { "post": { "tags": [ "Troubleshooting" ], "summary": "Validate a sequential schedule YAML document", "description": "Validates a sequential-schedule YAML string against the full (or import) schema. Returns whether it is valid, any validation messages, and the JSON conversion of the YAML. Parse/validator errors are reported as messages (IsValid=false), never as a 500.", "operationId": "ValidateSequentialSchedule", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/ValidateSequentialScheduleRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ValidateSequentialScheduleRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ValidateSequentialScheduleRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/ValidateSequentialScheduleRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ValidateSequentialScheduleResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ValidateSequentialScheduleResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ValidateSequentialScheduleResponseModel" } } } }, "400": { "description": "Bad Request", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } }, "text/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } } } }, "/api/troubleshoot/playback.m3u8": { "head": { "tags": [ "Troubleshooting" ], "summary": "Start a troubleshooting playback session", "parameters": [ { "name": "mediaItem", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "channel", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "ffmpegProfile", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "streamingMode", "in": "query", "schema": { "$ref": "#/components/schemas/StreamingMode" } }, { "name": "watermark", "in": "query", "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "graphicsElement", "in": "query", "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "streamSelector", "in": "query", "schema": { "type": "string" } }, { "name": "subtitleId", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "seekSeconds", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "start", "in": "query", "schema": { "type": "string", "format": "date-time" } } ], "responses": { "200": { "description": "OK" } } }, "get": { "tags": [ "Troubleshooting" ], "summary": "Start a troubleshooting playback session", "parameters": [ { "name": "mediaItem", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "channel", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "ffmpegProfile", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "streamingMode", "in": "query", "schema": { "$ref": "#/components/schemas/StreamingMode" } }, { "name": "watermark", "in": "query", "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "graphicsElement", "in": "query", "schema": { "type": "array", "items": { "type": "integer", "format": "int32" } } }, { "name": "streamSelector", "in": "query", "schema": { "type": "string" } }, { "name": "subtitleId", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "seekSeconds", "in": "query", "schema": { "type": "integer", "format": "int32" } }, { "name": "start", "in": "query", "schema": { "type": "string", "format": "date-time" } } ], "responses": { "200": { "description": "OK" } } } }, "/api/troubleshoot/playback/archive": { "head": { "tags": [ "Troubleshooting" ], "summary": "Download the last troubleshooting playback session archive", "responses": { "200": { "description": "OK" } } }, "get": { "tags": [ "Troubleshooting" ], "summary": "Download the last troubleshooting playback session archive", "responses": { "200": { "description": "OK" } } } }, "/api/troubleshoot/playback/sample/{mediaItemId}": { "head": { "tags": [ "Troubleshooting" ], "summary": "Download a media sample archive for troubleshooting", "parameters": [ { "name": "mediaItemId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK" } } }, "get": { "tags": [ "Troubleshooting" ], "summary": "Download a media sample archive for troubleshooting", "parameters": [ { "name": "mediaItemId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK" } } } }, "/api/troubleshoot/playback/stream-selectors": { "get": { "tags": [ "Troubleshooting" ], "summary": "List available channel stream selectors", "operationId": "GetTroubleshootingStreamSelectors", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "type": "string" } } }, "application/json": { "schema": { "type": "array", "items": { "type": "string" } } }, "text/json": { "schema": { "type": "array", "items": { "type": "string" } } } } } } } }, "/api/troubleshoot/playback/subtitles/{mediaItemId}": { "get": { "tags": [ "Troubleshooting" ], "summary": "List selectable subtitle streams for a media item", "description": "Returns the subtitle streams that can be burned in for a troubleshooting playback. Each item's id is the value to pass back as the playback.m3u8 endpoint's subtitleId query parameter.", "operationId": "GetTroubleshootingSubtitles", "parameters": [ { "name": "mediaItemId", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TroubleshootingSubtitleResponseModel" } } }, "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TroubleshootingSubtitleResponseModel" } } }, "text/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/TroubleshootingSubtitleResponseModel" } } } } }, "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/troubleshoot/playback/status": { "get": { "tags": [ "Troubleshooting" ], "summary": "Get the status of the current or last troubleshooting playback session", "description": "Reports whether a troubleshooting playback is idle, running, completed, or failed, along with the last session's ffmpeg exit code, playback speed, and a tail (last 500 lines) of its log output.", "operationId": "GetTroubleshootingPlaybackStatus", "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/TroubleshootingPlaybackStatusResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/TroubleshootingPlaybackStatusResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/TroubleshootingPlaybackStatusResponseModel" } } } } } } }, "/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" } } } } } } }, "post": { "tags": [ "Watermarks" ], "summary": "Create a watermark", "operationId": "CreateWatermark", "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/CreateWatermarkRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/CreateWatermarkRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/CreateWatermarkRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/CreateWatermarkRequest" } } }, "required": true }, "responses": { "201": { "description": "Created", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/WatermarkFullResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/WatermarkFullResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/WatermarkFullResponseModel" } } } }, "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/watermarks/{id}": { "get": { "tags": [ "Watermarks" ], "summary": "Get a watermark by id", "operationId": "GetWatermarkById", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/WatermarkFullResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/WatermarkFullResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/WatermarkFullResponseModel" } } } }, "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": [ "Watermarks" ], "summary": "Update a watermark", "operationId": "UpdateWatermark", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "integer", "format": "int32" } } ], "requestBody": { "content": { "application/json-patch+json": { "schema": { "$ref": "#/components/schemas/UpdateWatermarkRequest" } }, "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWatermarkRequest" } }, "text/json": { "schema": { "$ref": "#/components/schemas/UpdateWatermarkRequest" } }, "application/*+json": { "schema": { "$ref": "#/components/schemas/UpdateWatermarkRequest" } } }, "required": true }, "responses": { "200": { "description": "OK", "content": { "text/plain": { "schema": { "$ref": "#/components/schemas/WatermarkFullResponseModel" } }, "application/json": { "schema": { "$ref": "#/components/schemas/WatermarkFullResponseModel" } }, "text/json": { "schema": { "$ref": "#/components/schemas/WatermarkFullResponseModel" } } } }, "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": [ "Watermarks" ], "summary": "Delete a watermark", "operationId": "DeleteWatermark", "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" } } } } } } } }, "components": { "schemas": { "ActorResponseModel": { "required": [ "id", "name", "role", "thumb" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "role": { "type": [ "null", "string" ] }, "thumb": { "type": "string" } } }, "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" } } } }, "AddItemsToPlaylistRequest": { "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" } } } }, "AddTraktListRequest": { "required": [ "url" ], "type": "object", "properties": { "url": { "type": [ "null", "string" ] } } }, "ArtistDetailResponseModel": { "required": [ "id", "name", "disambiguation", "biography", "thumbnail", "fanArt", "genres", "styles", "moods", "languages" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "disambiguation": { "type": [ "null", "string" ] }, "biography": { "type": [ "null", "string" ] }, "thumbnail": { "type": "string" }, "fanArt": { "type": "string" }, "genres": { "type": "array", "items": { "type": "string" } }, "styles": { "type": "array", "items": { "type": "string" } }, "moods": { "type": "array", "items": { "type": "string" } }, "languages": { "type": "array", "items": { "type": "string" } } } }, "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" } } }, "BlockGroupResponseModel": { "required": [ "id", "name" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" } } }, "BlockItemRequest": { "required": [ "collectionType", "collectionId", "multiCollectionId", "smartCollectionId", "mediaItemId", "searchTitle", "searchQuery", "playbackOrder", "includeInProgramGuide", "disableWatermarks", "watermarkIds", "graphicsElementIds" ], "type": "object", "properties": { "collectionType": { "$ref": "#/components/schemas/CollectionType" }, "collectionId": { "type": [ "null", "integer" ], "format": "int32" }, "multiCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "smartCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "mediaItemId": { "type": [ "null", "integer" ], "format": "int32" }, "searchTitle": { "type": [ "null", "string" ] }, "searchQuery": { "type": [ "null", "string" ] }, "playbackOrder": { "$ref": "#/components/schemas/PlaybackOrder" }, "includeInProgramGuide": { "type": "boolean" }, "disableWatermarks": { "type": "boolean" }, "watermarkIds": { "type": [ "null", "array" ], "items": { "type": "integer", "format": "int32" } }, "graphicsElementIds": { "type": [ "null", "array" ], "items": { "type": "integer", "format": "int32" } } } }, "BlockItemResponseModel": { "required": [ "id", "index", "collectionType", "collectionId", "collectionName", "multiCollectionId", "multiCollectionName", "smartCollectionId", "smartCollectionName", "mediaItemId", "mediaItemName", "searchTitle", "searchQuery", "playbackOrder", "includeInProgramGuide", "disableWatermarks", "watermarkIds", "graphicsElementIds" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "index": { "type": "integer", "format": "int32" }, "collectionType": { "$ref": "#/components/schemas/CollectionType" }, "collectionId": { "type": [ "null", "integer" ], "format": "int32" }, "collectionName": { "type": [ "null", "string" ] }, "multiCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "multiCollectionName": { "type": [ "null", "string" ] }, "smartCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "smartCollectionName": { "type": [ "null", "string" ] }, "mediaItemId": { "type": [ "null", "integer" ], "format": "int32" }, "mediaItemName": { "type": [ "null", "string" ] }, "searchTitle": { "type": "string" }, "searchQuery": { "type": "string" }, "playbackOrder": { "$ref": "#/components/schemas/PlaybackOrder" }, "includeInProgramGuide": { "type": "boolean" }, "disableWatermarks": { "type": "boolean" }, "watermarkIds": { "type": "array", "items": { "type": "integer", "format": "int32" } }, "graphicsElementIds": { "type": "array", "items": { "type": "integer", "format": "int32" } } } }, "BlockPreviewItemResponseModel": { "required": [ "title", "start", "finish", "duration" ], "type": "object", "properties": { "title": { "type": "string" }, "start": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": "string" }, "finish": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": "string" }, "duration": { "type": "string" } } }, "BlockResponseModel": { "required": [ "id", "groupId", "groupName", "name", "minutes", "stopScheduling" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "groupId": { "type": "integer", "format": "int32" }, "groupName": { "type": "string" }, "name": { "type": "string" }, "minutes": { "type": "integer", "format": "int32" }, "stopScheduling": { "$ref": "#/components/schemas/BlockStopScheduling" } } }, "BlockStopScheduling": { "enum": [ "AfterDurationEnd", "BeforeDurationEnd" ], "type": "string" }, "BlockWithItemsResponseModel": { "required": [ "id", "groupId", "groupName", "name", "minutes", "stopScheduling", "items" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "groupId": { "type": "integer", "format": "int32" }, "groupName": { "type": "string" }, "name": { "type": "string" }, "minutes": { "type": "integer", "format": "int32" }, "stopScheduling": { "$ref": "#/components/schemas/BlockStopScheduling" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/BlockItemResponseModel" } } } }, "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" }, "ChannelTemplateResponseModel": { "required": [ "id", "name", "description", "isSystem", "isDefault", "ffmpegProfileId", "watermarkId", "fallbackFillerId", "preRollFillerId", "midRollFillerId", "postRollFillerId", "streamSelectorMode", "streamSelector", "preferredAudioLanguageCode", "preferredAudioTitle", "playoutSource", "playoutMode", "streamingMode", "preferredSubtitleLanguageCode", "subtitleMode", "musicVideoCreditsMode", "musicVideoCreditsTemplate", "songVideoMode", "transcodeMode", "idleBehavior", "shuffleScheduleItems", "randomStartPoint", "fixedStartTimeBehavior" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "description": { "type": "string" }, "isSystem": { "type": "boolean" }, "isDefault": { "type": "boolean" }, "ffmpegProfileId": { "type": "integer", "format": "int32" }, "watermarkId": { "type": [ "null", "integer" ], "format": "int32" }, "fallbackFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "preRollFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "midRollFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "postRollFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "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" }, "streamingMode": { "$ref": "#/components/schemas/StreamingMode" }, "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" }, "shuffleScheduleItems": { "type": "boolean" }, "randomStartPoint": { "type": "boolean" }, "fixedStartTimeBehavior": { "$ref": "#/components/schemas/FixedStartTimeBehavior" } } }, "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" ] } } }, "CopyBlockRequest": { "required": [ "blockGroupId", "name" ], "type": "object", "properties": { "blockGroupId": { "type": "integer", "format": "int32" }, "name": { "type": [ "null", "string" ] } } }, "CopyTemplateRequest": { "required": [ "templateGroupId", "name" ], "type": "object", "properties": { "templateGroupId": { "type": "integer", "format": "int32" }, "name": { "type": [ "null", "string" ] } } }, "CreateBlockGroupRequest": { "required": [ "name" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] } } }, "CreateBlockRequest": { "required": [ "blockGroupId", "name" ], "type": "object", "properties": { "blockGroupId": { "type": "integer", "format": "int32" }, "name": { "type": [ "null", "string" ] } } }, "CreateChannelFromLineupAdvancedOptionsRequest": { "type": "object", "properties": { "playbackOrder": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/PlaybackOrder" } ] }, "ffmpegProfileId": { "type": [ "null", "integer" ], "format": "int32" }, "watermarkId": { "type": [ "null", "integer" ], "format": "int32" }, "fallbackFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "preRollFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "midRollFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "postRollFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "streamSelectorMode": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ChannelStreamSelectorMode" } ] }, "streamSelector": { "type": [ "null", "string" ] }, "preferredAudioLanguageCode": { "type": [ "null", "string" ] }, "preferredAudioTitle": { "type": [ "null", "string" ] }, "playoutSource": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ChannelPlayoutSource" } ] }, "playoutMode": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ChannelPlayoutMode" } ] }, "streamingMode": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/StreamingMode" } ] }, "preferredSubtitleLanguageCode": { "type": [ "null", "string" ] }, "subtitleMode": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ChannelSubtitleMode" } ] }, "musicVideoCreditsMode": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ChannelMusicVideoCreditsMode" } ] }, "musicVideoCreditsTemplate": { "type": [ "null", "string" ] }, "songVideoMode": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ChannelSongVideoMode" } ] }, "transcodeMode": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ChannelTranscodeMode" } ] }, "idleBehavior": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ChannelIdleBehavior" } ] }, "shuffleScheduleItems": { "type": [ "null", "boolean" ] }, "randomStartPoint": { "type": [ "null", "boolean" ] }, "fixedStartTimeBehavior": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/FixedStartTimeBehavior" } ] } } }, "CreateChannelFromLineupItemRequest": { "required": [ "mediaType", "collectionType", "collectionId", "multiCollectionId", "smartCollectionId", "rerunCollectionId", "mediaItemId", "playlistId" ], "type": "object", "properties": { "mediaType": { "$ref": "#/components/schemas/LibraryBrowseMediaType" }, "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" } } }, "CreateChannelFromLineupRequest": { "required": [ "name", "number", "group", "categories", "logo", "isEnabled", "showInEpg", "templateId", "advanced", "lineup" ], "type": "object", "properties": { "name": { "type": "string" }, "number": { "type": "string" }, "group": { "type": "string" }, "categories": { "type": "string" }, "logo": { "$ref": "#/components/schemas/ArtworkContentTypeModel" }, "isEnabled": { "type": "boolean" }, "showInEpg": { "type": "boolean" }, "templateId": { "type": "integer", "format": "int32" }, "advanced": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/CreateChannelFromLineupAdvancedOptionsRequest" } ] }, "lineup": { "type": "array", "items": { "$ref": "#/components/schemas/CreateChannelFromLineupItemRequest" } } } }, "CreateChannelFromLineupResponseModel": { "required": [ "channelId", "playlistId", "programScheduleId", "playoutId" ], "type": "object", "properties": { "channelId": { "type": "integer", "format": "int32" }, "playlistId": { "type": [ "null", "integer" ], "format": "int32" }, "programScheduleId": { "type": "integer", "format": "int32" }, "playoutId": { "type": "integer", "format": "int32" } } }, "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" } } }, "CreateChannelTemplateRequest": { "required": [ "name", "description", "ffmpegProfileId", "watermarkId", "fallbackFillerId", "preRollFillerId", "midRollFillerId", "postRollFillerId", "streamSelectorMode", "streamSelector", "preferredAudioLanguageCode", "preferredAudioTitle", "playoutSource", "playoutMode", "streamingMode", "preferredSubtitleLanguageCode", "subtitleMode", "musicVideoCreditsMode", "musicVideoCreditsTemplate", "songVideoMode", "transcodeMode", "idleBehavior", "shuffleScheduleItems", "randomStartPoint", "fixedStartTimeBehavior" ], "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "ffmpegProfileId": { "type": "integer", "format": "int32" }, "watermarkId": { "type": [ "null", "integer" ], "format": "int32" }, "fallbackFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "preRollFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "midRollFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "postRollFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "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" }, "streamingMode": { "$ref": "#/components/schemas/StreamingMode" }, "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" }, "shuffleScheduleItems": { "type": "boolean" }, "randomStartPoint": { "type": "boolean" }, "fixedStartTimeBehavior": { "$ref": "#/components/schemas/FixedStartTimeBehavior" } } }, "CreateCollectionRequest": { "required": [ "name" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] } } }, "CreateDecoGroupRequest": { "required": [ "name" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] } } }, "CreateDecoRequest": { "required": [ "decoGroupId", "name" ], "type": "object", "properties": { "decoGroupId": { "type": "integer", "format": "int32" }, "name": { "type": [ "null", "string" ] } } }, "CreateDecoTemplateGroupRequest": { "required": [ "name" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] } } }, "CreateDecoTemplateRequest": { "required": [ "decoTemplateGroupId", "name" ], "type": "object", "properties": { "decoTemplateGroupId": { "type": "integer", "format": "int32" }, "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" } } }, "CreateFillerPresetRequest": { "required": [ "name", "fillerKind", "fillerMode", "duration", "count", "padToNearestMinute", "allowWatermarks", "collectionType", "collectionId", "mediaItemId", "multiCollectionId", "smartCollectionId", "playlistId", "expression", "useChaptersAsMediaItems" ], "type": "object", "properties": { "name": { "type": "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" }, "playlistId": { "type": [ "null", "integer" ], "format": "int32" }, "expression": { "type": [ "null", "string" ] }, "useChaptersAsMediaItems": { "type": "boolean" } } }, "CreateMultiCollectionRequest": { "required": [ "name", "items" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] }, "items": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/MultiCollectionItemRequest" } } } }, "CreatePlaylistGroupRequest": { "required": [ "name" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] } } }, "CreatePlaylistRequest": { "required": [ "playlistGroupId", "name" ], "type": "object", "properties": { "playlistGroupId": { "type": "integer", "format": "int32" }, "name": { "type": [ "null", "string" ] } } }, "CreatePlayoutRequest": { "required": [ "channelId", "scheduleKind", "programScheduleId", "scheduleFile" ], "type": "object", "properties": { "channelId": { "type": "integer", "format": "int32" }, "scheduleKind": { "$ref": "#/components/schemas/PlayoutScheduleKind" }, "programScheduleId": { "type": [ "null", "integer" ], "format": "int32" }, "scheduleFile": { "type": [ "null", "string" ] } } }, "CreateRerunCollectionRequest": { "required": [ "name", "collectionType", "selectedId", "firstRunPlaybackOrder", "rerunPlaybackOrder" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] }, "collectionType": { "$ref": "#/components/schemas/CollectionType" }, "selectedId": { "type": "integer", "format": "int32" }, "firstRunPlaybackOrder": { "$ref": "#/components/schemas/PlaybackOrder" }, "rerunPlaybackOrder": { "$ref": "#/components/schemas/PlaybackOrder" } } }, "CreateResolutionRequest": { "required": [ "width", "height" ], "type": "object", "properties": { "width": { "type": "integer", "format": "int32" }, "height": { "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" ] } } }, "CreateTemplateGroupRequest": { "required": [ "name" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] } } }, "CreateTemplateRequest": { "required": [ "templateGroupId", "name" ], "type": "object", "properties": { "templateGroupId": { "type": "integer", "format": "int32" }, "name": { "type": [ "null", "string" ] } } }, "CreateWatermarkRequest": { "required": [ "name", "mode", "imageSource", "image", "imageContentType", "location", "size", "width", "horizontalMargin", "verticalMargin", "frequencyMinutes", "durationSeconds", "opacity", "opacityExpression", "zIndex", "placeWithinSourceContent" ], "type": "object", "properties": { "name": { "type": "string" }, "mode": { "$ref": "#/components/schemas/ChannelWatermarkMode" }, "imageSource": { "$ref": "#/components/schemas/ChannelWatermarkImageSource" }, "image": { "type": [ "null", "string" ] }, "imageContentType": { "type": [ "null", "string" ] }, "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" }, "opacityExpression": { "type": [ "null", "string" ] }, "zIndex": { "type": "integer", "format": "int32" }, "placeWithinSourceContent": { "type": "boolean" } } }, "DayOfWeek": { "type": "integer" }, "DecoBreakContentRequest": { "required": [ "id", "collectionType", "collectionId", "mediaItemId", "multiCollectionId", "smartCollectionId", "playlistId", "placement" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "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" }, "playlistId": { "type": [ "null", "integer" ], "format": "int32" }, "placement": { "$ref": "#/components/schemas/DecoBreakPlacement" } } }, "DecoBreakContentResponseModel": { "required": [ "id", "collectionType", "collectionId", "mediaItemId", "multiCollectionId", "smartCollectionId", "playlistId", "playlistGroupId", "selectionName", "placement" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "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" }, "playlistId": { "type": [ "null", "integer" ], "format": "int32" }, "playlistGroupId": { "type": [ "null", "integer" ], "format": "int32" }, "selectionName": { "type": [ "null", "string" ] }, "placement": { "$ref": "#/components/schemas/DecoBreakPlacement" } } }, "DecoBreakPlacement": { "enum": [ "BlockStart", "BlockFinish", "BetweenBlockItems", "ChapterMarkers" ], "type": "string" }, "DecoGroupResponseModel": { "required": [ "id", "name", "decoCount" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "decoCount": { "type": "integer", "format": "int32" } } }, "DecoListItemResponseModel": { "required": [ "id", "decoGroupId", "decoGroupName", "name" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "decoGroupId": { "type": "integer", "format": "int32" }, "decoGroupName": { "type": "string" }, "name": { "type": "string" } } }, "DecoMode": { "enum": [ "Inherit", "Disable", "Override", "Merge" ], "type": "string" }, "DecoResponseModel": { "required": [ "id", "decoGroupId", "decoGroupName", "name", "watermarkMode", "watermarkIds", "useWatermarkDuringFiller", "graphicsElementsMode", "graphicsElementIds", "useGraphicsElementsDuringFiller", "breakContentMode", "breakContent", "defaultFillerMode", "defaultFillerCollectionType", "defaultFillerCollectionId", "defaultFillerMediaItemId", "defaultFillerMultiCollectionId", "defaultFillerSmartCollectionId", "defaultFillerSelectionName", "defaultFillerTrimToFit", "deadAirFallbackMode", "deadAirFallbackCollectionType", "deadAirFallbackCollectionId", "deadAirFallbackMediaItemId", "deadAirFallbackMultiCollectionId", "deadAirFallbackSmartCollectionId", "deadAirFallbackSelectionName" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "decoGroupId": { "type": "integer", "format": "int32" }, "decoGroupName": { "type": "string" }, "name": { "type": "string" }, "watermarkMode": { "$ref": "#/components/schemas/DecoMode" }, "watermarkIds": { "type": "array", "items": { "type": "integer", "format": "int32" } }, "useWatermarkDuringFiller": { "type": "boolean" }, "graphicsElementsMode": { "$ref": "#/components/schemas/DecoMode" }, "graphicsElementIds": { "type": "array", "items": { "type": "integer", "format": "int32" } }, "useGraphicsElementsDuringFiller": { "type": "boolean" }, "breakContentMode": { "$ref": "#/components/schemas/DecoMode" }, "breakContent": { "type": "array", "items": { "$ref": "#/components/schemas/DecoBreakContentResponseModel" } }, "defaultFillerMode": { "$ref": "#/components/schemas/DecoMode" }, "defaultFillerCollectionType": { "$ref": "#/components/schemas/CollectionType" }, "defaultFillerCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "defaultFillerMediaItemId": { "type": [ "null", "integer" ], "format": "int32" }, "defaultFillerMultiCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "defaultFillerSmartCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "defaultFillerSelectionName": { "type": [ "null", "string" ] }, "defaultFillerTrimToFit": { "type": "boolean" }, "deadAirFallbackMode": { "$ref": "#/components/schemas/DecoMode" }, "deadAirFallbackCollectionType": { "$ref": "#/components/schemas/CollectionType" }, "deadAirFallbackCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "deadAirFallbackMediaItemId": { "type": [ "null", "integer" ], "format": "int32" }, "deadAirFallbackMultiCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "deadAirFallbackSmartCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "deadAirFallbackSelectionName": { "type": [ "null", "string" ] } } }, "DecoTemplateGroupResponseModel": { "required": [ "id", "name", "decoTemplateCount" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "decoTemplateCount": { "type": "integer", "format": "int32" } } }, "DecoTemplateItemRequest": { "required": [ "decoId", "startTime", "endTime" ], "type": "object", "properties": { "decoId": { "type": "integer", "format": "int32" }, "startTime": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": "string" }, "endTime": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": "string" } } }, "DecoTemplateItemResponseModel": { "required": [ "decoId", "decoName", "startTime", "endTime" ], "type": "object", "properties": { "decoId": { "type": "integer", "format": "int32" }, "decoName": { "type": "string" }, "startTime": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": "string" }, "endTime": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": "string" } } }, "DecoTemplateResponseModel": { "required": [ "id", "decoTemplateGroupId", "groupName", "name" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "decoTemplateGroupId": { "type": "integer", "format": "int32" }, "groupName": { "type": "string" }, "name": { "type": "string" } } }, "DecoTemplateWithItemsResponseModel": { "required": [ "id", "decoTemplateGroupId", "groupName", "name", "items" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "decoTemplateGroupId": { "type": "integer", "format": "int32" }, "groupName": { "type": "string" }, "name": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/DecoTemplateItemResponseModel" } } } }, "DeleteMediaItemsRequest": { "required": [ "ids" ], "type": "object", "properties": { "ids": { "type": [ "null", "array" ], "items": { "type": "integer", "format": "int32" } } } }, "FFmpegFullProfileResponseModel": { "required": [ "id", "name", "threadCount", "normalizeAudio", "normalizeVideo", "hardwareAcceleration", "vaapiDisplay", "vaapiDriver", "vaapiDevice", "qsvExtraHardwareFrames", "resolutionId", "resolution", "scalingBehavior", "padMode", "videoFormat", "videoProfile", "videoPreset", "allowBFrames", "bitDepth", "videoBitrate", "videoBufferSize", "tonemapAlgorithm", "audioFormat", "audioBitrate", "audioBufferSize", "normalizeLoudnessMode", "targetLoudness", "audioChannels", "audioSampleRate", "normalizeFramerate", "normalizeColors", "deinterlaceVideo" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "threadCount": { "type": "integer", "format": "int32" }, "normalizeAudio": { "type": "boolean" }, "normalizeVideo": { "type": "boolean" }, "hardwareAcceleration": { "$ref": "#/components/schemas/HardwareAccelerationKind" }, "vaapiDisplay": { "type": "string" }, "vaapiDriver": { "$ref": "#/components/schemas/VaapiDriver" }, "vaapiDevice": { "type": "string" }, "qsvExtraHardwareFrames": { "type": [ "null", "integer" ], "format": "int32" }, "resolutionId": { "type": "integer", "format": "int32" }, "resolution": { "type": "string" }, "scalingBehavior": { "$ref": "#/components/schemas/ScalingBehavior" }, "padMode": { "$ref": "#/components/schemas/FilterMode" }, "videoFormat": { "$ref": "#/components/schemas/FFmpegProfileVideoFormat" }, "videoProfile": { "type": "string" }, "videoPreset": { "type": "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" } } }, "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" }, "FFmpegSettingsResponseModel": { "required": [ "fFmpegPath", "fFprobePath", "defaultFFmpegProfileId", "preferredAudioLanguageCode", "useEmbeddedSubtitles", "extractEmbeddedSubtitles", "probeForInterlacedFrames", "saveReports", "globalWatermarkId", "globalFallbackFillerId", "hlsSegmenterIdleTimeout", "workAheadSegmenterLimit", "initialSegmentCount", "hlsDirectOutputFormat", "defaultMpegTsScript" ], "type": "object", "properties": { "fFmpegPath": { "type": "string" }, "fFprobePath": { "type": "string" }, "defaultFFmpegProfileId": { "type": "integer", "format": "int32" }, "preferredAudioLanguageCode": { "type": "string" }, "useEmbeddedSubtitles": { "type": "boolean" }, "extractEmbeddedSubtitles": { "type": "boolean" }, "probeForInterlacedFrames": { "type": "boolean" }, "saveReports": { "type": "boolean" }, "globalWatermarkId": { "type": [ "null", "integer" ], "format": "int32" }, "globalFallbackFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "hlsSegmenterIdleTimeout": { "type": "integer", "format": "int32" }, "workAheadSegmenterLimit": { "type": "integer", "format": "int32" }, "initialSegmentCount": { "type": "integer", "format": "int32" }, "hlsDirectOutputFormat": { "$ref": "#/components/schemas/OutputFormatKind" }, "defaultMpegTsScript": { "type": "string" } } }, "FillerKind": { "enum": [ "None", "PreRoll", "MidRoll", "PostRoll", "Tail", "Fallback", "GuideMode", "DecoDefault" ], "type": "string" }, "FillerMode": { "enum": [ "None", "Duration", "Count", "Pad", "RandomCount" ], "type": "string" }, "FillerPresetFullResponseModel": { "required": [ "id", "name", "fillerKind", "fillerMode", "duration", "count", "padToNearestMinute", "allowWatermarks", "collectionType", "collectionId", "mediaItemId", "multiCollectionId", "smartCollectionId", "playlistId", "expression", "useChaptersAsMediaItems" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "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" }, "playlistId": { "type": [ "null", "integer" ], "format": "int32" }, "expression": { "type": [ "null", "string" ] }, "useChaptersAsMediaItems": { "type": "boolean" } } }, "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" }, "HdhrSettingsResponseModel": { "required": [ "tunerCount", "uuid" ], "type": "object", "properties": { "tunerCount": { "type": "integer", "format": "int32" }, "uuid": { "type": "string", "format": "uuid" } } }, "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" }, "ImageFolderResponseModel": { "required": [ "libraryFolderId", "name", "fullPath", "subfolderCount", "imageCount", "durationSeconds" ], "type": "object", "properties": { "libraryFolderId": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "fullPath": { "type": "string" }, "subfolderCount": { "type": "integer", "format": "int32" }, "imageCount": { "type": "integer", "format": "int32" }, "durationSeconds": { "type": [ "null", "number" ], "format": "double" } } }, "LibraryBrowseItemResponseModel": { "required": [ "id", "mediaType", "title", "libraryId", "libraryName", "artwork", "duration", "itemCount", "collectionKind", "collectionType", "collectionId", "multiCollectionId", "smartCollectionId", "rerunCollectionId", "mediaItemId", "playlistId" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "mediaType": { "$ref": "#/components/schemas/LibraryBrowseMediaType" }, "title": { "type": "string" }, "libraryId": { "type": [ "null", "integer" ], "format": "int32" }, "libraryName": { "type": [ "null", "string" ] }, "artwork": { "type": "string" }, "duration": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": [ "null", "string" ] }, "itemCount": { "type": [ "null", "integer" ], "format": "int32" }, "collectionKind": { "type": [ "null", "string" ] }, "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" }, "subtitle": { "type": [ "null", "string" ] }, "seasonId": { "type": [ "null", "integer" ], "format": "int32" } } }, "LibraryBrowseMediaType": { "enum": [ "Movie", "TelevisionShow", "TelevisionSeason", "Artist", "Collection", "SmartCollection", "MultiCollection", "RerunCollection", "Playlist", "Episode", "MusicVideo", "Song", "OtherVideo", "Image", "RemoteStream" ], "type": "string" }, "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" } } }, "LogEntryResponseModel": { "required": [ "timestamp", "level", "message" ], "type": "object", "properties": { "timestamp": { "type": "string", "format": "date-time" }, "level": { "type": "string" }, "message": { "type": "string" } } }, "LogEventLevel": { "enum": [ "Verbose", "Debug", "Information", "Warning", "Error", "Fatal" ], "type": "string" }, "LoggingSettingsResponseModel": { "required": [ "defaultMinimumLogLevel", "scanningMinimumLogLevel", "schedulingMinimumLogLevel", "searchingMinimumLogLevel", "streamingMinimumLogLevel", "httpMinimumLogLevel" ], "type": "object", "properties": { "defaultMinimumLogLevel": { "$ref": "#/components/schemas/LogEventLevel" }, "scanningMinimumLogLevel": { "$ref": "#/components/schemas/LogEventLevel" }, "schedulingMinimumLogLevel": { "$ref": "#/components/schemas/LogEventLevel" }, "searchingMinimumLogLevel": { "$ref": "#/components/schemas/LogEventLevel" }, "streamingMinimumLogLevel": { "$ref": "#/components/schemas/LogEventLevel" }, "httpMinimumLogLevel": { "$ref": "#/components/schemas/LogEventLevel" } } }, "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" } } }, "MediaItemInfoChapterResponseModel": { "required": [ "title", "startTime", "endTime" ], "type": "object", "properties": { "title": { "type": [ "null", "string" ] }, "startTime": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": "string" }, "endTime": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": "string" } } }, "MediaItemInfoResponseModel": { "required": [ "id", "title", "kind", "libraryKind", "serverName", "libraryName", "state", "duration", "sampleAspectRatio", "displayAspectRatio", "rFrameRate", "videoScanKind", "interlacedRatio", "width", "height", "streams", "chapters" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "title": { "type": "string" }, "kind": { "type": "string" }, "libraryKind": { "type": "string" }, "serverName": { "type": [ "null", "string" ] }, "libraryName": { "type": "string" }, "state": { "$ref": "#/components/schemas/MediaItemState" }, "duration": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": "string" }, "sampleAspectRatio": { "type": [ "null", "string" ] }, "displayAspectRatio": { "type": [ "null", "string" ] }, "rFrameRate": { "type": [ "null", "string" ] }, "videoScanKind": { "$ref": "#/components/schemas/VideoScanKind" }, "interlacedRatio": { "type": [ "null", "number" ], "format": "double" }, "width": { "type": "integer", "format": "int32" }, "height": { "type": "integer", "format": "int32" }, "streams": { "type": "array", "items": { "$ref": "#/components/schemas/MediaItemInfoStreamResponseModel" } }, "chapters": { "type": "array", "items": { "$ref": "#/components/schemas/MediaItemInfoChapterResponseModel" } } } }, "MediaItemInfoStreamResponseModel": { "required": [ "index", "kind", "title", "codec", "profile", "language", "channels", "default", "forced", "attachedPic", "pixelFormat", "colorRange", "colorSpace", "colorTransfer", "colorPrimaries", "bitsPerRawSample", "mimeType", "fileName", "isExtracted" ], "type": "object", "properties": { "index": { "type": [ "null", "integer" ], "format": "int32" }, "kind": { "$ref": "#/components/schemas/MediaStreamKind" }, "title": { "type": [ "null", "string" ] }, "codec": { "type": [ "null", "string" ] }, "profile": { "type": [ "null", "string" ] }, "language": { "type": [ "null", "string" ] }, "channels": { "type": [ "null", "integer" ], "format": "int32" }, "default": { "type": [ "null", "boolean" ] }, "forced": { "type": [ "null", "boolean" ] }, "attachedPic": { "type": [ "null", "boolean" ] }, "pixelFormat": { "type": [ "null", "string" ] }, "colorRange": { "type": [ "null", "string" ] }, "colorSpace": { "type": [ "null", "string" ] }, "colorTransfer": { "type": [ "null", "string" ] }, "colorPrimaries": { "type": [ "null", "string" ] }, "bitsPerRawSample": { "type": [ "null", "integer" ], "format": "int32" }, "mimeType": { "type": [ "null", "string" ] }, "fileName": { "type": [ "null", "string" ] }, "isExtracted": { "type": [ "null", "boolean" ] } } }, "MediaItemState": { "enum": [ "Normal", "FileNotFound", "Unavailable", "RemoteOnly" ], "type": "string" }, "MediaSourceKind": { "enum": [ "Local", "Plex", "Jellyfin", "Emby" ], "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" } } } }, "MediaStreamKind": { "enum": [ "Video", "Audio", "Subtitle", "Attachment", "ExternalSubtitle" ], "type": "string" }, "MovieDetailResponseModel": { "required": [ "id", "title", "year", "plot", "genres", "tags", "studios", "contentRatings", "languages", "actors", "directors", "writers", "path", "localPath", "state", "poster", "fanArt" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "title": { "type": "string" }, "year": { "type": [ "null", "string" ] }, "plot": { "type": [ "null", "string" ] }, "genres": { "type": "array", "items": { "type": "string" } }, "tags": { "type": "array", "items": { "type": "string" } }, "studios": { "type": "array", "items": { "type": "string" } }, "contentRatings": { "type": "array", "items": { "type": "string" } }, "languages": { "type": "array", "items": { "type": "string" } }, "actors": { "type": "array", "items": { "$ref": "#/components/schemas/ActorResponseModel" } }, "directors": { "type": "array", "items": { "type": "string" } }, "writers": { "type": "array", "items": { "type": "string" } }, "path": { "type": [ "null", "string" ] }, "localPath": { "type": [ "null", "string" ] }, "state": { "$ref": "#/components/schemas/MediaItemState" }, "poster": { "type": "string" }, "fanArt": { "type": "string" } } }, "MultiCollectionItemRequest": { "required": [ "collectionId", "smartCollectionId", "scheduleAsGroup", "playbackOrder" ], "type": "object", "properties": { "collectionId": { "type": [ "null", "integer" ], "format": "int32" }, "smartCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "scheduleAsGroup": { "type": "boolean" }, "playbackOrder": { "$ref": "#/components/schemas/PlaybackOrder" } } }, "MultiCollectionItemResponseModel": { "required": [ "collectionId", "smartCollectionId", "name", "scheduleAsGroup", "playbackOrder" ], "type": "object", "properties": { "collectionId": { "type": [ "null", "integer" ], "format": "int32" }, "smartCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "name": { "type": "string" }, "scheduleAsGroup": { "type": "boolean" }, "playbackOrder": { "$ref": "#/components/schemas/PlaybackOrder" } } }, "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" } } }, "MultiCollectionResponseModel": { "required": [ "id", "name", "items" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/MultiCollectionItemResponseModel" } } } }, "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" }, "OutputFormatKind": { "enum": [ "None", "Mkv", "MpegTs", "Mp4", "Hls", "HlsMp4", "Nut" ], "type": "string" }, "PagedLibraryBrowseItemsResponseModel": { "required": [ "totalCount", "page" ], "type": "object", "properties": { "totalCount": { "type": "integer", "format": "int32" }, "page": { "type": "array", "items": { "$ref": "#/components/schemas/LibraryBrowseItemResponseModel" } } } }, "PagedLogEntriesResponseModel": { "required": [ "totalCount", "page" ], "type": "object", "properties": { "totalCount": { "type": "integer", "format": "int32" }, "page": { "type": "array", "items": { "$ref": "#/components/schemas/LogEntryResponseModel" } } } }, "PagedMultiCollectionsResponseModel": { "required": [ "totalCount", "page" ], "type": "object", "properties": { "totalCount": { "type": "integer", "format": "int32" }, "page": { "type": "array", "items": { "$ref": "#/components/schemas/MultiCollectionResponseModel" } } } }, "PagedPlayoutHistoryResponseModel": { "required": [ "totalCount", "page" ], "type": "object", "properties": { "totalCount": { "type": "integer", "format": "int32" }, "page": { "type": "array", "items": { "$ref": "#/components/schemas/PlayoutHistoryResponseModel" } } } }, "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" } } } }, "PagedRerunCollectionsResponseModel": { "required": [ "totalCount", "page" ], "type": "object", "properties": { "totalCount": { "type": "integer", "format": "int32" }, "page": { "type": "array", "items": { "$ref": "#/components/schemas/RerunCollectionResponseModel" } } } }, "PagedTraktListsResponseModel": { "required": [ "totalCount", "page" ], "type": "object", "properties": { "totalCount": { "type": "integer", "format": "int32" }, "page": { "type": "array", "items": { "$ref": "#/components/schemas/TraktListResponseModel" } } } }, "PlaybackOrder": { "enum": [ "None", "Chronological", "Random", "Shuffle", "ShuffleInOrder", "MultiEpisodeShuffle", "SeasonEpisode", "RandomRotation", "Marathon" ], "type": "string" }, "PlaylistGroupResponseModel": { "required": [ "id", "name", "playlistCount", "isSystem" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "playlistCount": { "type": "integer", "format": "int32" }, "isSystem": { "type": "boolean" } } }, "PlaylistItemRequest": { "required": [ "index", "collectionType", "collectionId", "multiCollectionId", "smartCollectionId", "mediaItemId", "playbackOrder", "count", "playAll", "includeInProgramGuide" ], "type": "object", "properties": { "index": { "type": "integer", "format": "int32" }, "collectionType": { "$ref": "#/components/schemas/CollectionType" }, "collectionId": { "type": [ "null", "integer" ], "format": "int32" }, "multiCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "smartCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "mediaItemId": { "type": [ "null", "integer" ], "format": "int32" }, "playbackOrder": { "$ref": "#/components/schemas/PlaybackOrder" }, "count": { "type": [ "null", "integer" ], "format": "int32" }, "playAll": { "type": "boolean" }, "includeInProgramGuide": { "type": "boolean" } } }, "PlaylistItemResponseModel": { "required": [ "id", "index", "collectionType", "collectionId", "collectionName", "multiCollectionId", "multiCollectionName", "smartCollectionId", "smartCollectionName", "mediaItemId", "mediaItemName", "playbackOrder", "count", "playAll", "includeInProgramGuide" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "index": { "type": "integer", "format": "int32" }, "collectionType": { "$ref": "#/components/schemas/CollectionType" }, "collectionId": { "type": [ "null", "integer" ], "format": "int32" }, "collectionName": { "type": [ "null", "string" ] }, "multiCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "multiCollectionName": { "type": [ "null", "string" ] }, "smartCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "smartCollectionName": { "type": [ "null", "string" ] }, "mediaItemId": { "type": [ "null", "integer" ], "format": "int32" }, "mediaItemName": { "type": [ "null", "string" ] }, "playbackOrder": { "$ref": "#/components/schemas/PlaybackOrder" }, "count": { "type": [ "null", "integer" ], "format": "int32" }, "playAll": { "type": "boolean" }, "includeInProgramGuide": { "type": "boolean" } } }, "PlaylistPreviewItemResponseModel": { "required": [ "title", "start", "finish", "duration" ], "type": "object", "properties": { "title": { "type": "string" }, "start": { "type": "string" }, "finish": { "type": "string" }, "duration": { "type": "string" } } }, "PlaylistResponseModel": { "required": [ "id", "playlistGroupId", "name", "isSystem" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "playlistGroupId": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "isSystem": { "type": "boolean" } } }, "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" } } }, "PlayoutAlternateScheduleItemRequest": { "required": [ "id", "programScheduleId", "daysOfWeek", "daysOfMonth", "monthsOfYear", "limitToDateRange", "startMonth", "startDay", "startYear", "endMonth", "endDay", "endYear" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "programScheduleId": { "type": "integer", "format": "int32" }, "daysOfWeek": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/DayOfWeek" } }, "daysOfMonth": { "type": [ "null", "array" ], "items": { "type": "integer", "format": "int32" } }, "monthsOfYear": { "type": [ "null", "array" ], "items": { "type": "integer", "format": "int32" } }, "limitToDateRange": { "type": "boolean" }, "startMonth": { "type": "integer", "format": "int32" }, "startDay": { "type": "integer", "format": "int32" }, "startYear": { "type": [ "null", "integer" ], "format": "int32" }, "endMonth": { "type": "integer", "format": "int32" }, "endDay": { "type": "integer", "format": "int32" }, "endYear": { "type": [ "null", "integer" ], "format": "int32" } } }, "PlayoutAlternateScheduleResponseModel": { "required": [ "id", "index", "programScheduleId", "daysOfWeek", "daysOfMonth", "monthsOfYear", "limitToDateRange", "startMonth", "startDay", "startYear", "endMonth", "endDay", "endYear" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "index": { "type": "integer", "format": "int32" }, "programScheduleId": { "type": "integer", "format": "int32" }, "daysOfWeek": { "type": "array", "items": { "$ref": "#/components/schemas/DayOfWeek" } }, "daysOfMonth": { "type": "array", "items": { "type": "integer", "format": "int32" } }, "monthsOfYear": { "type": "array", "items": { "type": "integer", "format": "int32" } }, "limitToDateRange": { "type": "boolean" }, "startMonth": { "type": "integer", "format": "int32" }, "startDay": { "type": "integer", "format": "int32" }, "startYear": { "type": [ "null", "integer" ], "format": "int32" }, "endMonth": { "type": "integer", "format": "int32" }, "endDay": { "type": "integer", "format": "int32" }, "endYear": { "type": [ "null", "integer" ], "format": "int32" } } }, "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" ] } } }, "PlayoutHistoryDetailsResponseModel": { "required": [ "playbackOrder", "collectionType", "name", "mediaItemType", "mediaItemTitle" ], "type": "object", "properties": { "playbackOrder": { "$ref": "#/components/schemas/PlaybackOrder" }, "collectionType": { "$ref": "#/components/schemas/CollectionType" }, "name": { "type": "string" }, "mediaItemType": { "type": "string" }, "mediaItemTitle": { "type": "string" } } }, "PlayoutHistoryResponseModel": { "required": [ "id", "when", "finish", "key", "details" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "when": { "type": "string", "format": "date-time" }, "finish": { "type": "string", "format": "date-time" }, "key": { "type": "string" }, "details": { "type": "string" } } }, "PlayoutItemResponseModel": { "required": [ "id", "title", "start", "finish", "duration", "fillerKind", "hasSchedulingContext" ], "type": "object", "properties": { "id": { "type": [ "null", "integer" ], "format": "int32" }, "title": { "type": "string" }, "start": { "type": "string", "format": "date-time" }, "finish": { "type": "string", "format": "date-time" }, "duration": { "type": "string" }, "fillerKind": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/FillerKind" } ] }, "hasSchedulingContext": { "type": "boolean" } } }, "PlayoutItemSchedulingContextResponseModel": { "required": [ "context" ], "type": "object", "properties": { "context": { "type": "string" } } }, "PlayoutListItemResponseModel": { "required": [ "id", "channelNumber", "channelName", "scheduleKind", "scheduleName", "dailyRebuildTime", "buildStatus", "playoutMode" ], "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": { "$ref": "#/components/schemas/ChannelPlayoutMode" } } }, "PlayoutMode": { "enum": [ "Flood", "One", "Multiple", "Duration" ], "type": "string" }, "PlayoutResponseModel": { "required": [ "id", "scheduleKind", "channelName", "channelNumber", "playoutMode", "scheduleName", "scheduleFile", "dailyRebuildTime", "buildStatus", "decoId", "decoName" ], "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" } ] }, "decoId": { "type": [ "null", "integer" ], "format": "int32" }, "decoName": { "type": [ "null", "string" ] } } }, "PlayoutScheduleKind": { "enum": [ "None", "Classic", "Block", "Sequential", "Scripted", "ExternalJson" ], "type": "string" }, "PlayoutSettingsResponseModel": { "required": [ "daysToBuild", "skipMissingItems", "scriptedScheduleTimeoutSeconds" ], "type": "object", "properties": { "daysToBuild": { "type": "integer", "format": "int32" }, "skipMissingItems": { "type": "boolean" }, "scriptedScheduleTimeoutSeconds": { "type": "integer", "format": "int32" } } }, "PlayoutTemplateItemRequest": { "required": [ "id", "templateId", "decoTemplateId", "daysOfWeek", "daysOfMonth", "monthsOfYear", "limitToDateRange", "startMonth", "startDay", "startYear", "endMonth", "endDay", "endYear" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "templateId": { "type": "integer", "format": "int32" }, "decoTemplateId": { "type": [ "null", "integer" ], "format": "int32" }, "daysOfWeek": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/DayOfWeek" } }, "daysOfMonth": { "type": [ "null", "array" ], "items": { "type": "integer", "format": "int32" } }, "monthsOfYear": { "type": [ "null", "array" ], "items": { "type": "integer", "format": "int32" } }, "limitToDateRange": { "type": "boolean" }, "startMonth": { "type": "integer", "format": "int32" }, "startDay": { "type": "integer", "format": "int32" }, "startYear": { "type": [ "null", "integer" ], "format": "int32" }, "endMonth": { "type": "integer", "format": "int32" }, "endDay": { "type": "integer", "format": "int32" }, "endYear": { "type": [ "null", "integer" ], "format": "int32" } } }, "PlayoutTemplateResponseModel": { "required": [ "id", "index", "templateId", "templateName", "templateGroupName", "decoTemplateId", "decoTemplateName", "decoTemplateGroupName", "daysOfWeek", "daysOfMonth", "monthsOfYear", "limitToDateRange", "startMonth", "startDay", "startYear", "endMonth", "endDay", "endYear" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "index": { "type": "integer", "format": "int32" }, "templateId": { "type": "integer", "format": "int32" }, "templateName": { "type": "string" }, "templateGroupName": { "type": "string" }, "decoTemplateId": { "type": [ "null", "integer" ], "format": "int32" }, "decoTemplateName": { "type": [ "null", "string" ] }, "decoTemplateGroupName": { "type": [ "null", "string" ] }, "daysOfWeek": { "type": "array", "items": { "$ref": "#/components/schemas/DayOfWeek" } }, "daysOfMonth": { "type": "array", "items": { "type": "integer", "format": "int32" } }, "monthsOfYear": { "type": "array", "items": { "type": "integer", "format": "int32" } }, "limitToDateRange": { "type": "boolean" }, "startMonth": { "type": "integer", "format": "int32" }, "startDay": { "type": "integer", "format": "int32" }, "startYear": { "type": [ "null", "integer" ], "format": "int32" }, "endMonth": { "type": "integer", "format": "int32" }, "endDay": { "type": "integer", "format": "int32" }, "endYear": { "type": [ "null", "integer" ], "format": "int32" } } }, "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" } } }, "ReplaceBlockRequest": { "required": [ "name", "minutes", "stopScheduling", "items" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] }, "minutes": { "type": "integer", "format": "int32" }, "stopScheduling": { "$ref": "#/components/schemas/BlockStopScheduling" }, "items": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/BlockItemRequest" } } } }, "ReplaceDecoRequest": { "required": [ "name", "watermarkMode", "watermarkIds", "useWatermarkDuringFiller", "graphicsElementsMode", "graphicsElementIds", "useGraphicsElementsDuringFiller", "breakContentMode", "breakContent", "defaultFillerMode", "defaultFillerCollectionType", "defaultFillerCollectionId", "defaultFillerMediaItemId", "defaultFillerMultiCollectionId", "defaultFillerSmartCollectionId", "defaultFillerTrimToFit", "deadAirFallbackMode", "deadAirFallbackCollectionType", "deadAirFallbackCollectionId", "deadAirFallbackMediaItemId", "deadAirFallbackMultiCollectionId", "deadAirFallbackSmartCollectionId" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] }, "watermarkMode": { "$ref": "#/components/schemas/DecoMode" }, "watermarkIds": { "type": [ "null", "array" ], "items": { "type": "integer", "format": "int32" } }, "useWatermarkDuringFiller": { "type": "boolean" }, "graphicsElementsMode": { "$ref": "#/components/schemas/DecoMode" }, "graphicsElementIds": { "type": [ "null", "array" ], "items": { "type": "integer", "format": "int32" } }, "useGraphicsElementsDuringFiller": { "type": "boolean" }, "breakContentMode": { "$ref": "#/components/schemas/DecoMode" }, "breakContent": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/DecoBreakContentRequest" } }, "defaultFillerMode": { "$ref": "#/components/schemas/DecoMode" }, "defaultFillerCollectionType": { "$ref": "#/components/schemas/CollectionType" }, "defaultFillerCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "defaultFillerMediaItemId": { "type": [ "null", "integer" ], "format": "int32" }, "defaultFillerMultiCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "defaultFillerSmartCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "defaultFillerTrimToFit": { "type": "boolean" }, "deadAirFallbackMode": { "$ref": "#/components/schemas/DecoMode" }, "deadAirFallbackCollectionType": { "$ref": "#/components/schemas/CollectionType" }, "deadAirFallbackCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "deadAirFallbackMediaItemId": { "type": [ "null", "integer" ], "format": "int32" }, "deadAirFallbackMultiCollectionId": { "type": [ "null", "integer" ], "format": "int32" }, "deadAirFallbackSmartCollectionId": { "type": [ "null", "integer" ], "format": "int32" } } }, "ReplaceDecoTemplateRequest": { "required": [ "name", "items" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] }, "items": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/DecoTemplateItemRequest" } } } }, "ReplacePlaylistRequest": { "required": [ "name", "items" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] }, "items": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/PlaylistItemRequest" } } } }, "ReplacePlayoutAlternateSchedulesRequest": { "required": [ "items" ], "type": "object", "properties": { "items": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/PlayoutAlternateScheduleItemRequest" } } } }, "ReplacePlayoutTemplatesRequest": { "required": [ "items" ], "type": "object", "properties": { "items": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/PlayoutTemplateItemRequest" } } } }, "ReplaceScheduleItemsRequest": { "required": [ "items" ], "type": "object", "properties": { "items": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/ScheduleItemRequest" } } } }, "ReplaceTemplateRequest": { "required": [ "name", "items" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] }, "items": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/TemplateItemRequest" } } } }, "RerunCollectionResponseModel": { "required": [ "id", "name", "collectionType", "selectedId", "selectedName", "firstRunPlaybackOrder", "rerunPlaybackOrder" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "collectionType": { "$ref": "#/components/schemas/CollectionType" }, "selectedId": { "type": [ "null", "integer" ], "format": "int32" }, "selectedName": { "type": [ "null", "string" ] }, "firstRunPlaybackOrder": { "$ref": "#/components/schemas/PlaybackOrder" }, "rerunPlaybackOrder": { "$ref": "#/components/schemas/PlaybackOrder" } } }, "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" } } }, "ResolutionResponseModel": { "required": [ "id", "name", "width", "height", "isCustom" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "width": { "type": "integer", "format": "int32" }, "height": { "type": "integer", "format": "int32" }, "isCustom": { "type": "boolean" } } }, "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" }, "ScannerSettingsResponseModel": { "required": [ "libraryRefreshInterval" ], "type": "object", "properties": { "libraryRefreshInterval": { "type": "integer", "format": "int32" } } }, "ScanShowRequest": { "required": [ "showId" ], "type": "object", "properties": { "showId": { "type": "integer", "format": "int32" }, "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" } ] } } }, "SchedulingPickerOptionResponseModel": { "required": [ "id", "name" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" } } }, "SearchResultAllItemsResponseModel": { "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" } } } }, "SearchResultGroupResponseModel": { "required": [ "totalCount", "items" ], "type": "object", "properties": { "totalCount": { "type": "integer", "format": "int32" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/LibraryBrowseItemResponseModel" } } } }, "SearchResultsResponseModel": { "required": [ "movies", "shows", "seasons", "artists", "episodes", "musicVideos", "songs", "otherVideos", "images", "remoteStreams" ], "type": "object", "properties": { "movies": { "$ref": "#/components/schemas/SearchResultGroupResponseModel" }, "shows": { "$ref": "#/components/schemas/SearchResultGroupResponseModel" }, "seasons": { "$ref": "#/components/schemas/SearchResultGroupResponseModel" }, "artists": { "$ref": "#/components/schemas/SearchResultGroupResponseModel" }, "episodes": { "$ref": "#/components/schemas/SearchResultGroupResponseModel" }, "musicVideos": { "$ref": "#/components/schemas/SearchResultGroupResponseModel" }, "songs": { "$ref": "#/components/schemas/SearchResultGroupResponseModel" }, "otherVideos": { "$ref": "#/components/schemas/SearchResultGroupResponseModel" }, "images": { "$ref": "#/components/schemas/SearchResultGroupResponseModel" }, "remoteStreams": { "$ref": "#/components/schemas/SearchResultGroupResponseModel" } } }, "SeasonDetailResponseModel": { "required": [ "id", "showId", "title", "year", "name", "poster", "fanArt" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "showId": { "type": "integer", "format": "int32" }, "title": { "type": "string" }, "year": { "type": [ "null", "string" ] }, "name": { "type": "string" }, "poster": { "type": "string" }, "fanArt": { "type": "string" } } }, "ShowDetailResponseModel": { "required": [ "id", "libraryId", "mediaSourceKind", "title", "year", "plot", "poster", "fanArt", "genres", "tags", "studios", "networks", "contentRatings", "languages", "actors" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "libraryId": { "type": "integer", "format": "int32" }, "mediaSourceKind": { "$ref": "#/components/schemas/MediaSourceKind" }, "title": { "type": "string" }, "year": { "type": [ "null", "string" ] }, "plot": { "type": [ "null", "string" ] }, "poster": { "type": "string" }, "fanArt": { "type": "string" }, "genres": { "type": "array", "items": { "type": "string" } }, "tags": { "type": "array", "items": { "type": "string" } }, "studios": { "type": "array", "items": { "type": "string" } }, "networks": { "type": "array", "items": { "type": "string" } }, "contentRatings": { "type": "array", "items": { "type": "string" } }, "languages": { "type": "array", "items": { "type": "string" } }, "actors": { "type": "array", "items": { "$ref": "#/components/schemas/ActorResponseModel" } } } }, "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" }, "TemplateGroupResponseModel": { "required": [ "id", "name", "templateCount" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "templateCount": { "type": "integer", "format": "int32" } } }, "TemplateItemRequest": { "required": [ "blockId", "startTime" ], "type": "object", "properties": { "blockId": { "type": "integer", "format": "int32" }, "startTime": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": "string" } } }, "TemplateItemResponseModel": { "required": [ "blockId", "blockName", "blockMinutes", "startTime" ], "type": "object", "properties": { "blockId": { "type": "integer", "format": "int32" }, "blockName": { "type": "string" }, "blockMinutes": { "type": "integer", "format": "int32" }, "startTime": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": "string" } } }, "TemplateResponseModel": { "required": [ "id", "templateGroupId", "groupName", "name" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "templateGroupId": { "type": "integer", "format": "int32" }, "groupName": { "type": "string" }, "name": { "type": "string" } } }, "TemplateWithItemsResponseModel": { "required": [ "id", "templateGroupId", "groupName", "name", "items" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "templateGroupId": { "type": "integer", "format": "int32" }, "groupName": { "type": "string" }, "name": { "type": "string" }, "items": { "type": "array", "items": { "$ref": "#/components/schemas/TemplateItemResponseModel" } } } }, "TraktListResponseModel": { "required": [ "id", "traktId", "slug", "name", "itemCount", "matchCount", "autoRefresh", "generatePlaylist" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "traktId": { "type": "integer", "format": "int32" }, "slug": { "type": "string" }, "name": { "type": "string" }, "itemCount": { "type": "integer", "format": "int32" }, "matchCount": { "type": "integer", "format": "int32" }, "autoRefresh": { "type": "boolean" }, "generatePlaylist": { "type": "boolean" } } }, "TraktStatusResponseModel": { "required": [ "busy" ], "type": "object", "properties": { "busy": { "type": "boolean" } } }, "TroubleshootingInfoResponseModel": { "required": [ "generalJson", "nvidiaCapabilities", "qsvCapabilities", "vaapiCapabilities", "videoToolboxCapabilities" ], "type": "object", "properties": { "generalJson": { "type": "string" }, "nvidiaCapabilities": { "type": [ "null", "string" ] }, "qsvCapabilities": { "type": [ "null", "string" ] }, "vaapiCapabilities": { "type": [ "null", "string" ] }, "videoToolboxCapabilities": { "type": [ "null", "string" ] } } }, "TroubleshootingPlaybackStatusResponseModel": { "required": [ "state", "exitCode", "speed", "logs" ], "type": "object", "properties": { "state": { "type": "string" }, "exitCode": { "type": [ "null", "integer" ], "format": "int32" }, "speed": { "type": [ "null", "number" ], "format": "double" }, "logs": { "type": [ "null", "string" ] } } }, "TroubleshootingSubtitleResponseModel": { "required": [ "id", "language", "title", "codec" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "language": { "type": [ "null", "string" ] }, "title": { "type": [ "null", "string" ] }, "codec": { "type": [ "null", "string" ] } } }, "UiSettingsResponseModel": { "required": [ "isDarkMode", "language" ], "type": "object", "properties": { "isDarkMode": { "type": "boolean" }, "language": { "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" } } }, "UpdateChannelTemplateRequest": { "required": [ "name", "description", "ffmpegProfileId", "watermarkId", "fallbackFillerId", "preRollFillerId", "midRollFillerId", "postRollFillerId", "streamSelectorMode", "streamSelector", "preferredAudioLanguageCode", "preferredAudioTitle", "playoutSource", "playoutMode", "streamingMode", "preferredSubtitleLanguageCode", "subtitleMode", "musicVideoCreditsMode", "musicVideoCreditsTemplate", "songVideoMode", "transcodeMode", "idleBehavior", "shuffleScheduleItems", "randomStartPoint", "fixedStartTimeBehavior" ], "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" }, "ffmpegProfileId": { "type": "integer", "format": "int32" }, "watermarkId": { "type": [ "null", "integer" ], "format": "int32" }, "fallbackFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "preRollFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "midRollFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "postRollFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "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" }, "streamingMode": { "$ref": "#/components/schemas/StreamingMode" }, "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" }, "shuffleScheduleItems": { "type": "boolean" }, "randomStartPoint": { "type": "boolean" }, "fixedStartTimeBehavior": { "$ref": "#/components/schemas/FixedStartTimeBehavior" } } }, "UpdateCollectionCustomOrderRequest": { "required": [ "mediaItemIds" ], "type": "object", "properties": { "mediaItemIds": { "type": [ "null", "array" ], "items": { "type": "integer", "format": "int32" } } } }, "UpdateCollectionRequest": { "required": [ "name", "useCustomPlaybackOrder" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] }, "useCustomPlaybackOrder": { "type": [ "null", "boolean" ] } } }, "UpdateDefaultDecoRequest": { "required": [ "decoId" ], "type": "object", "properties": { "decoId": { "type": [ "null", "integer" ], "format": "int32" } } }, "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" } } }, "UpdateFFmpegSettingsRequest": { "required": [ "fFmpegPath", "fFprobePath", "defaultFFmpegProfileId", "preferredAudioLanguageCode", "useEmbeddedSubtitles", "extractEmbeddedSubtitles", "probeForInterlacedFrames", "saveReports", "globalWatermarkId", "globalFallbackFillerId", "hlsSegmenterIdleTimeout", "workAheadSegmenterLimit", "initialSegmentCount", "hlsDirectOutputFormat", "defaultMpegTsScript" ], "type": "object", "properties": { "fFmpegPath": { "type": [ "null", "string" ] }, "fFprobePath": { "type": [ "null", "string" ] }, "defaultFFmpegProfileId": { "type": "integer", "format": "int32" }, "preferredAudioLanguageCode": { "type": [ "null", "string" ] }, "useEmbeddedSubtitles": { "type": "boolean" }, "extractEmbeddedSubtitles": { "type": "boolean" }, "probeForInterlacedFrames": { "type": "boolean" }, "saveReports": { "type": "boolean" }, "globalWatermarkId": { "type": [ "null", "integer" ], "format": "int32" }, "globalFallbackFillerId": { "type": [ "null", "integer" ], "format": "int32" }, "hlsSegmenterIdleTimeout": { "type": "integer", "format": "int32" }, "workAheadSegmenterLimit": { "type": "integer", "format": "int32" }, "initialSegmentCount": { "type": "integer", "format": "int32" }, "hlsDirectOutputFormat": { "$ref": "#/components/schemas/OutputFormatKind" }, "defaultMpegTsScript": { "type": [ "null", "string" ] } } }, "UpdateFillerPresetRequest": { "required": [ "name", "fillerKind", "fillerMode", "duration", "count", "padToNearestMinute", "allowWatermarks", "collectionType", "collectionId", "mediaItemId", "multiCollectionId", "smartCollectionId", "playlistId", "expression", "useChaptersAsMediaItems" ], "type": "object", "properties": { "name": { "type": "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" }, "playlistId": { "type": [ "null", "integer" ], "format": "int32" }, "expression": { "type": [ "null", "string" ] }, "useChaptersAsMediaItems": { "type": "boolean" } } }, "UpdateHdhrSettingsRequest": { "required": [ "tunerCount" ], "type": "object", "properties": { "tunerCount": { "type": "integer", "format": "int32" } } }, "UpdateImageFolderDurationRequest": { "required": [ "durationSeconds" ], "type": "object", "properties": { "durationSeconds": { "type": [ "null", "number" ], "format": "double" } } }, "UpdateImageFolderDurationResponseModel": { "required": [ "durationSeconds" ], "type": "object", "properties": { "durationSeconds": { "type": [ "null", "number" ], "format": "double" } } }, "UpdateLoggingSettingsRequest": { "required": [ "defaultMinimumLogLevel", "scanningMinimumLogLevel", "schedulingMinimumLogLevel", "searchingMinimumLogLevel", "streamingMinimumLogLevel", "httpMinimumLogLevel" ], "type": "object", "properties": { "defaultMinimumLogLevel": { "$ref": "#/components/schemas/LogEventLevel" }, "scanningMinimumLogLevel": { "$ref": "#/components/schemas/LogEventLevel" }, "schedulingMinimumLogLevel": { "$ref": "#/components/schemas/LogEventLevel" }, "searchingMinimumLogLevel": { "$ref": "#/components/schemas/LogEventLevel" }, "streamingMinimumLogLevel": { "$ref": "#/components/schemas/LogEventLevel" }, "httpMinimumLogLevel": { "$ref": "#/components/schemas/LogEventLevel" } } }, "UpdateMultiCollectionRequest": { "required": [ "name", "items" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] }, "items": { "type": [ "null", "array" ], "items": { "$ref": "#/components/schemas/MultiCollectionItemRequest" } } } }, "UpdatePlaylistGroupRequest": { "required": [ "name" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] } } }, "UpdatePlayoutDetailsRequest": { "required": [ "dailyRebuildTime", "scheduleFile" ], "type": "object", "properties": { "dailyRebuildTime": { "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$", "type": [ "null", "string" ] }, "scheduleFile": { "type": [ "null", "string" ] } } }, "UpdatePlayoutSettingsRequest": { "required": [ "daysToBuild", "skipMissingItems", "scriptedScheduleTimeoutSeconds" ], "type": "object", "properties": { "daysToBuild": { "type": "integer", "format": "int32" }, "skipMissingItems": { "type": "boolean" }, "scriptedScheduleTimeoutSeconds": { "type": "integer", "format": "int32" } } }, "UpdateRerunCollectionRequest": { "required": [ "name", "collectionType", "selectedId", "firstRunPlaybackOrder", "rerunPlaybackOrder" ], "type": "object", "properties": { "name": { "type": [ "null", "string" ] }, "collectionType": { "$ref": "#/components/schemas/CollectionType" }, "selectedId": { "type": "integer", "format": "int32" }, "firstRunPlaybackOrder": { "$ref": "#/components/schemas/PlaybackOrder" }, "rerunPlaybackOrder": { "$ref": "#/components/schemas/PlaybackOrder" } } }, "UpdateScannerSettingsRequest": { "required": [ "libraryRefreshInterval" ], "type": "object", "properties": { "libraryRefreshInterval": { "type": "integer", "format": "int32" } } }, "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" ] } } }, "UpdateTraktListRequest": { "required": [ "autoRefresh", "generatePlaylist" ], "type": "object", "properties": { "autoRefresh": { "type": "boolean" }, "generatePlaylist": { "type": "boolean" } } }, "UpdateUiSettingsRequest": { "required": [ "isDarkMode", "language" ], "type": "object", "properties": { "isDarkMode": { "type": "boolean" }, "language": { "type": [ "null", "string" ] } } }, "UpdateWatermarkRequest": { "required": [ "name", "mode", "imageSource", "image", "imageContentType", "location", "size", "width", "horizontalMargin", "verticalMargin", "frequencyMinutes", "durationSeconds", "opacity", "opacityExpression", "zIndex", "placeWithinSourceContent" ], "type": "object", "properties": { "name": { "type": "string" }, "mode": { "$ref": "#/components/schemas/ChannelWatermarkMode" }, "imageSource": { "$ref": "#/components/schemas/ChannelWatermarkImageSource" }, "image": { "type": [ "null", "string" ] }, "imageContentType": { "type": [ "null", "string" ] }, "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" }, "opacityExpression": { "type": [ "null", "string" ] }, "zIndex": { "type": "integer", "format": "int32" }, "placeWithinSourceContent": { "type": "boolean" } } }, "UpdateXmltvSettingsRequest": { "required": [ "daysToBuild", "timeZone", "blockBehavior" ], "type": "object", "properties": { "daysToBuild": { "type": "integer", "format": "int32" }, "timeZone": { "$ref": "#/components/schemas/XmltvTimeZone" }, "blockBehavior": { "$ref": "#/components/schemas/XmltvBlockBehavior" } } }, "VaapiDriver": { "enum": [ "Default", "iHD", "i965", "RadeonSI", "Nouveau" ], "type": "string" }, "ValidateSequentialScheduleRequest": { "required": [ "yaml", "isImport" ], "type": "object", "properties": { "yaml": { "type": [ "null", "string" ] }, "isImport": { "type": "boolean" } } }, "ValidateSequentialScheduleResponseModel": { "required": [ "isValid", "messages", "json" ], "type": "object", "properties": { "isValid": { "type": "boolean" }, "messages": { "type": "array", "items": { "type": "string" } }, "json": { "type": "string" } } }, "VideoScanKind": { "enum": [ "Unknown", "Progressive", "Interlaced" ], "type": "string" }, "WatermarkFullResponseModel": { "required": [ "id", "name", "mode", "imageSource", "image", "imageContentType", "location", "size", "width", "horizontalMargin", "verticalMargin", "frequencyMinutes", "durationSeconds", "opacity", "opacityExpression", "zIndex", "placeWithinSourceContent" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": "string" }, "mode": { "$ref": "#/components/schemas/ChannelWatermarkMode" }, "imageSource": { "$ref": "#/components/schemas/ChannelWatermarkImageSource" }, "image": { "type": [ "null", "string" ] }, "imageContentType": { "type": [ "null", "string" ] }, "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" }, "opacityExpression": { "type": [ "null", "string" ] }, "zIndex": { "type": "integer", "format": "int32" }, "placeWithinSourceContent": { "type": "boolean" } } }, "WatermarkLocation": { "enum": [ "BottomRight", "BottomLeft", "TopRight", "TopLeft", "TopMiddle", "RightMiddle", "BottomMiddle", "LeftMiddle", "MiddleCenter" ], "type": "string" }, "WatermarkResponseModel": { "required": [ "id", "name" ], "type": "object", "properties": { "id": { "type": "integer", "format": "int32" }, "name": { "type": [ "null", "string" ] } } }, "WatermarkSize": { "enum": [ "Scaled", "ActualSize" ], "type": "string" }, "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" } } }, "XmltvBlockBehavior": { "enum": [ "SplitTimeEvenly", "UseActualTimes" ], "type": "string" }, "XmltvSettingsResponseModel": { "required": [ "daysToBuild", "timeZone", "blockBehavior" ], "type": "object", "properties": { "daysToBuild": { "type": "integer", "format": "int32" }, "timeZone": { "$ref": "#/components/schemas/XmltvTimeZone" }, "blockBehavior": { "$ref": "#/components/schemas/XmltvBlockBehavior" } } }, "XmltvTimeZone": { "enum": [ "Local", "Utc" ], "type": "string" } } }, "tags": [ { "name": "Artists" }, { "name": "Artwork" }, { "name": "Blocks" }, { "name": "Channel" }, { "name": "Channels" }, { "name": "Channel Templates" }, { "name": "Collections" }, { "name": "Decos" }, { "name": "DecoTemplates" }, { "name": "FFmpeg Profiles" }, { "name": "Filler Presets" }, { "name": "Graphics Elements" }, { "name": "Health" }, { "name": "Images" }, { "name": "Libraries" }, { "name": "Logs" }, { "name": "Maintenance" }, { "name": "Media Items" }, { "name": "Media Sources" }, { "name": "Movies" }, { "name": "Multi Collections" }, { "name": "Playlists" }, { "name": "Playouts" }, { "name": "Rerun Collections" }, { "name": "Resolution" }, { "name": "Settings" }, { "name": "Schedules" }, { "name": "Search" }, { "name": "Television" }, { "name": "Sessions" }, { "name": "Smart Collections" }, { "name": "Templates" }, { "name": "Trakt" }, { "name": "Troubleshooting" }, { "name": "Version" }, { "name": "Watermarks" } ] }