The BSN.cloud Main REST-HTTP API version 2022/06 introduces Series 5 players and support for 8K video modes, updates the BrightWall implementation, addresses user permissions usability issues, and aligns change tracking and conditional requests handling across all the resources. Please review the following breaking changes made for that purpose and update your version 2020/10 client applications to get full access to the new features.
Series 5 Changes
This section describes the updates that were made to the 2022/06 version of the BSN.cloud Main REST-HTTP API to support LS5, HD5, XD5, XT5, and XC5 BrightSign players. More information about Series 5 and their unique features is available at BrightSign Series 5 Digital Signage Players | BrightSign®.
The Player Models Enumeration (2022/06) has been extended by the "XC2055", "XC4055", "LS425", "LS445", "HS125", "HS145", "HD225", "HD1025", "XD235", "XD1035", "XT245", "XT1145", and "XT2145" elements.
TheVideoMode Enumeration (2022/06)(DOCS-1182) has been extended by the "7680x4320x60p", "7680x4320x59.94p", "7680x4320x50p", "7680x4320x30p", "7680x4320x29.97p", "7680x4320x25p", "7680x4320x24p", "7680x4320x23.976p", "3072x2048x30p", "1536x2048x30p" elements.
The Regular Groups Entity (2022/06) has been extended by the [string] XCX55Firmware and [string] XTX45_XDX35_HDX25_LS4X5_HS1X5Firmware properties.
Business Operations Appliance Changes
The previous BSN.cloud Main REST-HTTP API versions provide the business operations tree and related permissions through the Operations Endpoint (2020/10), and similar resources related to each securable entity. However some business operations naturally apply only to collections of entities while others only apply to entity instances, and the previous version of the API did not provide enough information to distinguish between them. The following changes have been made in version 2022/06 to address this usability issue:
The Business Operations Entity (2022/06) was extended by the [OperationAppliance] Appliance property and the OperationAppliance enumeration was defined. It may have one or more unique {"Instance", "Collection", "Unknown"} values:
The "Instance" value indicates that the given business operation applies to specific entity instances.
The "Collection" value indicates that the given business operation applies to collections of entities in a network and associated folders.
The "Unknown" value is reserved for forward compatibility with new enumeration values which may be defined in next versions of BSN.cloud Main REST-HTTP API.
Please update your client and display as follows:
Where you define instance-specific permissions, display only BusinessOperations which have "Instance" values. In BrightAuthor:connected, this would be in entity properties panels such as Content, where you can define object permissions for specific instances.
Where you define permissions or collections of entities, display only the BusinessOperations which have "Collection" values. In BrightAuthor:connected, this would be in Admin > Roles & Permissions, where you create custom roles and define player permissions.
The "Unknown" value may be ignored by client applications but indicates the changes in Business Operation appliance available in next BSN.cloud Main REST-HTTP API versions.
HTTP Conditional Request Support
The BSN.cloud Main REST-HTTP API implements HTTP conditional request handling by exposing Last-Modified response headers and handling If-Modified-Since and If-Unmodified-Since request headers in accordance to RFC 7232. However this was missing in the Network, NetworkSubscription and PlayerSubscription entities so the following changes have been made in order to align them with other entities:
The [DateTime] LastModifiedDate property is no longer nullable.
The GET ~/2022/06/REST/Self/Networks/{networkId}/Subscription/ and GET ~/2022/06/REST/Self/Networks/{networkId}/Subscription/methods set the Last-Modified HTTP response header to the [DateTime] LastModifiedDate property value of the returned entity.
The PUT ~/2022/06/REST/Self/Networks/{networkId}/Subscription/ and PUT ~/2022/06/REST/Self/Networks/{networkId}/Subscription/methods accept the optional If-Unmodified-Since HTTP Request Header and evaluate condition against the target entity.