/* * 2002 - 2023 BroadSign International, LLC */ syntax = "proto3"; import "google/api/annotations.proto"; import "broadsign/services/playlist/v1/broadsign_playlist_service.proto"; package Broadsign.Services.Playlist.v2; option cc_enable_arenas = true; /* * A generated playlist result (contains multiple playlists). * * Return value for the 'GeneratePlaylist' API call. */ message GeneratePlaylistResponse { repeated Broadsign.Services.Playlist.Playlist playlists = 1; // Playlists for each concurrent frame. repeated Broadsign.Services.Playlist.Content contents = 2; // Content files referred to by playlist items. Broadsign.Services.Playlist.Identification identification = 3; // Identification information for the Broadsign player for // which the playlist is generated. repeated Broadsign.Services.Playlist.Campaign campaigns = 4; // Campaigns referred to by playlist items. repeated Broadsign.Services.Playlist.Frame frames = 5; // Frames referred to by playlist items. repeated Broadsign.Services.Playlist.Geometry geometries = 6; // Geometries referred to by playlist items. repeated Broadsign.Services.Playlist.Error errors = 7; // Errors that occured during generation. repeated Broadsign.Services.Playlist.Filler fillers = 8; // Offline filler repeated Broadsign.Services.Playlist.DataSynchronization data_synchronizations = 9; // Data Synchronization from player configuration repeated Broadsign.Services.Playlist.Criteria criterias = 10; // Criterias associated to frames } message Date { // Year of the date. Must be from 1 to 9999 int32 year = 1; // Month of a year. Must be from 1 to 12. int32 month = 2; // Day of a month. Must be from 1 to 31 and valid for the year and month. int32 day = 3; } /* * A playlist generation request. * * Parameter for the 'GeneratePlaylist' API call. */ message GenerateLongPlaylistRequest { string player_identifier = 1; // Custom unique identifier assigned to your Broadsign // player, expected to represent a unique venue. string screen_identifier = 2; // Identifier for one screen within a venue. Date date = 3; // Date to generate the playlist for. bool force = 4; // (optional) Setting this option to true will: // - immediately poll, no matter when the last poll was. // - delete the stored playlist and force regeneration. } /* * PlaylistService interface and HTTP+JSON API mapping. */ service PlaylistService { rpc GeneratePlaylist(Broadsign.Services.Playlist.GeneratePlaylistRequest) returns (GeneratePlaylistResponse) { option (google.api.http) = { post: "/playlist/v2/generate" }; } rpc GenerateLongPlaylist(Broadsign.Services.Playlist.v2.GenerateLongPlaylistRequest) returns (GeneratePlaylistResponse) { option (google.api.http) = { post: "/playlist/v2/generate_long" }; } rpc GenerateContentList(Broadsign.Services.Playlist.GenerateContentListRequest) returns (Broadsign.Services.Playlist.GenerateContentListResponse ) { option (google.api.http) = { post: "/playlist/v2/content" }; } rpc ConfirmPlayback(Broadsign.Services.Playlist.ConfirmPlaybackRequest) returns (Broadsign.Services.Playlist.ConfirmPlaybackResponse) { option (google.api.http) = { post: "/playlist/v2/confirm_playback" }; } }