diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/AddAllRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ContentAll.cs similarity index 93% rename from ErsatzTV.Core/Api/ScriptedPlayout/AddAllRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ContentAll.cs index 9be7b0b48..83a5edf34 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/AddAllRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ContentAll.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record AddAllRequestModel +public record ContentAll { [Description("The 'key' for the content that should be added")] public string Content { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/AddCollectionRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ContentCollection.cs similarity index 75% rename from ErsatzTV.Core/Api/ScriptedPlayout/AddCollectionRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ContentCollection.cs index 23fadd646..10228a84f 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/AddCollectionRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ContentCollection.cs @@ -1,8 +1,10 @@ using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record AddCollectionRequestModel +[SuppressMessage("Naming", "CA1711:Identifiers should not have incorrect suffix")] +public record ContentCollection { [Description("Unique name used to reference this content throughout the scripted schedule")] public string Key { get; init; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/AddMarathonRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ContentMarathon.cs similarity index 96% rename from ErsatzTV.Core/Api/ScriptedPlayout/AddMarathonRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ContentMarathon.cs index d73b4e472..abc4d83f9 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/AddMarathonRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ContentMarathon.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record AddMarathonRequestModel +public record ContentMarathon { [Description("Unique name used to reference this content throughout the scripted schedule")] public string Key { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/AddMultiCollectionRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ContentMultiCollection.cs similarity index 74% rename from ErsatzTV.Core/Api/ScriptedPlayout/AddMultiCollectionRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ContentMultiCollection.cs index 0568d34a0..5674b38b3 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/AddMultiCollectionRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ContentMultiCollection.cs @@ -1,8 +1,10 @@ using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record AddMultiCollectionRequestModel +[SuppressMessage("Naming", "CA1711:Identifiers should not have incorrect suffix")] +public record ContentMultiCollection { [Description("Unique name used to reference this content throughout the scripted schedule")] public string Key { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/AddPlaylistRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ContentPlaylist.cs similarity index 92% rename from ErsatzTV.Core/Api/ScriptedPlayout/AddPlaylistRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ContentPlaylist.cs index 5dd419ece..6bf668691 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/AddPlaylistRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ContentPlaylist.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record AddPlaylistRequestModel +public record ContentPlaylist { [Description("Unique name used to reference this content throughout the scripted schedule")] public string Key { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/AddSearchQueryRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ContentSearch.cs similarity index 81% rename from ErsatzTV.Core/Api/ScriptedPlayout/AddSearchQueryRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ContentSearch.cs index 4428466a6..82f0b890e 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/AddSearchQueryRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ContentSearch.cs @@ -1,6 +1,6 @@ namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record AddSearchQueryRequestModel +public record ContentSearch { public string Key { get; set; } public string Query { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/AddShowRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ContentShow.cs similarity index 93% rename from ErsatzTV.Core/Api/ScriptedPlayout/AddShowRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ContentShow.cs index 3a3f4510b..887b2e1bd 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/AddShowRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ContentShow.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record AddShowRequestModel +public record ContentShow { [Description("Unique name used to reference this content throughout the scripted schedule")] public string Key { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/AddSmartCollectionRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ContentSmartCollection.cs similarity index 74% rename from ErsatzTV.Core/Api/ScriptedPlayout/AddSmartCollectionRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ContentSmartCollection.cs index de1fd88af..1e95aeb3f 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/AddSmartCollectionRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ContentSmartCollection.cs @@ -1,8 +1,10 @@ using System.ComponentModel; +using System.Diagnostics.CodeAnalysis; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record AddSmartCollectionRequestModel +[SuppressMessage("Naming", "CA1711:Identifiers should not have incorrect suffix")] +public record ContentSmartCollection { [Description("Unique name used to reference this content throughout the scripted schedule")] public string Key { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/GraphicsOffRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ControlGraphicsOff.cs similarity index 87% rename from ErsatzTV.Core/Api/ScriptedPlayout/GraphicsOffRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ControlGraphicsOff.cs index 36a20c380..fc6ce68a6 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/GraphicsOffRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ControlGraphicsOff.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record GraphicsOffRequestModel +public record ControlGraphicsOff { [Description("A list of graphics elements to turn off. All graphics elements will be turned off if this list is null or empty")] public List Graphics { get; set; } = []; diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/GraphicsOnRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ControlGraphicsOn.cs similarity index 87% rename from ErsatzTV.Core/Api/ScriptedPlayout/GraphicsOnRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ControlGraphicsOn.cs index b0a96b9bd..023a0b772 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/GraphicsOnRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ControlGraphicsOn.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record GraphicsOnRequestModel +public record ControlGraphicsOn { [Description("A list of graphics elements to turn on.")] public List Graphics { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/SkipItemsRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ControlSkipItems.cs similarity index 87% rename from ErsatzTV.Core/Api/ScriptedPlayout/SkipItemsRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ControlSkipItems.cs index 280b73c4c..8486d6297 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/SkipItemsRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ControlSkipItems.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record SkipItemsRequestModel +public record ControlSkipItems { [Description("The 'key' for the content")] public string Content { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/SkipToItemRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ControlSkipToItem.cs similarity index 89% rename from ErsatzTV.Core/Api/ScriptedPlayout/SkipToItemRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ControlSkipToItem.cs index 21aa8e25c..c4e167af3 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/SkipToItemRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ControlSkipToItem.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record SkipToItemRequestModel +public record ControlSkipToItem { [Description("The 'key' for the content")] public string Content { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/StartEpgGroupRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ControlStartEpgGroup.cs similarity index 85% rename from ErsatzTV.Core/Api/ScriptedPlayout/StartEpgGroupRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ControlStartEpgGroup.cs index 3d67217c3..a0ba77a2c 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/StartEpgGroupRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ControlStartEpgGroup.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record StartEpgGroupRequestModel +public record ControlStartEpgGroup { [Description("When true, will make a new EPG group. When false, will continue the existing EPG group.")] public bool Advance { get; set; } = true; diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/WaitUntilRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ControlWaitUntil.cs similarity index 93% rename from ErsatzTV.Core/Api/ScriptedPlayout/WaitUntilRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ControlWaitUntil.cs index 86f427ad2..8330903bc 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/WaitUntilRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ControlWaitUntil.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record WaitUntilRequestModel +public record ControlWaitUntil { [Description("The time of day to wait (insert unscheduled time) until")] public string When { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/WaitUntilExactRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ControlWaitUntilExact.cs similarity index 89% rename from ErsatzTV.Core/Api/ScriptedPlayout/WaitUntilExactRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ControlWaitUntilExact.cs index a508a92c0..be2f69ffc 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/WaitUntilExactRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ControlWaitUntilExact.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record WaitUntilExactRequestModel +public record ControlWaitUntilExact { [Description("The time to wait (insert unscheduled time) until")] public DateTimeOffset When { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/WatermarkOffRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ControlWatermarkOff.cs similarity index 87% rename from ErsatzTV.Core/Api/ScriptedPlayout/WatermarkOffRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ControlWatermarkOff.cs index a26c69f34..80d52d5f4 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/WatermarkOffRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ControlWatermarkOff.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record WatermarkOffRequestModel +public record ControlWatermarkOff { [Description("A list of existing watermark names to turn off. All (scripted) watermarks will be turned off if this list is null or empty.")] public List Watermark { get; set; } = []; diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/WatermarkOnRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/ControlWatermarkOn.cs similarity index 83% rename from ErsatzTV.Core/Api/ScriptedPlayout/WatermarkOnRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/ControlWatermarkOn.cs index 4e2a3dfb5..d978e111c 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/WatermarkOnRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/ControlWatermarkOn.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record WatermarkOnRequestModel +public record ControlWatermarkOn { [Description("A list of existing watermark names to turn on")] public List Watermark { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/PeekItemResponseModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/PeekItemDuration.cs similarity index 85% rename from ErsatzTV.Core/Api/ScriptedPlayout/PeekItemResponseModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/PeekItemDuration.cs index e65132061..923695b96 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/PeekItemResponseModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/PeekItemDuration.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public class PeekItemResponseModel +public class PeekItemDuration { public string Content { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/ContextResponseModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/PlayoutContext.cs similarity index 93% rename from ErsatzTV.Core/Api/ScriptedPlayout/ContextResponseModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/PlayoutContext.cs index 4c27273f6..9e06383d0 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/ContextResponseModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/PlayoutContext.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record ContextResponseModel +public record PlayoutContext { [Description("The current time of the playout build")] public DateTimeOffset CurrentTime { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/AddCountRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/PlayoutCount.cs similarity index 93% rename from ErsatzTV.Core/Api/ScriptedPlayout/AddCountRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/PlayoutCount.cs index b279cc590..a058afef3 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/AddCountRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/PlayoutCount.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record AddCountRequestModel +public record PlayoutCount { [Description("The 'key' for the content that should be added")] public string Content { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/AddDurationRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/PlayoutDuration.cs similarity index 97% rename from ErsatzTV.Core/Api/ScriptedPlayout/AddDurationRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/PlayoutDuration.cs index 7b0aa438b..73e8b9d93 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/AddDurationRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/PlayoutDuration.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record AddDurationRequestModel +public record PlayoutDuration { [Description("The 'key' for the content that should be added")] public string Content { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/PadToNextRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/PlayoutPadToNext.cs similarity index 97% rename from ErsatzTV.Core/Api/ScriptedPlayout/PadToNextRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/PlayoutPadToNext.cs index 2115ebf9f..e83385a0c 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/PadToNextRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/PlayoutPadToNext.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record PadToNextRequestModel +public record PlayoutPadToNext { [Description("The 'key' for the content that should be added")] public string Content { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/PadUntilRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/PlayoutPadUntil.cs similarity index 98% rename from ErsatzTV.Core/Api/ScriptedPlayout/PadUntilRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/PlayoutPadUntil.cs index f9643c863..169f9e613 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/PadUntilRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/PlayoutPadUntil.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record PadUntilRequestModel +public record PlayoutPadUntil { [Description("The 'key' for the content that should be added")] public string Content { get; set; } diff --git a/ErsatzTV.Core/Api/ScriptedPlayout/PadUntilExactRequestModel.cs b/ErsatzTV.Core/Api/ScriptedPlayout/PlayoutPadUntilExact.cs similarity index 97% rename from ErsatzTV.Core/Api/ScriptedPlayout/PadUntilExactRequestModel.cs rename to ErsatzTV.Core/Api/ScriptedPlayout/PlayoutPadUntilExact.cs index e037c90b9..1f57a14f6 100644 --- a/ErsatzTV.Core/Api/ScriptedPlayout/PadUntilExactRequestModel.cs +++ b/ErsatzTV.Core/Api/ScriptedPlayout/PlayoutPadUntilExact.cs @@ -2,7 +2,7 @@ using System.ComponentModel; namespace ErsatzTV.Core.Api.ScriptedPlayout; -public record PadUntilExactRequestModel +public record PlayoutPadUntilExact { [Description("The 'key' for the content that should be added")] public string Content { get; set; } diff --git a/ErsatzTV/Controllers/Api/ScriptedScheduleController.cs b/ErsatzTV/Controllers/Api/ScriptedScheduleController.cs index 191bffc3f..a3b21e0df 100644 --- a/ErsatzTV/Controllers/Api/ScriptedScheduleController.cs +++ b/ErsatzTV/Controllers/Api/ScriptedScheduleController.cs @@ -15,7 +15,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpGet("context", Name = "GetContext")] [Tags("Scripted Metadata")] [EndpointSummary("Get the current context")] - public ActionResult GetContext([FromRoute] Guid buildId) + public ActionResult GetContext([FromRoute] Guid buildId) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -33,7 +33,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [FromRoute] Guid buildId, [FromBody] - AddCollectionRequestModel request, + ContentCollection request, CancellationToken cancellationToken) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); @@ -54,7 +54,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("add_marathon", Name = "AddMarathon")] [Tags("Scripted Content")] [EndpointSummary("Add a marathon")] - public async Task AddMarathon([FromRoute] Guid buildId, [FromBody] AddMarathonRequestModel request) + public async Task AddMarathon([FromRoute] Guid buildId, [FromBody] ContentMarathon request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -85,7 +85,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [FromRoute] Guid buildId, [FromBody] - AddMultiCollectionRequestModel request, + ContentMultiCollection request, CancellationToken cancellationToken) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); @@ -110,7 +110,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [FromRoute] Guid buildId, [FromBody] - AddPlaylistRequestModel request, + ContentPlaylist request, CancellationToken cancellationToken) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); @@ -130,7 +130,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [FromRoute] Guid buildId, [FromBody] - AddSearchQueryRequestModel request, + ContentSearch request, CancellationToken cancellationToken) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); @@ -155,7 +155,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [FromRoute] Guid buildId, [FromBody] - AddSmartCollectionRequestModel request, + ContentSmartCollection request, CancellationToken cancellationToken) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); @@ -180,7 +180,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [FromRoute] Guid buildId, [FromBody] - AddShowRequestModel request, + ContentShow request, CancellationToken cancellationToken) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); @@ -201,7 +201,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("add_all", Name = "AddAll")] [Tags("Scripted Scheduling")] [EndpointSummary("Add all content")] - public ActionResult AddAll([FromRoute] Guid buildId, [FromBody] AddAllRequestModel request) + public ActionResult AddAll([FromRoute] Guid buildId, [FromBody] ContentAll request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -222,11 +222,11 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("add_count", Name = "AddCount")] [Tags("Scripted Scheduling")] [EndpointSummary("Add a specific number of content items")] - public ActionResult AddCount( + public ActionResult AddCount( [FromRoute] Guid buildId, [FromBody] - AddCountRequestModel request) + PlayoutCount request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -252,11 +252,11 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("add_duration", Name = "AddDuration")] [Tags("Scripted Scheduling")] [EndpointSummary("Add content for a specific duration")] - public ActionResult AddDuration( + public ActionResult AddDuration( [FromRoute] Guid buildId, [FromBody] - AddDurationRequestModel request) + PlayoutDuration request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -287,9 +287,9 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("pad_to_next", Name = "PadToNext")] [Tags("Scripted Scheduling")] [EndpointSummary("Add content until a specific minutes interval")] - public ActionResult PadToNext( + public ActionResult PadToNext( [FromRoute] Guid buildId, - [FromBody] PadToNextRequestModel request) + [FromBody] PlayoutPadToNext request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -320,9 +320,9 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("pad_until", Name = "PadUntil")] [Tags("Scripted Scheduling")] [EndpointSummary("Add content until a specified time of day")] - public ActionResult PadUntil( + public ActionResult PadUntil( [FromRoute] Guid buildId, - [FromBody] PadUntilRequestModel request) + [FromBody] PlayoutPadUntil request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -354,11 +354,11 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("pad_until_exact", Name = "PadUntilExact")] [Tags("Scripted Scheduling")] [EndpointSummary("Add content until an exact time")] - public ActionResult PadUntilExact( + public ActionResult PadUntilExact( [FromRoute] Guid buildId, [FromBody] - PadUntilExactRequestModel request) + PlayoutPadUntilExact request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -389,7 +389,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpGet("peek_next/{content}", Name="PeekNext")] [Tags("Scripted Scheduling")] [EndpointSummary("Peek the next content item")] - public ActionResult PeekNext(Guid buildId, string content) + public ActionResult PeekNext(Guid buildId, string content) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -400,7 +400,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP Option maybeMediaItem = engine.PeekNext(content); foreach (var mediaItem in maybeMediaItem) { - return new PeekItemResponseModel + return new PeekItemDuration { Content = content, Milliseconds = (long)engine.DurationForMediaItem(mediaItem).TotalMilliseconds @@ -413,7 +413,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("start_epg_group", Name = "StartEpgGroup")] [Tags("Scripted Control")] [EndpointSummary("Start an EPG group")] - public IActionResult StartEpgGroup([FromRoute] Guid buildId, [FromBody] StartEpgGroupRequestModel request) + public IActionResult StartEpgGroup([FromRoute] Guid buildId, [FromBody] ControlStartEpgGroup request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -447,7 +447,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [FromRoute] Guid buildId, [FromBody] - GraphicsOnRequestModel request, + ControlGraphicsOn request, CancellationToken cancellationToken = default) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); @@ -467,7 +467,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [FromRoute] Guid buildId, [FromBody] - GraphicsOffRequestModel request, + ControlGraphicsOff request, CancellationToken cancellationToken = default) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); @@ -483,7 +483,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("watermark_on", Name = "WatermarkOn")] [Tags("Scripted Control")] [EndpointSummary("Turn on watermarks")] - public async Task WatermarkOn([FromRoute] Guid buildId, [FromBody] WatermarkOnRequestModel request) + public async Task WatermarkOn([FromRoute] Guid buildId, [FromBody] ControlWatermarkOn request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -498,7 +498,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("watermark_off", Name = "WatermarkOff")] [Tags("Scripted Control")] [EndpointSummary("Turn off watermarks")] - public async Task WatermarkOff([FromRoute] Guid buildId, [FromBody] WatermarkOffRequestModel request) + public async Task WatermarkOff([FromRoute] Guid buildId, [FromBody] ControlWatermarkOff request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -513,7 +513,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("skip_items", Name = "SkipItems")] [Tags("Scripted Control")] [EndpointSummary("Skip a specific number of items")] - public IActionResult SkipItems([FromRoute] Guid buildId, [FromBody] SkipItemsRequestModel request) + public IActionResult SkipItems([FromRoute] Guid buildId, [FromBody] ControlSkipItems request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -528,7 +528,7 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("skip_to_item", Name = "SkipToItem")] [Tags("Scripted Control")] [EndpointSummary("Skip to a specific episode")] - public IActionResult SkipToItem([FromRoute] Guid buildId, [FromBody] SkipToItemRequestModel request) + public IActionResult SkipToItem([FromRoute] Guid buildId, [FromBody] ControlSkipToItem request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -543,11 +543,11 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("wait_until_exact", Name = "WaitUntilExact")] [Tags("Scripted Control")] [EndpointSummary("Wait until an exact time")] - public ActionResult WaitUntilExact( + public ActionResult WaitUntilExact( [FromRoute] Guid buildId, [FromBody] - WaitUntilExactRequestModel request) + ControlWaitUntilExact request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -563,11 +563,11 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP [HttpPost("wait_until", Name = "WaitUntil")] [Tags("Scripted Control")] [EndpointSummary("Wait until the specified time of day")] - public ActionResult WaitUntilTime( + public ActionResult WaitUntilTime( [FromRoute] Guid buildId, [FromBody] - WaitUntilRequestModel request) + ControlWaitUntil request) { ISchedulingEngine engine = scriptedPlayoutBuilderService.GetEngine(buildId); if (engine == null) @@ -583,12 +583,12 @@ public class ScriptedScheduleController(IScriptedPlayoutBuilderService scriptedP return GetContextInternal(engine); } - private ActionResult GetContextInternal(ISchedulingEngine engine) + private ActionResult GetContextInternal(ISchedulingEngine engine) { try { var state = engine.GetState(); - var responseModel = new ContextResponseModel + var responseModel = new PlayoutContext { CurrentTime = state.CurrentTime, StartTime = state.Start, diff --git a/ErsatzTV/wwwroot/openapi/scripted-schedule-tagged.json b/ErsatzTV/wwwroot/openapi/scripted-schedule-tagged.json index 2a450fcd6..8606796d8 100644 --- a/ErsatzTV/wwwroot/openapi/scripted-schedule-tagged.json +++ b/ErsatzTV/wwwroot/openapi/scripted-schedule-tagged.json @@ -29,17 +29,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -69,22 +69,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddCollectionRequestModel" + "$ref": "#/components/schemas/ContentCollection" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddCollectionRequestModel" + "$ref": "#/components/schemas/ContentCollection" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddCollectionRequestModel" + "$ref": "#/components/schemas/ContentCollection" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddCollectionRequestModel" + "$ref": "#/components/schemas/ContentCollection" } } }, @@ -119,22 +119,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddMarathonRequestModel" + "$ref": "#/components/schemas/ContentMarathon" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddMarathonRequestModel" + "$ref": "#/components/schemas/ContentMarathon" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddMarathonRequestModel" + "$ref": "#/components/schemas/ContentMarathon" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddMarathonRequestModel" + "$ref": "#/components/schemas/ContentMarathon" } } }, @@ -169,22 +169,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddMultiCollectionRequestModel" + "$ref": "#/components/schemas/ContentMultiCollection" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddMultiCollectionRequestModel" + "$ref": "#/components/schemas/ContentMultiCollection" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddMultiCollectionRequestModel" + "$ref": "#/components/schemas/ContentMultiCollection" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddMultiCollectionRequestModel" + "$ref": "#/components/schemas/ContentMultiCollection" } } }, @@ -219,22 +219,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddPlaylistRequestModel" + "$ref": "#/components/schemas/ContentPlaylist" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddPlaylistRequestModel" + "$ref": "#/components/schemas/ContentPlaylist" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddPlaylistRequestModel" + "$ref": "#/components/schemas/ContentPlaylist" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddPlaylistRequestModel" + "$ref": "#/components/schemas/ContentPlaylist" } } }, @@ -269,22 +269,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddSearchQueryRequestModel" + "$ref": "#/components/schemas/ContentSearch" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddSearchQueryRequestModel" + "$ref": "#/components/schemas/ContentSearch" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddSearchQueryRequestModel" + "$ref": "#/components/schemas/ContentSearch" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddSearchQueryRequestModel" + "$ref": "#/components/schemas/ContentSearch" } } }, @@ -319,22 +319,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddSmartCollectionRequestModel" + "$ref": "#/components/schemas/ContentSmartCollection" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddSmartCollectionRequestModel" + "$ref": "#/components/schemas/ContentSmartCollection" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddSmartCollectionRequestModel" + "$ref": "#/components/schemas/ContentSmartCollection" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddSmartCollectionRequestModel" + "$ref": "#/components/schemas/ContentSmartCollection" } } }, @@ -369,22 +369,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddShowRequestModel" + "$ref": "#/components/schemas/ContentShow" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddShowRequestModel" + "$ref": "#/components/schemas/ContentShow" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddShowRequestModel" + "$ref": "#/components/schemas/ContentShow" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddShowRequestModel" + "$ref": "#/components/schemas/ContentShow" } } }, @@ -419,22 +419,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddAllRequestModel" + "$ref": "#/components/schemas/ContentAll" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddAllRequestModel" + "$ref": "#/components/schemas/ContentAll" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddAllRequestModel" + "$ref": "#/components/schemas/ContentAll" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddAllRequestModel" + "$ref": "#/components/schemas/ContentAll" } } }, @@ -446,17 +446,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -486,22 +486,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddCountRequestModel" + "$ref": "#/components/schemas/PlayoutCount" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddCountRequestModel" + "$ref": "#/components/schemas/PlayoutCount" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddCountRequestModel" + "$ref": "#/components/schemas/PlayoutCount" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddCountRequestModel" + "$ref": "#/components/schemas/PlayoutCount" } } }, @@ -513,17 +513,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -553,22 +553,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddDurationRequestModel" + "$ref": "#/components/schemas/PlayoutDuration" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddDurationRequestModel" + "$ref": "#/components/schemas/PlayoutDuration" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddDurationRequestModel" + "$ref": "#/components/schemas/PlayoutDuration" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddDurationRequestModel" + "$ref": "#/components/schemas/PlayoutDuration" } } }, @@ -580,17 +580,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -620,22 +620,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/PadToNextRequestModel" + "$ref": "#/components/schemas/PlayoutPadToNext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/PadToNextRequestModel" + "$ref": "#/components/schemas/PlayoutPadToNext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PadToNextRequestModel" + "$ref": "#/components/schemas/PlayoutPadToNext" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/PadToNextRequestModel" + "$ref": "#/components/schemas/PlayoutPadToNext" } } }, @@ -647,17 +647,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -687,22 +687,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/PadUntilRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntil" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/PadUntilRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntil" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PadUntilRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntil" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/PadUntilRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntil" } } }, @@ -714,17 +714,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -754,22 +754,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/PadUntilExactRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntilExact" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/PadUntilExactRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntilExact" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PadUntilExactRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntilExact" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/PadUntilExactRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntilExact" } } }, @@ -781,17 +781,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -831,17 +831,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/PeekItemResponseModel" + "$ref": "#/components/schemas/PeekItemDuration" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/PeekItemResponseModel" + "$ref": "#/components/schemas/PeekItemDuration" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PeekItemResponseModel" + "$ref": "#/components/schemas/PeekItemDuration" } } } @@ -871,22 +871,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/StartEpgGroupRequestModel" + "$ref": "#/components/schemas/ControlStartEpgGroup" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/StartEpgGroupRequestModel" + "$ref": "#/components/schemas/ControlStartEpgGroup" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/StartEpgGroupRequestModel" + "$ref": "#/components/schemas/ControlStartEpgGroup" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/StartEpgGroupRequestModel" + "$ref": "#/components/schemas/ControlStartEpgGroup" } } }, @@ -946,22 +946,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/GraphicsOnRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOn" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/GraphicsOnRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOn" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/GraphicsOnRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOn" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/GraphicsOnRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOn" } } }, @@ -996,22 +996,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/GraphicsOffRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOff" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/GraphicsOffRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOff" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/GraphicsOffRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOff" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/GraphicsOffRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOff" } } }, @@ -1046,22 +1046,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/WatermarkOnRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOn" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/WatermarkOnRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOn" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/WatermarkOnRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOn" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/WatermarkOnRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOn" } } }, @@ -1096,22 +1096,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/WatermarkOffRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOff" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/WatermarkOffRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOff" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/WatermarkOffRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOff" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/WatermarkOffRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOff" } } }, @@ -1146,22 +1146,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/SkipItemsRequestModel" + "$ref": "#/components/schemas/ControlSkipItems" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/SkipItemsRequestModel" + "$ref": "#/components/schemas/ControlSkipItems" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/SkipItemsRequestModel" + "$ref": "#/components/schemas/ControlSkipItems" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/SkipItemsRequestModel" + "$ref": "#/components/schemas/ControlSkipItems" } } }, @@ -1196,22 +1196,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/SkipToItemRequestModel" + "$ref": "#/components/schemas/ControlSkipToItem" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/SkipToItemRequestModel" + "$ref": "#/components/schemas/ControlSkipToItem" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/SkipToItemRequestModel" + "$ref": "#/components/schemas/ControlSkipToItem" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/SkipToItemRequestModel" + "$ref": "#/components/schemas/ControlSkipToItem" } } }, @@ -1246,22 +1246,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/WaitUntilExactRequestModel" + "$ref": "#/components/schemas/ControlWaitUntilExact" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/WaitUntilExactRequestModel" + "$ref": "#/components/schemas/ControlWaitUntilExact" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/WaitUntilExactRequestModel" + "$ref": "#/components/schemas/ControlWaitUntilExact" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/WaitUntilExactRequestModel" + "$ref": "#/components/schemas/ControlWaitUntilExact" } } }, @@ -1273,17 +1273,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -1313,22 +1313,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/WaitUntilRequestModel" + "$ref": "#/components/schemas/ControlWaitUntil" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/WaitUntilRequestModel" + "$ref": "#/components/schemas/ControlWaitUntil" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/WaitUntilRequestModel" + "$ref": "#/components/schemas/ControlWaitUntil" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/WaitUntilRequestModel" + "$ref": "#/components/schemas/ControlWaitUntil" } } }, @@ -1340,17 +1340,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -1361,7 +1361,7 @@ }, "components": { "schemas": { - "AddAllRequestModel": { + "ContentAll": { "type": "object", "properties": { "content": { @@ -1384,7 +1384,7 @@ } } }, - "AddCollectionRequestModel": { + "ContentCollection": { "type": "object", "properties": { "key": { @@ -1404,84 +1404,7 @@ } } }, - "AddCountRequestModel": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "The 'key' for the content that should be added", - "nullable": true - }, - "count": { - "type": "integer", - "format": "int32" - }, - "fillerKind": { - "type": "string", - "description": "Flags this content as filler, which influences EPG grouping", - "nullable": true - }, - "customTitle": { - "type": "string", - "description": "Overrides the title used in the EPG", - "nullable": true - }, - "disableWatermarks": { - "type": "boolean" - } - } - }, - "AddDurationRequestModel": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "The 'key' for the content that should be added", - "nullable": true - }, - "duration": { - "type": "string", - "description": "The amount of time to add using the referenced content", - "nullable": true - }, - "fallback": { - "type": "string", - "description": "The 'key' for the content that should be used to fill any remaining unscheduled time. One item will be selected to be looped and trimmed to exactly fit.", - "nullable": true - }, - "trim": { - "type": "boolean", - "description": "Controls whether content will be trimmed to exactly fit the specified duration" - }, - "discardAttempts": { - "type": "integer", - "description": "When trim is false, this is the number of times to discard items from the collection to find something that fits in the remaining duration", - "format": "int32" - }, - "stopBeforeEnd": { - "type": "boolean", - "description": "When false, allows content to run over the specified duration before completing this request" - }, - "offlineTail": { - "type": "boolean", - "description": "When true, afer scheduling everything that will fit, any remaining time from the specified duration will be unscheduled (offline)" - }, - "fillerKind": { - "type": "string", - "description": "Flags this content as filler, which influences EPG grouping", - "nullable": true - }, - "customTitle": { - "type": "string", - "description": "Overrides the title used in the EPG", - "nullable": true - }, - "disableWatermarks": { - "type": "boolean" - } - } - }, - "AddMarathonRequestModel": { + "ContentMarathon": { "type": "object", "properties": { "key": { @@ -1528,7 +1451,7 @@ } } }, - "AddMultiCollectionRequestModel": { + "ContentMultiCollection": { "type": "object", "properties": { "key": { @@ -1548,7 +1471,7 @@ } } }, - "AddPlaylistRequestModel": { + "ContentPlaylist": { "type": "object", "properties": { "key": { @@ -1568,7 +1491,7 @@ } } }, - "AddSearchQueryRequestModel": { + "ContentSearch": { "type": "object", "properties": { "key": { @@ -1585,7 +1508,7 @@ } } }, - "AddShowRequestModel": { + "ContentShow": { "type": "object", "properties": { "key": { @@ -1608,7 +1531,7 @@ } } }, - "AddSmartCollectionRequestModel": { + "ContentSmartCollection": { "type": "object", "properties": { "key": { @@ -1628,64 +1551,180 @@ } } }, - "ContextResponseModel": { + "ControlGraphicsOff": { "type": "object", "properties": { - "currentTime": { + "graphics": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of graphics elements to turn off. All graphics elements will be turned off if this list is null or empty", + "nullable": true + } + } + }, + "ControlGraphicsOn": { + "type": "object", + "properties": { + "graphics": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of graphics elements to turn on.", + "nullable": true + }, + "variables": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + } + }, + "ControlSkipItems": { + "type": "object", + "properties": { + "content": { "type": "string", - "description": "The current time of the playout build", - "format": "date-time" + "description": "The 'key' for the content", + "nullable": true }, - "startTime": { + "count": { + "type": "integer", + "description": "The number of items to skip", + "format": "int32" + } + } + }, + "ControlSkipToItem": { + "type": "object", + "properties": { + "content": { "type": "string", - "description": "The start time of the playout build", - "format": "date-time" + "description": "The 'key' for the content", + "nullable": true }, - "finishTime": { + "season": { + "type": "integer", + "description": "The season number", + "format": "int32" + }, + "episode": { + "type": "integer", + "description": "The episode number", + "format": "int32" + } + } + }, + "ControlStartEpgGroup": { + "type": "object", + "properties": { + "advance": { + "type": "boolean", + "description": "When true, will make a new EPG group. When false, will continue the existing EPG group." + } + } + }, + "ControlWaitUntil": { + "type": "object", + "properties": { + "when": { "type": "string", - "description": "The finish time of the playout build", + "description": "The time of day to wait (insert unscheduled time) until", + "nullable": true + }, + "tomorrow": { + "type": "boolean", + "description": "When true, will wait until the specified time tomorrow if it has already passed today." + }, + "rewindOnReset": { + "type": "boolean", + "description": "When true, the current time of the playout build is allowed to move backward when the playout is reset." + } + } + }, + "ControlWaitUntilExact": { + "type": "object", + "properties": { + "when": { + "type": "string", + "description": "The time to wait (insert unscheduled time) until", "format": "date-time" }, - "isDone": { + "rewindOnReset": { "type": "boolean", - "description": "Indicates whether the current playout build is complete" + "description": "When true, the current time of the playout build is allowed to move backward when the playout is reset." } } }, - "GraphicsOffRequestModel": { + "ControlWatermarkOff": { "type": "object", "properties": { - "graphics": { + "watermark": { "type": "array", "items": { "type": "string" }, - "description": "A list of graphics elements to turn off. All graphics elements will be turned off if this list is null or empty", + "description": "A list of existing watermark names to turn off. All (scripted) watermarks will be turned off if this list is null or empty.", "nullable": true } } }, - "GraphicsOnRequestModel": { + "ControlWatermarkOn": { "type": "object", "properties": { - "graphics": { + "watermark": { "type": "array", "items": { "type": "string" }, - "description": "A list of graphics elements to turn on.", + "description": "A list of existing watermark names to turn on", "nullable": true - }, - "variables": { - "type": "object", - "additionalProperties": { - "type": "string" - }, + } + } + }, + "PeekItemDuration": { + "type": "object", + "properties": { + "content": { + "type": "string", "nullable": true + }, + "milliseconds": { + "type": "integer", + "description": "Duration in milliseconds", + "format": "int64" + } + } + }, + "PlayoutContext": { + "type": "object", + "properties": { + "currentTime": { + "type": "string", + "description": "The current time of the playout build", + "format": "date-time" + }, + "startTime": { + "type": "string", + "description": "The start time of the playout build", + "format": "date-time" + }, + "finishTime": { + "type": "string", + "description": "The finish time of the playout build", + "format": "date-time" + }, + "isDone": { + "type": "boolean", + "description": "Indicates whether the current playout build is complete" } } }, - "PadToNextRequestModel": { + "PlayoutCount": { "type": "object", "properties": { "content": { @@ -1693,11 +1732,38 @@ "description": "The 'key' for the content that should be added", "nullable": true }, - "minutes": { + "count": { "type": "integer", - "description": "The minutes interval", "format": "int32" }, + "fillerKind": { + "type": "string", + "description": "Flags this content as filler, which influences EPG grouping", + "nullable": true + }, + "customTitle": { + "type": "string", + "description": "Overrides the title used in the EPG", + "nullable": true + }, + "disableWatermarks": { + "type": "boolean" + } + } + }, + "PlayoutDuration": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The 'key' for the content that should be added", + "nullable": true + }, + "duration": { + "type": "string", + "description": "The amount of time to add using the referenced content", + "nullable": true + }, "fallback": { "type": "string", "description": "The 'key' for the content that should be used to fill any remaining unscheduled time. One item will be selected to be looped and trimmed to exactly fit.", @@ -1705,20 +1771,20 @@ }, "trim": { "type": "boolean", - "description": "Controls whether content will be trimmed to exactly fit the specified interval" + "description": "Controls whether content will be trimmed to exactly fit the specified duration" }, "discardAttempts": { "type": "integer", - "description": "When trim is false, this is the number of times to discard items from the collection to find something that fits in the remaining interval", + "description": "When trim is false, this is the number of times to discard items from the collection to find something that fits in the remaining duration", "format": "int32" }, "stopBeforeEnd": { "type": "boolean", - "description": "When false, allows content to run over the specified interval before completing this request" + "description": "When false, allows content to run over the specified duration before completing this request" }, "offlineTail": { "type": "boolean", - "description": "When true, afer scheduling everything that will fit, any remaining time from the specified interval will be unscheduled (offline)" + "description": "When true, afer scheduling everything that will fit, any remaining time from the specified duration will be unscheduled (offline)" }, "fillerKind": { "type": "string", @@ -1735,7 +1801,7 @@ } } }, - "PadUntilExactRequestModel": { + "PlayoutPadToNext": { "type": "object", "properties": { "content": { @@ -1743,10 +1809,10 @@ "description": "The 'key' for the content that should be added", "nullable": true }, - "when": { - "type": "string", - "description": "The time content should be added until", - "format": "date-time" + "minutes": { + "type": "integer", + "description": "The minutes interval", + "format": "int32" }, "fallback": { "type": "string", @@ -1755,16 +1821,16 @@ }, "trim": { "type": "boolean", - "description": "Controls whether content will be trimmed to exactly fit until the specified time" + "description": "Controls whether content will be trimmed to exactly fit the specified interval" }, "discardAttempts": { "type": "integer", - "description": "When trim is false, this is the number of times to discard items from the collection to find something that fits until the specified time", + "description": "When trim is false, this is the number of times to discard items from the collection to find something that fits in the remaining interval", "format": "int32" }, "stopBeforeEnd": { "type": "boolean", - "description": "When false, allows content to run over the specified the specified time before completing this request" + "description": "When false, allows content to run over the specified interval before completing this request" }, "offlineTail": { "type": "boolean", @@ -1785,7 +1851,7 @@ } } }, - "PadUntilRequestModel": { + "PlayoutPadUntil": { "type": "object", "properties": { "content": { @@ -1839,119 +1905,53 @@ } } }, - "PeekItemResponseModel": { + "PlayoutPadUntilExact": { "type": "object", "properties": { "content": { "type": "string", + "description": "The 'key' for the content that should be added", "nullable": true }, - "milliseconds": { - "type": "integer", - "description": "Duration in milliseconds", - "format": "int64" - } - } - }, - "SkipItemsRequestModel": { - "type": "object", - "properties": { - "content": { + "when": { "type": "string", - "description": "The 'key' for the content", - "nullable": true + "description": "The time content should be added until", + "format": "date-time" }, - "count": { - "type": "integer", - "description": "The number of items to skip", - "format": "int32" - } - } - }, - "SkipToItemRequestModel": { - "type": "object", - "properties": { - "content": { + "fallback": { "type": "string", - "description": "The 'key' for the content", + "description": "The 'key' for the content that should be used to fill any remaining unscheduled time. One item will be selected to be looped and trimmed to exactly fit.", "nullable": true }, - "season": { - "type": "integer", - "description": "The season number", - "format": "int32" + "trim": { + "type": "boolean", + "description": "Controls whether content will be trimmed to exactly fit until the specified time" }, - "episode": { + "discardAttempts": { "type": "integer", - "description": "The episode number", + "description": "When trim is false, this is the number of times to discard items from the collection to find something that fits until the specified time", "format": "int32" - } - } - }, - "StartEpgGroupRequestModel": { - "type": "object", - "properties": { - "advance": { - "type": "boolean", - "description": "When true, will make a new EPG group. When false, will continue the existing EPG group." - } - } - }, - "WaitUntilExactRequestModel": { - "type": "object", - "properties": { - "when": { - "type": "string", - "description": "The time to wait (insert unscheduled time) until", - "format": "date-time" }, - "rewindOnReset": { + "stopBeforeEnd": { "type": "boolean", - "description": "When true, the current time of the playout build is allowed to move backward when the playout is reset." - } - } - }, - "WaitUntilRequestModel": { - "type": "object", - "properties": { - "when": { - "type": "string", - "description": "The time of day to wait (insert unscheduled time) until", - "nullable": true + "description": "When false, allows content to run over the specified the specified time before completing this request" }, - "tomorrow": { + "offlineTail": { "type": "boolean", - "description": "When true, will wait until the specified time tomorrow if it has already passed today." + "description": "When true, afer scheduling everything that will fit, any remaining time from the specified interval will be unscheduled (offline)" }, - "rewindOnReset": { - "type": "boolean", - "description": "When true, the current time of the playout build is allowed to move backward when the playout is reset." - } - } - }, - "WatermarkOffRequestModel": { - "type": "object", - "properties": { - "watermark": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of existing watermark names to turn off. All (scripted) watermarks will be turned off if this list is null or empty.", + "fillerKind": { + "type": "string", + "description": "Flags this content as filler, which influences EPG grouping", "nullable": true - } - } - }, - "WatermarkOnRequestModel": { - "type": "object", - "properties": { - "watermark": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of existing watermark names to turn on", + }, + "customTitle": { + "type": "string", + "description": "Overrides the title used in the EPG", "nullable": true + }, + "disableWatermarks": { + "type": "boolean" } } } diff --git a/ErsatzTV/wwwroot/openapi/scripted-schedule.json b/ErsatzTV/wwwroot/openapi/scripted-schedule.json index ab5876230..af3c4288e 100644 --- a/ErsatzTV/wwwroot/openapi/scripted-schedule.json +++ b/ErsatzTV/wwwroot/openapi/scripted-schedule.json @@ -29,17 +29,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -69,22 +69,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddCollectionRequestModel" + "$ref": "#/components/schemas/ContentCollection" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddCollectionRequestModel" + "$ref": "#/components/schemas/ContentCollection" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddCollectionRequestModel" + "$ref": "#/components/schemas/ContentCollection" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddCollectionRequestModel" + "$ref": "#/components/schemas/ContentCollection" } } }, @@ -119,22 +119,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddMarathonRequestModel" + "$ref": "#/components/schemas/ContentMarathon" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddMarathonRequestModel" + "$ref": "#/components/schemas/ContentMarathon" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddMarathonRequestModel" + "$ref": "#/components/schemas/ContentMarathon" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddMarathonRequestModel" + "$ref": "#/components/schemas/ContentMarathon" } } }, @@ -169,22 +169,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddMultiCollectionRequestModel" + "$ref": "#/components/schemas/ContentMultiCollection" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddMultiCollectionRequestModel" + "$ref": "#/components/schemas/ContentMultiCollection" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddMultiCollectionRequestModel" + "$ref": "#/components/schemas/ContentMultiCollection" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddMultiCollectionRequestModel" + "$ref": "#/components/schemas/ContentMultiCollection" } } }, @@ -219,22 +219,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddPlaylistRequestModel" + "$ref": "#/components/schemas/ContentPlaylist" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddPlaylistRequestModel" + "$ref": "#/components/schemas/ContentPlaylist" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddPlaylistRequestModel" + "$ref": "#/components/schemas/ContentPlaylist" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddPlaylistRequestModel" + "$ref": "#/components/schemas/ContentPlaylist" } } }, @@ -269,22 +269,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddSearchQueryRequestModel" + "$ref": "#/components/schemas/ContentSearch" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddSearchQueryRequestModel" + "$ref": "#/components/schemas/ContentSearch" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddSearchQueryRequestModel" + "$ref": "#/components/schemas/ContentSearch" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddSearchQueryRequestModel" + "$ref": "#/components/schemas/ContentSearch" } } }, @@ -319,22 +319,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddSmartCollectionRequestModel" + "$ref": "#/components/schemas/ContentSmartCollection" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddSmartCollectionRequestModel" + "$ref": "#/components/schemas/ContentSmartCollection" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddSmartCollectionRequestModel" + "$ref": "#/components/schemas/ContentSmartCollection" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddSmartCollectionRequestModel" + "$ref": "#/components/schemas/ContentSmartCollection" } } }, @@ -369,22 +369,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddShowRequestModel" + "$ref": "#/components/schemas/ContentShow" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddShowRequestModel" + "$ref": "#/components/schemas/ContentShow" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddShowRequestModel" + "$ref": "#/components/schemas/ContentShow" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddShowRequestModel" + "$ref": "#/components/schemas/ContentShow" } } }, @@ -419,22 +419,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddAllRequestModel" + "$ref": "#/components/schemas/ContentAll" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddAllRequestModel" + "$ref": "#/components/schemas/ContentAll" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddAllRequestModel" + "$ref": "#/components/schemas/ContentAll" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddAllRequestModel" + "$ref": "#/components/schemas/ContentAll" } } }, @@ -446,17 +446,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -486,22 +486,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddCountRequestModel" + "$ref": "#/components/schemas/PlayoutCount" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddCountRequestModel" + "$ref": "#/components/schemas/PlayoutCount" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddCountRequestModel" + "$ref": "#/components/schemas/PlayoutCount" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddCountRequestModel" + "$ref": "#/components/schemas/PlayoutCount" } } }, @@ -513,17 +513,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -553,22 +553,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/AddDurationRequestModel" + "$ref": "#/components/schemas/PlayoutDuration" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/AddDurationRequestModel" + "$ref": "#/components/schemas/PlayoutDuration" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/AddDurationRequestModel" + "$ref": "#/components/schemas/PlayoutDuration" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/AddDurationRequestModel" + "$ref": "#/components/schemas/PlayoutDuration" } } }, @@ -580,17 +580,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -620,22 +620,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/PadToNextRequestModel" + "$ref": "#/components/schemas/PlayoutPadToNext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/PadToNextRequestModel" + "$ref": "#/components/schemas/PlayoutPadToNext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PadToNextRequestModel" + "$ref": "#/components/schemas/PlayoutPadToNext" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/PadToNextRequestModel" + "$ref": "#/components/schemas/PlayoutPadToNext" } } }, @@ -647,17 +647,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -687,22 +687,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/PadUntilRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntil" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/PadUntilRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntil" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PadUntilRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntil" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/PadUntilRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntil" } } }, @@ -714,17 +714,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -754,22 +754,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/PadUntilExactRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntilExact" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/PadUntilExactRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntilExact" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PadUntilExactRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntilExact" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/PadUntilExactRequestModel" + "$ref": "#/components/schemas/PlayoutPadUntilExact" } } }, @@ -781,17 +781,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -831,17 +831,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/PeekItemResponseModel" + "$ref": "#/components/schemas/PeekItemDuration" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/PeekItemResponseModel" + "$ref": "#/components/schemas/PeekItemDuration" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/PeekItemResponseModel" + "$ref": "#/components/schemas/PeekItemDuration" } } } @@ -871,22 +871,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/StartEpgGroupRequestModel" + "$ref": "#/components/schemas/ControlStartEpgGroup" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/StartEpgGroupRequestModel" + "$ref": "#/components/schemas/ControlStartEpgGroup" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/StartEpgGroupRequestModel" + "$ref": "#/components/schemas/ControlStartEpgGroup" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/StartEpgGroupRequestModel" + "$ref": "#/components/schemas/ControlStartEpgGroup" } } }, @@ -946,22 +946,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/GraphicsOnRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOn" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/GraphicsOnRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOn" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/GraphicsOnRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOn" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/GraphicsOnRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOn" } } }, @@ -996,22 +996,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/GraphicsOffRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOff" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/GraphicsOffRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOff" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/GraphicsOffRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOff" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/GraphicsOffRequestModel" + "$ref": "#/components/schemas/ControlGraphicsOff" } } }, @@ -1046,22 +1046,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/WatermarkOnRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOn" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/WatermarkOnRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOn" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/WatermarkOnRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOn" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/WatermarkOnRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOn" } } }, @@ -1096,22 +1096,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/WatermarkOffRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOff" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/WatermarkOffRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOff" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/WatermarkOffRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOff" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/WatermarkOffRequestModel" + "$ref": "#/components/schemas/ControlWatermarkOff" } } }, @@ -1146,22 +1146,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/SkipItemsRequestModel" + "$ref": "#/components/schemas/ControlSkipItems" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/SkipItemsRequestModel" + "$ref": "#/components/schemas/ControlSkipItems" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/SkipItemsRequestModel" + "$ref": "#/components/schemas/ControlSkipItems" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/SkipItemsRequestModel" + "$ref": "#/components/schemas/ControlSkipItems" } } }, @@ -1196,22 +1196,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/SkipToItemRequestModel" + "$ref": "#/components/schemas/ControlSkipToItem" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/SkipToItemRequestModel" + "$ref": "#/components/schemas/ControlSkipToItem" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/SkipToItemRequestModel" + "$ref": "#/components/schemas/ControlSkipToItem" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/SkipToItemRequestModel" + "$ref": "#/components/schemas/ControlSkipToItem" } } }, @@ -1246,22 +1246,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/WaitUntilExactRequestModel" + "$ref": "#/components/schemas/ControlWaitUntilExact" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/WaitUntilExactRequestModel" + "$ref": "#/components/schemas/ControlWaitUntilExact" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/WaitUntilExactRequestModel" + "$ref": "#/components/schemas/ControlWaitUntilExact" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/WaitUntilExactRequestModel" + "$ref": "#/components/schemas/ControlWaitUntilExact" } } }, @@ -1273,17 +1273,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -1313,22 +1313,22 @@ "content": { "application/json-patch+json": { "schema": { - "$ref": "#/components/schemas/WaitUntilRequestModel" + "$ref": "#/components/schemas/ControlWaitUntil" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/WaitUntilRequestModel" + "$ref": "#/components/schemas/ControlWaitUntil" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/WaitUntilRequestModel" + "$ref": "#/components/schemas/ControlWaitUntil" } }, "application/*+json": { "schema": { - "$ref": "#/components/schemas/WaitUntilRequestModel" + "$ref": "#/components/schemas/ControlWaitUntil" } } }, @@ -1340,17 +1340,17 @@ "content": { "text/plain": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "application/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } }, "text/json": { "schema": { - "$ref": "#/components/schemas/ContextResponseModel" + "$ref": "#/components/schemas/PlayoutContext" } } } @@ -1361,7 +1361,7 @@ }, "components": { "schemas": { - "AddAllRequestModel": { + "ContentAll": { "type": "object", "properties": { "content": { @@ -1384,7 +1384,7 @@ } } }, - "AddCollectionRequestModel": { + "ContentCollection": { "type": "object", "properties": { "key": { @@ -1404,84 +1404,7 @@ } } }, - "AddCountRequestModel": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "The 'key' for the content that should be added", - "nullable": true - }, - "count": { - "type": "integer", - "format": "int32" - }, - "fillerKind": { - "type": "string", - "description": "Flags this content as filler, which influences EPG grouping", - "nullable": true - }, - "customTitle": { - "type": "string", - "description": "Overrides the title used in the EPG", - "nullable": true - }, - "disableWatermarks": { - "type": "boolean" - } - } - }, - "AddDurationRequestModel": { - "type": "object", - "properties": { - "content": { - "type": "string", - "description": "The 'key' for the content that should be added", - "nullable": true - }, - "duration": { - "type": "string", - "description": "The amount of time to add using the referenced content", - "nullable": true - }, - "fallback": { - "type": "string", - "description": "The 'key' for the content that should be used to fill any remaining unscheduled time. One item will be selected to be looped and trimmed to exactly fit.", - "nullable": true - }, - "trim": { - "type": "boolean", - "description": "Controls whether content will be trimmed to exactly fit the specified duration" - }, - "discardAttempts": { - "type": "integer", - "description": "When trim is false, this is the number of times to discard items from the collection to find something that fits in the remaining duration", - "format": "int32" - }, - "stopBeforeEnd": { - "type": "boolean", - "description": "When false, allows content to run over the specified duration before completing this request" - }, - "offlineTail": { - "type": "boolean", - "description": "When true, afer scheduling everything that will fit, any remaining time from the specified duration will be unscheduled (offline)" - }, - "fillerKind": { - "type": "string", - "description": "Flags this content as filler, which influences EPG grouping", - "nullable": true - }, - "customTitle": { - "type": "string", - "description": "Overrides the title used in the EPG", - "nullable": true - }, - "disableWatermarks": { - "type": "boolean" - } - } - }, - "AddMarathonRequestModel": { + "ContentMarathon": { "type": "object", "properties": { "key": { @@ -1528,7 +1451,7 @@ } } }, - "AddMultiCollectionRequestModel": { + "ContentMultiCollection": { "type": "object", "properties": { "key": { @@ -1548,7 +1471,7 @@ } } }, - "AddPlaylistRequestModel": { + "ContentPlaylist": { "type": "object", "properties": { "key": { @@ -1568,7 +1491,7 @@ } } }, - "AddSearchQueryRequestModel": { + "ContentSearch": { "type": "object", "properties": { "key": { @@ -1585,7 +1508,7 @@ } } }, - "AddShowRequestModel": { + "ContentShow": { "type": "object", "properties": { "key": { @@ -1608,7 +1531,7 @@ } } }, - "AddSmartCollectionRequestModel": { + "ContentSmartCollection": { "type": "object", "properties": { "key": { @@ -1628,64 +1551,180 @@ } } }, - "ContextResponseModel": { + "ControlGraphicsOff": { "type": "object", "properties": { - "currentTime": { + "graphics": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of graphics elements to turn off. All graphics elements will be turned off if this list is null or empty", + "nullable": true + } + } + }, + "ControlGraphicsOn": { + "type": "object", + "properties": { + "graphics": { + "type": "array", + "items": { + "type": "string" + }, + "description": "A list of graphics elements to turn on.", + "nullable": true + }, + "variables": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "nullable": true + } + } + }, + "ControlSkipItems": { + "type": "object", + "properties": { + "content": { "type": "string", - "description": "The current time of the playout build", - "format": "date-time" + "description": "The 'key' for the content", + "nullable": true }, - "startTime": { + "count": { + "type": "integer", + "description": "The number of items to skip", + "format": "int32" + } + } + }, + "ControlSkipToItem": { + "type": "object", + "properties": { + "content": { "type": "string", - "description": "The start time of the playout build", - "format": "date-time" + "description": "The 'key' for the content", + "nullable": true }, - "finishTime": { + "season": { + "type": "integer", + "description": "The season number", + "format": "int32" + }, + "episode": { + "type": "integer", + "description": "The episode number", + "format": "int32" + } + } + }, + "ControlStartEpgGroup": { + "type": "object", + "properties": { + "advance": { + "type": "boolean", + "description": "When true, will make a new EPG group. When false, will continue the existing EPG group." + } + } + }, + "ControlWaitUntil": { + "type": "object", + "properties": { + "when": { "type": "string", - "description": "The finish time of the playout build", + "description": "The time of day to wait (insert unscheduled time) until", + "nullable": true + }, + "tomorrow": { + "type": "boolean", + "description": "When true, will wait until the specified time tomorrow if it has already passed today." + }, + "rewindOnReset": { + "type": "boolean", + "description": "When true, the current time of the playout build is allowed to move backward when the playout is reset." + } + } + }, + "ControlWaitUntilExact": { + "type": "object", + "properties": { + "when": { + "type": "string", + "description": "The time to wait (insert unscheduled time) until", "format": "date-time" }, - "isDone": { + "rewindOnReset": { "type": "boolean", - "description": "Indicates whether the current playout build is complete" + "description": "When true, the current time of the playout build is allowed to move backward when the playout is reset." } } }, - "GraphicsOffRequestModel": { + "ControlWatermarkOff": { "type": "object", "properties": { - "graphics": { + "watermark": { "type": "array", "items": { "type": "string" }, - "description": "A list of graphics elements to turn off. All graphics elements will be turned off if this list is null or empty", + "description": "A list of existing watermark names to turn off. All (scripted) watermarks will be turned off if this list is null or empty.", "nullable": true } } }, - "GraphicsOnRequestModel": { + "ControlWatermarkOn": { "type": "object", "properties": { - "graphics": { + "watermark": { "type": "array", "items": { "type": "string" }, - "description": "A list of graphics elements to turn on.", + "description": "A list of existing watermark names to turn on", "nullable": true - }, - "variables": { - "type": "object", - "additionalProperties": { - "type": "string" - }, + } + } + }, + "PeekItemDuration": { + "type": "object", + "properties": { + "content": { + "type": "string", "nullable": true + }, + "milliseconds": { + "type": "integer", + "description": "Duration in milliseconds", + "format": "int64" + } + } + }, + "PlayoutContext": { + "type": "object", + "properties": { + "currentTime": { + "type": "string", + "description": "The current time of the playout build", + "format": "date-time" + }, + "startTime": { + "type": "string", + "description": "The start time of the playout build", + "format": "date-time" + }, + "finishTime": { + "type": "string", + "description": "The finish time of the playout build", + "format": "date-time" + }, + "isDone": { + "type": "boolean", + "description": "Indicates whether the current playout build is complete" } } }, - "PadToNextRequestModel": { + "PlayoutCount": { "type": "object", "properties": { "content": { @@ -1693,11 +1732,38 @@ "description": "The 'key' for the content that should be added", "nullable": true }, - "minutes": { + "count": { "type": "integer", - "description": "The minutes interval", "format": "int32" }, + "fillerKind": { + "type": "string", + "description": "Flags this content as filler, which influences EPG grouping", + "nullable": true + }, + "customTitle": { + "type": "string", + "description": "Overrides the title used in the EPG", + "nullable": true + }, + "disableWatermarks": { + "type": "boolean" + } + } + }, + "PlayoutDuration": { + "type": "object", + "properties": { + "content": { + "type": "string", + "description": "The 'key' for the content that should be added", + "nullable": true + }, + "duration": { + "type": "string", + "description": "The amount of time to add using the referenced content", + "nullable": true + }, "fallback": { "type": "string", "description": "The 'key' for the content that should be used to fill any remaining unscheduled time. One item will be selected to be looped and trimmed to exactly fit.", @@ -1705,20 +1771,20 @@ }, "trim": { "type": "boolean", - "description": "Controls whether content will be trimmed to exactly fit the specified interval" + "description": "Controls whether content will be trimmed to exactly fit the specified duration" }, "discardAttempts": { "type": "integer", - "description": "When trim is false, this is the number of times to discard items from the collection to find something that fits in the remaining interval", + "description": "When trim is false, this is the number of times to discard items from the collection to find something that fits in the remaining duration", "format": "int32" }, "stopBeforeEnd": { "type": "boolean", - "description": "When false, allows content to run over the specified interval before completing this request" + "description": "When false, allows content to run over the specified duration before completing this request" }, "offlineTail": { "type": "boolean", - "description": "When true, afer scheduling everything that will fit, any remaining time from the specified interval will be unscheduled (offline)" + "description": "When true, afer scheduling everything that will fit, any remaining time from the specified duration will be unscheduled (offline)" }, "fillerKind": { "type": "string", @@ -1735,7 +1801,7 @@ } } }, - "PadUntilExactRequestModel": { + "PlayoutPadToNext": { "type": "object", "properties": { "content": { @@ -1743,10 +1809,10 @@ "description": "The 'key' for the content that should be added", "nullable": true }, - "when": { - "type": "string", - "description": "The time content should be added until", - "format": "date-time" + "minutes": { + "type": "integer", + "description": "The minutes interval", + "format": "int32" }, "fallback": { "type": "string", @@ -1755,16 +1821,16 @@ }, "trim": { "type": "boolean", - "description": "Controls whether content will be trimmed to exactly fit until the specified time" + "description": "Controls whether content will be trimmed to exactly fit the specified interval" }, "discardAttempts": { "type": "integer", - "description": "When trim is false, this is the number of times to discard items from the collection to find something that fits until the specified time", + "description": "When trim is false, this is the number of times to discard items from the collection to find something that fits in the remaining interval", "format": "int32" }, "stopBeforeEnd": { "type": "boolean", - "description": "When false, allows content to run over the specified the specified time before completing this request" + "description": "When false, allows content to run over the specified interval before completing this request" }, "offlineTail": { "type": "boolean", @@ -1785,7 +1851,7 @@ } } }, - "PadUntilRequestModel": { + "PlayoutPadUntil": { "type": "object", "properties": { "content": { @@ -1839,119 +1905,53 @@ } } }, - "PeekItemResponseModel": { + "PlayoutPadUntilExact": { "type": "object", "properties": { "content": { "type": "string", + "description": "The 'key' for the content that should be added", "nullable": true }, - "milliseconds": { - "type": "integer", - "description": "Duration in milliseconds", - "format": "int64" - } - } - }, - "SkipItemsRequestModel": { - "type": "object", - "properties": { - "content": { + "when": { "type": "string", - "description": "The 'key' for the content", - "nullable": true + "description": "The time content should be added until", + "format": "date-time" }, - "count": { - "type": "integer", - "description": "The number of items to skip", - "format": "int32" - } - } - }, - "SkipToItemRequestModel": { - "type": "object", - "properties": { - "content": { + "fallback": { "type": "string", - "description": "The 'key' for the content", + "description": "The 'key' for the content that should be used to fill any remaining unscheduled time. One item will be selected to be looped and trimmed to exactly fit.", "nullable": true }, - "season": { - "type": "integer", - "description": "The season number", - "format": "int32" + "trim": { + "type": "boolean", + "description": "Controls whether content will be trimmed to exactly fit until the specified time" }, - "episode": { + "discardAttempts": { "type": "integer", - "description": "The episode number", + "description": "When trim is false, this is the number of times to discard items from the collection to find something that fits until the specified time", "format": "int32" - } - } - }, - "StartEpgGroupRequestModel": { - "type": "object", - "properties": { - "advance": { - "type": "boolean", - "description": "When true, will make a new EPG group. When false, will continue the existing EPG group." - } - } - }, - "WaitUntilExactRequestModel": { - "type": "object", - "properties": { - "when": { - "type": "string", - "description": "The time to wait (insert unscheduled time) until", - "format": "date-time" }, - "rewindOnReset": { + "stopBeforeEnd": { "type": "boolean", - "description": "When true, the current time of the playout build is allowed to move backward when the playout is reset." - } - } - }, - "WaitUntilRequestModel": { - "type": "object", - "properties": { - "when": { - "type": "string", - "description": "The time of day to wait (insert unscheduled time) until", - "nullable": true + "description": "When false, allows content to run over the specified the specified time before completing this request" }, - "tomorrow": { + "offlineTail": { "type": "boolean", - "description": "When true, will wait until the specified time tomorrow if it has already passed today." + "description": "When true, afer scheduling everything that will fit, any remaining time from the specified interval will be unscheduled (offline)" }, - "rewindOnReset": { - "type": "boolean", - "description": "When true, the current time of the playout build is allowed to move backward when the playout is reset." - } - } - }, - "WatermarkOffRequestModel": { - "type": "object", - "properties": { - "watermark": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of existing watermark names to turn off. All (scripted) watermarks will be turned off if this list is null or empty.", + "fillerKind": { + "type": "string", + "description": "Flags this content as filler, which influences EPG grouping", "nullable": true - } - } - }, - "WatermarkOnRequestModel": { - "type": "object", - "properties": { - "watermark": { - "type": "array", - "items": { - "type": "string" - }, - "description": "A list of existing watermark names to turn on", + }, + "customTitle": { + "type": "string", + "description": "Overrides the title used in the EPG", "nullable": true + }, + "disableWatermarks": { + "type": "boolean" } } } diff --git a/scripts/scripted-schedules/entrypoint.py b/scripts/scripted-schedules/entrypoint.py index b67d8b9f8..23b77a9e3 100755 --- a/scripts/scripted-schedules/entrypoint.py +++ b/scripts/scripted-schedules/entrypoint.py @@ -7,7 +7,7 @@ import sys from uuid import UUID import etv_client -from etv_client.api import scripted_schedule_api +from etv_client.api import ScriptedScheduleApi def main(): parser = argparse.ArgumentParser(description="Run an ETV scripted schedule") @@ -32,7 +32,7 @@ def main(): reset_playout = getattr(script_module, 'reset_playout') build_playout = getattr(script_module, 'build_playout') - api_instance = scripted_schedule_api.ScriptedScheduleApi(api_client) + api_instance = ScriptedScheduleApi(api_client) context = api_instance.get_context(known_args.build_id)