BrightSign Network Version 3.8
BrightSign, LLC. 16795 Lark Ave., Suite 200 Los Gatos, CA 95032 | 408-852-9263 | www.brightsign.biz
TABLE OF CONTENTS
Introduction .......................................................................................................................... 1
Entities .............................................................................................................................................................................. 1
Identifiers ................................................................................................................................................................................................................ 1
Dependency ........................................................................................................................................................................................................... 1
Methods ............................................................................................................................................................................ 2
Entity Retrieval Methods ........................................................................................................................................................................................ 2
Entity Update Methods ........................................................................................................................................................................................... 3
Object Permissions ......................................................................................................................................................... 4
SOAP Endpoints .............................................................................................................................................................. 4
SOAP Access Point URLs ............................................................................................................................................... 5
User Authentication......................................................................................................................................................... 6
Development Tools ......................................................................................................................................................... 6
User Authenticate() ................................................................................................................................................................................................ 6
Content .................................................................................................................................. 7
Content Entity .................................................................................................................................................................. 7
ContentFolder Entity ....................................................................................................................................................... 8
ContentType Enumeration .............................................................................................................................................. 8
ContentTransition Enumeration ..................................................................................................................................... 8
DynamicPlaylistContent Entity-Relation ....................................................................................................................... 9
PresentationContent Entity-Relation ........................................................................................................................... 10
DynamicPlaylistInfo Structure ...................................................................................................................................... 11
PresentationInfo Structure ........................................................................................................................................... 11
Content Management Web Methods ............................................................................................................................ 11
PagedList<Content> GetAllContent(string marker, int pageSize) ....................................................................................................................... 12
List<ContentFolder> GetContentFolders(string virtualPath) ................................................................................................................................ 12
PagedList<Content> GetFolderContent(string virtualPath, string marker, int pageSize) .................................................................................... 13
List<Content> GetSpecifiedContent(int[] contentIds) .......................................................................................................................................... 13
PagedList<Content> FindContent(string fileNamePattern, string marker, int pageSize) .................................................................................... 14
Content GetContent(int contentId) ....................................................................................................................................................................... 14
ContentFolder CreateContentFolder(ContentFolder entity) ................................................................................................................................. 15
bool MoveContent(int[] contentIds, string newVirtualPath) .................................................................................................................................. 15
bool CheckContentUsage(int contentId) .............................................................................................................................................................. 16
bool DeleteContent(int[] contentIds) .................................................................................................................................................................... 17
Content Upload .................................................................................................................. 18
Overview ......................................................................................................................................................................... 18
Web Page Upload Work Flow ....................................................................................................................................... 18
Web Page Update Work Flow ....................................................................................................................................... 19
Content Upload Web Methods ...................................................................................................................................... 20
ContentUploadStatus StartFileUpload(string uploadToken, string sessionToken, string filename, long filesize, int chunksCount, enum
ContentType, dateTime fileLastModifiedDate, string virtualPath, base64Binary fileThumb, string sha1Hash) .................................................. 21
ContentUploadStatus AppendChunk(string uploadToken, int partNumber, binary data, long offset) ................................................................. 22
ContentUploadStatus CompleteFileUpload(string uploadToken, string sessionToken, string filename, long filesize, int chunksCount, enum
ContentType, dateTime fileLastModifiedDate, string virtualPath, base64Binary fileThumb, string sha1Hash) .................................................. 23
WebPageUploadStatus StartWebPageUploadSession(array webpageAssets[], string uploadToken, string sessionToken, string filename, long
filesize, int chunksCount, enum ContentType, string virtualPath, base64Binary fileThumb, string sha1Hash) .................................................. 25
WebPageUploadStatus CompleteWebPageUploadSession(array webpageAssets[], string sessionToken, string filename, long filesize, int
chunksCount, enum ContentType, string virtualPath, base64Binary fileThumb, string sha1Hash) .................................................................... 27
ContentUploadStatus CancelFileUpload(string uploadToken) ............................................................................................................................ 29
ContentUploadStatus GetFileUploadStatus(string uploadToken) ....................................................................................................................... 29
WebPageUploadStatus GetWebPageUploadStatus(string sessionToken) ......................................................................................................... 30
Dynamic Playlist ................................................................................................................. 31
ImageVideoDynamicPlaylist Entity .............................................................................................................................. 31
AudioDynamicPlaylist Entity ........................................................................................................................................ 31
Dynamic Playlist Management Web Methods ............................................................................................................. 32
PagedList<DynamicPlaylist> GetDynamicPlaylists(string marker, int pageSize) ................................................................................................ 33
PagedList<ImageVideoDynamicPlaylist> GetImageVideoDynamicPlaylists(string marker, int pageSize) ......................................................... 34
PagedList<AudioDynamicPlaylist> GetAudioDynamicPlaylists(string marker, int pageSize) ............................................................................. 34
List<DynamicPlaylist> GetSpecifiedDynamicPlaylists(int[] dynamicPlaylistIds) .................................................................................................. 35
PagedList<DynamicPlaylist> FindDynamicPlaylists(string namePattern, string marker, int pageSize) .............................................................. 35
PagedList<ImageVideoDynamicPlaylist> FindImageVideoDynamicPlaylists(string namePattern, string marker, int pageSize) ....................... 36
PagedList<AudioDynamicPlaylist> FindAudioDynamicPlaylists(string namePattern, string marker, int pageSize) ........................................... 37
DynamicPlaylist GetDynamicPlaylist(int dynamicPlaylistId, bool loadContent) ................................................................................................... 38
DynamicPlaylist GetDynamicPlaylistByName(string name, bool loadContent) ................................................................................................... 38
bool CheckDynamicPlaylistName(string name) ................................................................................................................................................... 39
bool CheckDynamicPlaylistUsage(int dynamicPlaylistId) .................................................................................................................................... 39
bool CheckDynamicPlaylistUsageByName(string name) .................................................................................................................................... 40
DynamicPlaylist CreateDynamicPlaylist(DynamicPlaylist entity) ......................................................................................................................... 40
bool UpdateDynamicPlaylist(DynamicPlaylist entity) ........................................................................................................................................... 41
bool RenameDynamicPlaylist(int dynamicPlaylistId, string newName) ............................................................................................................... 42
bool DeleteDynamicPlaylists(int[] dynamicPlaylistIds) ......................................................................................................................................... 42
Live Text Feed .................................................................................................................... 44
LiveTextFeed Entity ....................................................................................................................................................... 44
LiveTextFeedItem Entity-Relation ................................................................................................................................ 44
Live Text Feed Management Web Methods ................................................................................................................. 45
PagedList<LiveTextFeed> GetLiveTextFeeds(string marker, int pageSize) ....................................................................................................... 45
List<LiveTextFeed> GetSpecifiedLiveTextFeeds(int[] liveTextFeedIds) ............................................................................................................. 46
PagedList<LiveTextFeed> FindLiveTextFeeds(string namePattern, string marker, int pageSize) ..................................................................... 46
LiveTextFeed GetLiveTextFeed(int liveTextFeedId, bool loadContent) .............................................................................................................. 47
LiveTextFeed GetLiveTextFeedByName(string name, bool loadContent) .......................................................................................................... 48
bool CheckLiveTextFeedName(string name) ...................................................................................................................................................... 48
bool CheckLiveTextFeedUsage(int liveTextFeedId) ............................................................................................................................................ 49
bool CheckLiveTextFeedUsageByName(string name) ........................................................................................................................................ 49
LiveTextFeed CreateLiveTextFeed(LiveTextFeed entity) .................................................................................................................................... 50
LiveTextFeed CloneLiveTextFeed(string feedUrl) ............................................................................................................................................... 50
bool UpdateLiveTextFeed(LiveTextFeed entity) .................................................................................................................................................. 51
bool RenameLiveTextFeed(int liveTextFeedId, string newName) ....................................................................................................................... 52
bool DeleteLiveTextFeeds(int[] liveTextFeedIds)................................................................................................................................................. 52
Live Media Feed ................................................................................................................. 53
LiveMediaFeed Entity .................................................................................................................................................... 53
LiveMediaFeedContent Entity-Relation ....................................................................................................................... 53
Live Media Feed Management Web Methods .............................................................................................................. 54
PagedList<LiveMediaFeed> GetLiveMediaFeeds(string marker, int pageSize) ................................................................................................. 55
List<LiveMediaFeed> GetSpecifiedLiveMediaFeeds(int[] liveMediaFeedIds) ..................................................................................................... 55
PagedList<LiveMediaFeed> FindLiveMediaFeeds(string namePattern, string marker, int pageSize) ................................................................ 56
LiveMediaFeed GetLiveMediaFeed(int liveMediaFeedId, bool loadContent) ...................................................................................................... 56
LiveMediaFeed GetLiveMediaFeedByName(string name, bool loadContent) .................................................................................................... 57
bool CheckLiveMediaFeedName(string name) .................................................................................................................................................... 57
LiveMediaFeed CreateLiveMediaFeed(LiveMediaFeed entity) ........................................................................................................................... 58
bool UpdateLiveMediaFeed(LiveMediaFeed entity) ............................................................................................................................................ 59
bool RenameLiveMediaFeed(int liveMediaFeedId, string newName) ................................................................................................................. 60
bool DeleteLiveMediaFeeds(int[] liveMediaFeedIds) ........................................................................................................................................... 60
Web Page ............................................................................................................................ 62
WebPage Entity ............................................................................................................................................................. 62
WebPageAsset Entity-Relation .................................................................................................................................... 62
PresentationContent Entity-Relation ........................................................................................................................... 63
Web Page Management Web Methods ........................................................................................................................ 63
PagedList<WebPage> GetWebPages(string marker, int pageSize) ................................................................................................................... 64
List<WebPage> GetSpecifiedWebPages(int[] webPageIds) ............................................................................................................................... 64
PagedList<WebPage> FindWebPages(string namePattern, string marker, int pageSize) ................................................................................. 65
WebPage GetWebPage(int webPageId, bool loadAssets) .................................................................................................................................. 65
WebPage GetWebPageByName(string name, bool loadContent) ...................................................................................................................... 66
bool CheckWebPageName(string name) ............................................................................................................................................................ 66
bool CheckWebPageUsage(int liveTextFeedId) .................................................................................................................................................. 67
bool CheckWebPageUsageByName(string name) .............................................................................................................................................. 67
bool RenameWebPage(int webPageId, string newName) .................................................................................................................................. 68
bool DeleteWebPages(int[] webPageIds) ............................................................................................................................................................ 68
Device Web Page ............................................................................................................... 70
DeviceWebPage Entity .................................................................................................................................................. 70
Device Web Page Management Web Methods ............................................................................................................ 70
PagedList<WebPage> GetDeviceWebPages(int marker, int pageSize) ............................................................................................................. 71
List<WebPage> GetSpecifiedDeviceWebPages(int[] webPageIds) .................................................................................................................... 71
PagedList<WebPage> FindDeviceWebPages(string namePattern, int marker, int pageSize) ........................................................................... 72
DeviceWebPage GetDeviceWebPage(int webPageId, bool loadAssets) ............................................................................................................ 72
DeviceWebPage GetDeviceWebPageByName(string name, bool loadContent) ................................................................................................ 73
bool CheckDeviceWebPageName(string name) ................................................................................................................................................. 73
bool CheckDeviceWebPageUsage(int liveTextFeedId) ....................................................................................................................................... 74
bool CheckDeviceWebPageUsageByName(string name) ................................................................................................................................... 74
bool RenameDeviceWebPage(int webPageId, string newName) ....................................................................................................................... 75
bool DeleteDeviceWebPages(int[] webPageIds) ................................................................................................................................................. 75
Presentation ....................................................................................................................... 77
Presentation Entity ........................................................................................................................................................ 77
DeviceModel Enumeration ............................................................................................................................................ 78
PresentationLanguage Enumeration ........................................................................................................................... 78
ScreenSettings Structure .............................................................................................................................................. 78
PresentationZone Structure ......................................................................................................................................... 81
VideoOrImagesPresentationZone Structure ............................................................................................................... 81
EnhancedAudioPresentationZone ............................................................................................................................... 82
GroupInfo Structure ...................................................................................................................................................... 83
Presentation Management Web Methods .................................................................................................................... 83
PagedList<Presentation> GetPresentations(string marker, int pageSize) .......................................................................................................... 84
List<Presentation> GetSpecifiedPresentations(int[] presentationIds) ................................................................................................................. 85
PagedList<Presentation> FindPresentations(string namePattern, string marker, int pageSize) ........................................................................ 85
Presentation GetPresentation(int presentationId, bool loadAssets) .................................................................................................................... 86
Presentation GetPresentationByName(string name, bool loadContent) ............................................................................................................. 87
ScreenResolution[] GetSupportedScreenResolutions(DeviceModel deviceModel, ConnectorType connectorType) ........................................ 87
bool CheckPresentationName(string name) ........................................................................................................................................................ 88
bool CheckPresentationUsage(int presentationId) .............................................................................................................................................. 88
Presentation CreatePresentation(Presentation entity) ........................................................................................................................................ 89
Presentation UpdatePresentation(Presentation entity) ........................................................................................................................................ 90
bool UpdatePresentationScreenSettings(int presentationId, ScreenSettings screenSettings) ........................................................................... 91
bool UpdatePresentationZone(int presentationId, PresentationZone entity) ....................................................................................................... 92
bool DeletePresentations(int[] presentationIds) ................................................................................................................................................... 93
Group .................................................................................................................................. 94
Group Entity ................................................................................................................................................................... 94
Group Management Web Methods ............................................................................................................................... 95
PagedList<Group> GetGroups(string marker, int pageSize) ............................................................................................................................... 95
List<Group> GetSpecifiedGroups(int[] presentationIds) ...................................................................................................................................... 96
PagedList<Group> FindGroups(string namePattern, string marker, int pageSize) ............................................................................................. 96
Group GetGroup (int presentationId, bool loadAssets) ........................................................................................................................................ 97
Group GetGroupByName(string name, bool loadContent) .................................................................................................................................. 97
Group CreateGroup(Group entity) ....................................................................................................................................................................... 98
bool DeleteGroup(int groupId, int reassignmentGroupId) .................................................................................................................................... 98
Schedule ........................................................................................................................... 100
ScheduledPresentation Entity-Relation ..................................................................................................................... 100
Schedule Management Web Methods ........................................................................................................................ 101
PagedList<ScheduledPresentation> GetGroupSchedule(int groupId, string marker, int pageSize) ................................................................. 101
ScheduledPresentation AddScheduledPresentation(int groupId, ScheduledPresentation entity) .................................................................... 102
bool UpdateScheduledPresentation(ScheduledPresentation entity) ................................................................................................................. 103
bool OverwriteSchedule(int groupId, ScheduledPresentation[] entities) ........................................................................................................... 104
bool RemoveScheduledPresentation(int scheduledPresentationId) ................................................................................................................. 105
Device ................................................................................................................................ 107
Device Entity ................................................................................................................................................................ 107
DeviceLogReport Entity .............................................................................................................................................. 110
DeviceSubscriptionType Enumeration ...................................................................................................................... 111
DeviceLogType Enumeration ..................................................................................................................................... 111
DeviceSubscriptionStatus Enumeration ................................................................................................................... 111
DeviceConnectionsPeriod Enumeration ................................................................................................................... 112
DeviceNetworkSettings Structure .............................................................................................................................. 112
DeviceWiredSettings Structure .................................................................................................................................. 113
DeviceWirelessSettings Structure ............................................................................................................................. 113
DeviceLogsSettings Structure ................................................................................................................................... 114
DeviceHealthStatus Enumeration .............................................................................................................................. 114
DeviceError Structure ................................................................................................................................................. 115
DeviceDownload Structure ......................................................................................................................................... 115
Device Management Web Methods ............................................................................................................................ 115
PagedList<Device> GetAllDevices(string marker, int pageSize) ....................................................................................................................... 116
List<Device> GetSpecifiedDevices(int[] deviceIds) ........................................................................................................................................... 117
PagedList<Device> FindDevices(string namePattern, string marker, int pageSize) ......................................................................................... 117
Device GetDevice(int deviceId) .......................................................................................................................................................................... 118
Device GetDeviceBySerial(string serial) ............................................................................................................................................................ 118
PagedList<DeviceError> GetDeviceErrors(int deviceId, string marker, int pageSize) ...................................................................................... 119
PagedList<DeviceDownload> GetDeviceDownloads(int deviceId, string marker, int pageSize) ...................................................................... 119
bool RenameDevice(int deviceId, string newName, string newDescription) ..................................................................................................... 120
bool UpdateDeviceLogsSettings(int deviceId, DeviceLogsSettings settings) .................................................................................................... 120
bool ReassignDevices(int[] deviceIds, int newGroupId) .................................................................................................................................... 121
bool ForceDevicesReboot(int[] deviceIds) ......................................................................................................................................................... 122
bool CancelDevicesReboot(int[] deviceIds) ....................................................................................................................................................... 122
bool ForceDevicesRecovery(int[] deviceIds, bool reformat) .............................................................................................................................. 123
bool CancelDevicesRecovery(int[] deviceIds) .................................................................................................................................................... 123
bool ForceDevicesLogsUpload(int[] deviceIds) .................................................................................................................................................. 124
bool CancelDevicesLogsUpload(int[] deviceIds)................................................................................................................................................ 124
PagedList<DeviceLogReport> GetDeviceLogReports(int deviceId, DeviceLogType logType, string marker, int pageSize) ........................... 125
bool DeleteDevices(int[] deviceIds) .................................................................................................................................................................... 126
INTRODUCTION
The BrightSign Network API exposes a large set of WebUI functionality using a standardized set of
entities, methods, and properties. Developers can use this API to build new interfaces that have a
different look and feel from, but provide a similar feature set to, the BrightSign Network WebUI.
This API Reference Manual first outlines the general working principles of interfacing with the BrightSign
Network API. It then describes the properties and methods of each entity in detail.
Entities
Identifiers
Each entity has a unique ID consisting of an incremental integer value that functions as its Primary Key. This allows for
simple identification and retrieval of a particular object instance. This value is usually not revealed to end users of the UI
because it is only useful for internal client/server operations.
Some entities also have Alternate Keys (the [string] Name property, for example) because the system often requires
the uniqueness of an entity within a BSN account. You can retrieve an entity using any of its keys, whether primary or
alternate.
Dependency
Almost all entities have “parent” and “child” entities contained within a dependency tree: For example, a Dynamic Playlist
entity includes Content entities on one hand, but is referenced by Presentation entities on the other. In this case, each
Content entity is the “child” of the Dynamic Playlist entity, while each Presentation entity functions as the “parent” of the
Dynamic Playlist entity.
If a particular object instance has one or more parent objects, then it is considered “in use”. In most cases, this status will
affect the operations that can be performed with it.
Methods
The BSN Web API provides different methods to perform similar operations. It is possible, for example, to retrieve/update
either all or a specified subgroup of properties. This allows you to choose which methods suit your deployment best in
terms of usability, responsiveness, etc.
Entity Retrieval Methods
Currently, there are four types of entity retrieval method:
Get{EntityName(s)}
Methods of this type retrieve all entities of the corresponding type and return paged results with initialized parent
dependencies and/or usage indicators. For performance reasons, they do not return child entities. The page size is limited
to a certain number depending on the method.
The BrightSign Network Web API implements a markers-based approach similar to the Amazon REST 3 API: The client
specifies the marker (entity ID) of the starting element in the list, as well as the number of entities to receive. The server
will indicate whether the response is truncated (i.e. there are more elements that can be retrieved by the next request)
and provide the marker for the next object instance.
Note : If a client has retrieved a first page and is in the process of retrieving the second while another client adds, updates,
or removes two objects on different pages, the first client may receive an inconsistent state.
GetSpecified{EntityName(s)}
Methods of this type retrieve entities with specified keys. The results will not be paged; as a result, there is a limit on the
number of entities that can be requested. This type of method will initialize only parent dependencies.
Find{EntityName(s)}
Methods of this type allow you to search for entities using a [string] Name pattern (including wildcards). This method
type only exists for entities that have a Name alternate key. These methods return paged results with initialized parent
dependencies and/or usage indicators.
Get{EntityName} / Get{EntityName}ByName
Methods of this type retrieve a single object instance using one of its Keys. Unlike other method types, these methods
allow retrieval of child entities along with the requested entity. This behavior is useful for entity properties dialogues (e.g. a
Group Properties dialogue that shows general information about a particular group) and entity management pages (e.g. a
Dynamic Playlist management page that can be initialized with a single call).
Entity Update Methods
Currently, there are two types of entity update method:
General Update Methods : e.g. UpdateGroup
These methods receive a complete object in its updated state and attempt to detect and store all changes on the
server side. These methods are useful in cases where a client retrieves an object first, allows the user to make
changes, and then passes the new state to the server without the need to track user changes or construct call
chains for applying a particular change (e.g. selecting the Edit button of a Dynamic Playlist in the BrightSign
Network WebUI)—this is a use case that fits most WebUI and some BrightAuthor scenarios.
These methods can also update object relations, so the client will be able to store not only all new property values,
but also, for instance, updated sets of Dynamic Playlists or presentation contents in a single transactional service
call without intermediate states.
Specific Update Methods : e.g. UpdateGroupsAutorun
These methods receive Entity IDs and one or more values for updating logically related properties within that entity
(for example, changing the minimum required firmware values for a group). Methods of this type don’t require the
client to retrieve the object first. This may be useful for small dialogs, groups of controls (such as those in
BrightAuthor), or internal client logic for sealing off certain parts of functionality from end users.
Object Permissions
Currently, all supported entities have a predetermined set of Object Permissions that cannot be changed. Customizable
permissions will be implemented in the future.
SOAP Endpoints
Currently, the BrightSign Network Web API consists of two web services with nearly identical configurations: the
Application Service and the Content Upload Service. Each web service has two SOAP endpoints: One is configured to
use the WS-* specification and the other to use the WS-I Basic Profile.
WS-*
The WS-* endpoint is intended for rich, multifunctional server or desktop applications that support features such as
sessions and transactions. The endpoint also supports its own rich security module and complex messaging format.
It would be difficult and time consuming to manually implement the required functionality for WS-*, including message
serialization/de-serialization, encoding/decoding, connection management, and state management. Therefore, in order to
utilize this endpoint, you will first need find a library that can create a service reference (i.e. proxy class) for your language
and/or platform. Windows features built-in tools for creating service references for .NET applications, where the WS-*
specification is the default web service endpoint configuration. Official or third-party tools/libraries have also been built for
some, but not all, languages and platforms.
Once you find such a tool/library for your platform, you will be able to create a service reference for the web service and
work with it using familiar methods in the code.
WS-I Basic
The WS-I Basic endpoint is defined for simple clients that support a small number of functions or don’t support the WS-*
specification. This specification does not support sessions or transactions. It does not have its own security module, using
IIS instead. As a result, the message format is much simpler. WS-I Basic is also supported by all languages and
platforms; it is even possible to use it directly without a service reference (i.e. proxy class) if needed (for example, through
JavaScript).
SOAP Access Point URLs
Use the following URLs to create service references:
• https://api.brightsignnetwork.com/2014/07/SOAP/WSDL/
• https://api.brightsignnetwork.com/Uploads/2014/07/SOAP/WSDL/
The service-endpoints addresses are specified in the WSDLs. Most SOAP tools and libraries used to create references
will find the addresses automatically. The current service endpoint URLs are as follows:
• http://api.brightsignnetwork.com/2014/07/SOAP/WS/
• https://api.brightsignnetwork.com/2014/07/SOAP/Basic/
• http://api.brightsignnetwork.com/Uploads/2014/07/SOAP/WS/
• https://api.brightsignnetwork.com/Uploads/2014/07/SOAP/Basic/
Note : Each URL has a specified API version (e.g. “2014/04/”). API versions will rarely, if ever, be changed after
production release, the exception being changes that will extend functionality but not affect existing clients. Older API
version URLs may be removed at a later time if deemed obsolete.