Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

This endpoint allows you to manage content files (and content tags) on the network. 

Base URL for these endpoints:  https://api.bsn.cloud/2022/06/REST/Content

_________________________________________________________________________

GET /

Returns a list of content files on a network.

Required Scope Token

bsn.api.main.content.retrieve

______________________________________________________________

Query String Parameters

filter string optional

Anexpression for filtering search results.

sort string optional

An expression for sorting the search results. The sort expression specifies the entry used for sorting and the ascending/descending (ASC/DESC) sorting order (e.g. "[Device].[Serial] ASC"). The default see this page for more information). The default value is null.

marker string optional

A value specifying which page to retrieve. This value is useful if the isTruncated entry in the response body of the previous GET call indicates that the number of content instances exceeds the pageSize.

This parameter is only required if you need more elements in the paged list than the pageSize (100).

pageSize int optional

The maximum number of content instances that can be contained in the response body. This defaults to the maximum allowed page size (100).

______________________________________________________________

Endpoints:

Table of Contents
maxLevel2
indent20px
excludeEndpoints:


Request Example

The example request parameters and headers are set as follows:

  • marker value is set to the [PagedList].[NextMarker] property value from the previous BSN.cloud API response.

  • pageSize is set to 1

  • filter is set to [MediaType] IS 'Image' AND ([FileName] IS '.jpg' OR [FileName] IS '.jpeg') AND [UploadDate] IS IN THE RANGE '2020-07-01' AND '2020-08-01'

  • sort is set to [LastModifiedDate] DESC

Code Block
GET https://api.bsn.cloud/2022/06/REST/Content/?marker=MjAyMC0wNy0yN1QxNjoxNjo0Ny44MTdaLDY0Njg2NA%3D%3D&pageSize=1&sort=%5BLastModifiedDate%5D%20DESC&filter=%5BMediaType%5D%20IS%20%27Image%27%20AND%20%28%5BFileName%5D%20IS%20%27*.jpg%27%20OR%20%5BFileName%5D%20IS%20%27*.jpeg%27%29%20AND%20%5BUploadDate%5D%20IS%20IN%20THE%20RANGE%20%272020-07-01%27%20AND%20%272020-08-01%27 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns a paged list of Content entities (generic data type) on a network. This will return not more than 100 entities along with the information necessary to return any other remaining pages.

Example

Code Block
languagejson
{

  "items": [
    {
      "id": 646864,
      "fileName": "ZoomBG3ZoomBG.jpeg",
      "physicalPath": "https://bsncloud.s3.amazonaws.com/bsts/7abaa3f28f5f824d4f0bbd5eec295f13",
      "virtualPath": "\\Users\\Night\\",
      "thumbPath": "https://bsncloud.s3.amazonaws.com/bsts/e6f6eea4387fcae58b40be611c8c3017",
      "mediaType": "Image",
      "fileSize": 6534,
      "fileHash": "SHA1:79060849FC80F02990175BB4BDE4375E6F05F622",
      "uploadDate": "2020-07-27T16:16:47.817Z",
      "lastModifiedDate": "2020-07-27T16:16:47.817Z",
      "fileLastModifiedDate": "2020-07-16T17:34:20.41Z",
      "probeData": "",
      "metadata":       {

        "widthPx": 275,
         "heightPx": 183,
         "colorSpace": "sRGB",
         "colorDepthBit": 8,
         "imageFormat": "Jpeg"
      },
      "dynamicPlaylists": [],
        {
  "liveMediaFeeds": [],       "taggedPlaylistsid": []123,
          "presentationsname": [], "My Dynamic Playlist"
       "tags": {}}
      ],
      "permissionsliveMediaFeeds": []
        {
 }],    "totalItemCount": 23,    "matchingItemCountid": 2124,
     "pageSize": 1,    "nextMarkername": "Wm9vbUJHMy5qcGVnLDY0Njg2NA==",My Live Media Feed"
        }
     "isTruncated": true],
      "sortExpressiontaggedPlaylists": "[Content].[FileName] DESC",[
        {
          "filterExpressionid": "[FileName] CONTAINS '*.jpeg'"
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

DELETE /

Removes content files, specified by a filter, from a network. This allows multiple content files to be deleted at once.

Required Scope Token

bsn.api.main.content.delete

______________________________________________________________

Query String Parameter

filter string required

An expression for filtering search results

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • filter is set to [VirtualPath] IS '\\Shared\\Presentations\\Archive\\*' AND [UploadDate] IS BEFORE '2020-01-01'

Code Block
DELETE https://api.bsn.cloud/2022/06/REST/Content/?filter=%5BVirtualPath%5D%20IS%20%27%5C%5CShared%5C%5CPresentations%5C%5CArchive%5C%5C*%27%20AND%20%5BUploadDate%5D%20IS%20BEFORE%20%272020-01-01%27 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns the number of affected content files as an integer value.

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /Root/{*virtualPath}/ 

Retrieves a list of content files in the specified virtual directory folder. This resource maps to the virtual folder in the content library, accordingly the virtual path is either complete or a partial path to a destination content folder or file.

Required Scope Token

bsn.api.main.content.retrieve

______________________________________________________________

Segment

virtualPath string

The location of the content file in the BSN.cloud virtual directory

Query String Parameters

sort  string optional

An expression for sorting the search results. The sort expression specifies the entry used for sorting and the ascending/descending (ASC/DESC) sorting order (e.g. "[Content].[FileName] ASC").

marker string optional

A value specifying which page to retrieve. This value is useful if the isTruncated entry in the response body of the previous GET call indicates that the number of content instances exceeds the pageSize.

pageSize int optional

The maximum number of content file instances that can be contained in the response body

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • virtualPath is set to Users/anon@brightsign.biz/

Code Block
GET /2022/06/REST/Content/Root/Users/anon@brightsign.biz/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns a paged list of Content and Content Folder entities on a network. This will return not more than 100 entities along with the information necessary to return any other remaining pages.

Example

Code Block
languagejson
{
   "items":    [
            { 125,
          "name": "My Tagged Playlist"
        }
      ],
      "presentations": [
        {
          "id": 126,
          "name": "My Presentation",
          "type": "Presentation",
          "link": null
        }
      ],
      "tags": {
        "string::[Content].<Location>": "Sea Coast",
        "dateTime::[Content].<TimeTaken>": "2023-10-10T19:06:00.000Z"
      },
      "permissions": [
        {
          "entityId": 646864,
          "operationUID": "db3a6287-8d03-51b4-6528-704fac1ab8c9",
          "principal": {
            "login": "anon@brightsign.biz",
            "type": "User",
            "id": 101026
          },
          "isFixed": false,
          "isInherited": false,
          "isAllowed": false,
          "creationDate": "2023-10-11T22:07:33.507Z"
        },
        {
          "entityId": 646864,
          "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
          "principal": {
            "name": "Custom",
            "isCustom": true,
            "type": "Role",
            "id": 10498
          },
          "isFixed": false,
          "isInherited": false,
          "idisAllowed": 602846true,
          "namecreationDate": "My Images","2023-10-11T22:07:33.473Z"
        }
      "virtualPath": "\\Users\\anon@brightsign.biz\\",]
    }
  ],
  "thumbPathtotalItemCount": 23,
  "matchingItemCount"https://bsncloud.s3.amazonaws.com:443/public/icons/100x100/icon_folder.png",
  : 2,
      "mediaTypepageSize": "Folder"1,
         "creationDate"nextMarker": "2020-07-09T19:09:05.103ZWm9vbUJHMy5qcGVnLDY0Njg2NA==",
         "lastModifiedDate"isTruncated": "2020-07-09T19:09:05.103Z",
      true,
  "hasSubFolderssortExpression": false,
         "hasFiles": false,
         "permissions": []
      },
            {
         "id": 602845,
         "name": "My Incoming",
         "virtualPath": "\\Users\\anon@brightsign.biz\\",
         "thumbPath": "https://bsncloud.s3.amazonaws.com:443/public/icons/100x100/icon_folder_incoming.png",
         "mediaType": "Folder",
         "creationDate": "2020-07-09T19:09:05.067Z",
         "lastModifiedDate": "2020-07-09T19:09:05.067Z",
         "hasSubFolders": false,
         "hasFiles": false,
         "permissions": []
      },
            {
         "id": 602847,
         "name": "My Videos",
         "virtualPath": "\\Users\\anon@brightsign.biz\\",
         "thumbPath": "https://bsncloud.s3.amazonaws.com:443/public/icons/100x100/icon_folder.png",
         "mediaType": "Folder",
         "creationDate": "2020-07-09T19:09:05.143Z",
         "lastModifiedDate": "2020-07-09T19:09:05.143Z",
         "hasSubFolders": false,
         "hasFiles": false,
         "permissions": []
      }
   ],
   "totalItemCount": 3,
   "matchingItemCount": 3,
   "pageSize": 100,
   "nextMarker": "LDYwMjg0Nw==",
   "isTruncated": false,
   "sortExpression": "[Content].[FileName] ASC",
   "filterExpression": "[Type] IN ('Image', 'Video', 'Audio', 'Folder') AND [VirtualPath] = \\"[Content].[FileName] DESC",
  "filterExpression": "[FileName] CONTAINS '*.jpeg'"
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

DELETE /

Removes content files, specified by a filter, from a network. This allows multiple content files to be deleted at once.

Required Scope Token

bsn.api.main.content.delete

______________________________________________________________

Query String Parameter

filter string required

An expression for filtering search results

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • filter is set to [VirtualPath] IS '\\Shared\\Presentations\\Archive\\*' AND [UploadDate] IS BEFORE '2020-01-01'

Code Block
DELETE /2022/06/REST/Content/?filter=%5BVirtualPath%5D%20IS%20%27%5C%5CShared%5C%5CPresentations%5C%5CArchive%5C%5C*%27%20AND%20%5BUploadDate%5D%20IS%20BEFORE%20%272020-01-01%27 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns the number of affected content files as an integer value.

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /Root/{*virtualPath}/ 

Retrieves a list of content files in the specified virtual directory folder. This resource maps to the virtual folder in the content library, accordingly the virtual path is either complete or a partial path to a destination content folder or file.

Required Scope Token

bsn.api.main.content.retrieve

______________________________________________________________

Segment

virtualPath string

The location of the content file in the BSN.cloud virtual directory

Query String Parameters

sort  string optional

An expression for sorting the search results. The sort expression specifies the entry used for sorting and the ascending/descending (ASC/DESC) sorting order (e.g. "[Content].[FileName] ASC").

marker string optional

A value specifying which page to retrieve. This value is useful if the isTruncated entry in the response body of the previous GET call indicates that the number of content instances exceeds the pageSize.

pageSize int optional

The maximum number of content file instances that can be contained in the response body

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • virtualPath is set to Users/anon@brightsign.biz/

Code Block
GET /2022/06/REST/Content/Root/Users/anon@brightsign.biz/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns a paged list of Content and Content Folder entities on a network. This will return not more than 100 entities along with the information necessary to return any other remaining pages.

Example

Code Block
languagejson
{
   "items":    [
            {
         "id": 602846,
         "name": "My Images",
         "virtualPath": "\\Users\\anon@brightsign.biz\\"
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

POST /Root/{*virtualPath}/ 

Creates a content folder in the specified virtual directory folder and returns the URL link to the folder location. This resource maps to the virtual folder in the content library, accordingly the virtual path is either complete or a partial path to a destination content folder or file.

Required Scope Token

bsn.api.main.content.create

______________________________________________________________

Segment

virtualPath string optional

The location of the content instance in the BSN.cloud virtual directory

______________________________________________________________

Request Body

The Content Folder Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • virtualPath is set to /Users/anon@brightsign.biz/

Code Block
POST /2022/06/REST/Content/Root/Users/anon@brightsign.biz/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, 
Accept-Encoding: gzip,deflate
Content-Type: application/json, application/vnd.bsn.error+json
Content-Length: 95

This is the example request body:

Code Block
languagejson
{
    "id": 0,
    "name": "Testing",
    "virtualPath": "\\Users\\anon@brightsign.biz\\",
    "thumbPath": "",
    "mediaType": "Folder",
    "creationDate": "0001-01-01T00:00:00",
    "lastModifiedDate": "0001-01-01T00:00:00",
    "hasSubFolders": false,
    "hasFiles": false,
    "permissions": []
}

______________________________________________________________

Response

Success Response Body

201: Returns the new resource created and referenced by the Uri (given by the Location header field) in the response. The response includes theContent Folder Entity.

Example

Code Block
languagejson
{
    "id": 11056355,
    "name": "Testing",,
         "thumbPath": "https://bsncloud.s3.amazonaws.com:443/public/icons/100x100/icon_folder.png",
         "mediaType": "Folder",
         "creationDate": "2020-07-09T19:09:05.103Z",
         "lastModifiedDate": "2020-07-09T19:09:05.103Z",
         "hasSubFolders": false,
         "hasFiles": false,
         "permissions": []
      },
            {
         "id": 602845,
         "name": "My Incoming",
         "virtualPath": "\\Users\\anon@brightsign.biz\\",
         "thumbPath": "https://bsncloud.s3.amazonaws.com:443/public/icons/100x100/icon_folder_incoming.png",
         "mediaType": "Folder",
         "creationDate": "2020-07-09T19:09:05.067Z",
         "lastModifiedDate": "2020-07-09T19:09:05.067Z",
         "hasSubFolders": false,
         "hasFiles": false,
         "permissions": []
      },
            {
         "id": 602847,
         "name": "My Videos",
         "virtualPath": "\\Users\\anon@brightsign.biz\\",
         "thumbPath": "https://bsncloud.s3.amazonaws.com:443/public/icons/100x100/icon_folder.png",
         "mediaType": "Folder",
         "creationDate": "20232020-0607-07T1909T19:0009:0805.156Z143Z",
         "lastModifiedDate": "20232020-0607-07T1909T19:0009:0805.156Z143Z",
         "hasSubFolders": false,
         "hasFiles": false,
         "permissions": []
      }
  

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type
 ],
   "totalItemCount": 3,
   "matchingItemCount": 3,
   "pageSize": 100,
   "nextMarker": "LDYwMjg0Nw==",
   "isTruncated": false,
   "sortExpression": "[Content].[FileName] ASC",
   "filterExpression": "[Type] IN ('Image', 'Video', 'Audio', 'Folder') AND [VirtualPath] = \\Users\\anon@brightsign.biz\\"
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /Count

POST /Root/{*virtualPath}

Retrieves the number of content files on the network matching the specified filter criteria. If no filter is included, this call returns the total number of content files on the network. Creates a content folder in the specified virtual directory folder and returns the URL link to the folder location. This resource maps to the virtual folder in the content library, accordingly the virtual path is either complete or a partial path to a destination content folder or file.

Required Scope Token

bsn.api.main.content.retrievecreate

______________________________________________________________

Query String Parameter

Segment

filtervirtualPath string optional

An expression for filtering search results.The location of the content instance in the BSN.cloud virtual directory

______________________________________________________________

Request Body

The Content Folder Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • filter virtualPath is set to [FileName] CONTAINS '*.jpeg' /Users/anon@brightsign.biz/

Code Block
GETPOST /2022/06/REST/Content/Root/Count/?filter=%5BFileName%5D%20CONTAINS%20%27*.jpeg%27Users/anon@brightsign.biz/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, 
Accept-Encoding: gzip,deflate
Content-Type: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflateContent-Length: 95

This is the example request body:

Code Block
languagejson
{
    "id": 0,
    "name": "Testing",
    "virtualPath": "\\Users\\anon@brightsign.biz\\",
    "thumbPath": "",
    "mediaType": "Folder",
    "creationDate": "0001-01-01T00:00:00",
    "lastModifiedDate": "0001-01-01T00:00:00",
    "hasSubFolders": false,
    "hasFiles": false,
    "permissions": []
}

______________________________________________________________

Response

Success Response Body

200: The content file count is returned as an integer value.

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /{id:int}/ 

Retrieves the specified content file 

Required Scope Token

bsn.api.main.content.retrieve

______________________________________________________________

Segment

id int 

A unique identifier for the content instance. This value is generated by the server when the content file is uploaded.201: Returns the new resource created and referenced by the Uri (given by the Location header field) in the response. The response includes theContent Folder Entity.

Example

Code Block
languagejson
{
    "id": 11056355,
    "name": "Testing",
    "virtualPath": "\\Users\\anon@brightsign.biz\\",
    "thumbPath": "",
    "mediaType": "Folder",
    "creationDate": "2023-06-07T19:00:08.156Z",
    "lastModifiedDate": "2023-06-07T19:00:08.156Z",
    "hasSubFolders": false,
    "hasFiles": false,
    "permissions": []
}   

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

GET /Count/ 

Retrieves the number of content files on the network matching the specified filter criteria. If no filter is included, this call returns the total number of content files on the network. 

Required Scope Token

bsn.api.main.content.retrieve

______________________________________________________________

Query String

Parameters

These parameters should only be used when requesting an image (they depend on the representation type):

maxWidth uShort optional

The maximum width of the content instance (this should equal 100).

maxHeight uShort optional

The maximum height of the content instance (this should equal 100)

Parameter

filter string optional

An expression for filtering search results.

______________________________________________________________

Request

Examples

Example

This The example request returns JSON metadata. The parameters and headers are set as follows (since the header specifies application/json, the maxWidth and maxHeight parameters are not needed):

  • id is set to 646864

Code Block
GET /2022/06/REST/Content/646864/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept-Encoding: gzip,deflate
Accept: application/json

This example request returns an image file. The parameters and headers are set as follows:

  • id is set to 646864

  • maxWidth is set to 100

  • maxHeight is set to 100

Code Block
GET /2022/06/REST/Content/646864/?maxWidth=100&maxHeight=100 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept-Encoding: gzip,deflate
Accept: image/png, image/jpeg, image/gif

____________________________________________________________

Response

Success Response with Body

200:  Returns either the Content Entity or the file associated with the requested content, depending on what is specified in the request.

Success Response

304: The resource was not modified since the time specified in the “If-Modified-Since” header

Example

The returned JSON metadata for the first request example is:

Code Block
languagejson
{ "id": 646864, "fileName": "ZoomBG3.jpeg", "physicalPath": "https://bsncloud.s3.amazonaws.com/bsts/298c54dh46an165c07rp690c345f0ea7", "virtualPath": "\\Users\\Night\\", "thumbPath": "https://bsncloud.s3.amazonaws.com/bsts/3b0f47e246an043a06ba690c345f0ea7", "mediaType": "Image", "fileSize": 6534, "fileHash": "SHA1:79060849FC80F02990175BB4BDE4375E6F05F622", "uploadDate": "2020-07-27T16:16:47.817Z", "lastModifiedDate": "2020-07-27T16:16:47.817Z", "fileLastModifiedDate": "2020-07-16T17:34:20.41Z", "probeData": "", "metadata": { "widthPx": 275, "heightPx": 183, "colorSpace": "sRGB", "colorDepthBit": 8, "imageFormat": "Jpeg" }, "dynamicPlaylists": [], "liveMediaFeeds": [], "taggedPlaylists": [], "presentations": [], "tags": {}, "permissions": [

:

  • filter is set to [FileName] CONTAINS '*.jpeg'

Code Block
GET /2022/06/REST/Content/Count/?filter=%5BFileName%5D%20CONTAINS%20%27*.jpeg%27 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: The content file count is returned as an integer value.

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /{id:int}/ 

Retrieves the specified content file 

Required Scope Token

bsn.api.main.content.retrieve

______________________________________________________________

Segment

id int 

A unique identifier for the content instance. This value is generated by the server when the content file is uploaded.

______________________________________________________________

Query String Parameters

These parameters should only be used when requesting an image (they depend on the representation type):

maxWidth uShort optional

The maximum width of the content instance (this should equal 100).

maxHeight uShort optional

The maximum height of the content instance (this should equal 100).

______________________________________________________________

Request Examples

This example request returns JSON metadata. The parameters and headers are set as follows (since the header specifies application/json, the maxWidth and maxHeight parameters are not needed):

  • id is set to 646864

Code Block
GET /2022/06/REST/Content/646864/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept-Encoding: gzip,deflate
Accept: application/json, application/vnd.bsn.error+json

This example request returns an image file. The parameters and headers are set as follows:

  • id is set to 646864

  • maxWidth is set to 100

  • maxHeight is set to 100

Code Block
GET /2022/06/REST/Content/646864/?maxWidth=100&maxHeight=100 HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept-Encoding: gzip,deflate
Accept: image/png, image/jpeg, image/gif

____________________________________________________________

Response

Success Response with Body

200:  Returns either the Content Entity or the file associated with the requested content, depending on what is specified in the request.

Success Response

304: The resource was not modified since the time specified in the “If-Modified-Since” header

Example

The returned JSON metadata for the first request example is:

Code Block
languagejson
{
  "id": 646864,
  "fileName": "ZoomBG.jpeg",
  "physicalPath": "https://bsncloud.s3.amazonaws.com/bsts/7abaa3f28f5f824d4f0bbd5eec295f13",
  "virtualPath": "\\Users\\Night\\",
  "thumbPath": "https://bsncloud.s3.amazonaws.com/bsts/e6f6eea4387fcae58b40be611c8c3017",
  "mediaType": "Image",
  "fileSize": 6534,
  "fileHash": "SHA1:79060849FC80F02990175BB4BDE4375E6F05F622",
  "uploadDate": "2020-07-27T16:16:47.817Z",
  "lastModifiedDate": "2020-07-27T16:16:47.817Z",
  "fileLastModifiedDate": "2020-07-16T17:34:20.41Z",
  "probeData": "",
  "metadata": {
    "widthPx": 275,
    "heightPx": 183,
    "colorSpace": "sRGB",
    "colorDepthBit": 8,
    "imageFormat": "Jpeg"
  },
  "dynamicPlaylists": [
    {
      "id": 123,
      "name": "My Dynamic Playlist"
    }
  ],
  "liveMediaFeeds": [
    {
      "id": 124,
      "name": "My Live Media Feed"
    }
  ],
  "taggedPlaylists": [
    {
      "id": 125,
      "name": "My Tagged Playlist"
    }
  ],
  "presentations": [
    {
      "id": 126,
      "name": "My Presentation",
      "type": "Presentation",
      "link": null
    }
  ],
  "tags": {
    "string::[Content].<Location>": "Sea Coast",
    "dateTime::[Content].<TimeTaken>": "2023-10-10T19:06:00.000Z"
  },
  "permissions": [
    {
      "entityId": 646864,
      "operationUID": "db3a6287-8d03-51b4-6528-704fac1ab8c9",
      "principal": {
        "login": "anon@brightsign.biz",
        "type": "User",
        "id": 101026
      },
      "isFixed": false,
      "isInherited": false,
      "isAllowed": false,
      "creationDate": "2023-10-11T22:07:33.507Z"
    },
    {
      "entityId": 646864,
      "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
      "principal": {
        "name": "Custom",
        "isCustom": true,
        "type": "Role",
        "id": 10498
      },
      "isFixed": false,
      "isInherited": false,
      "isAllowed": true,
      "creationDate": "2023-10-11T22:07:33.473Z"
    }
  ]
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

PUT /{id:int}/ 

Update the specified content files. 

Required Scope Token

bsn.api.main.content.update

______________________________________________________________

Segment

id int 

A unique identifier for the content instance. This value is generated by the server when the content file is uploaded.

______________________________________________________________

Request Body

TheContent Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is 646864

Code Block
PUT /2022/06/REST/Content/646864/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json, application/vnd.bsn.error+json
Content-Length: 861

This is the example request body:

Code Block
languagejson
{
   "id": 646864,
   "fileName": "Display.jpeg",
   "physicalPath": null,
   "virtualPath": "\\Users\\Night\\",
   "thumbPath": null,
   "mediaType": "Image",
   "fileSize": 0,
   "fileHash": null,
   "uploadDate": "0001-01-01T00:00:00",
   "lastModifiedDate": "0001-01-01T00:00:00",
   "fileLastModifiedDate": "0001-01-01T00:00:00",
   "probeData": null,
   "metadata": null,
   "dynamicPlaylists": null,
   "liveMediaFeeds": null,
   "taggedPlaylists": null,
   "presentations": null,
   "tags": {},
   "permissions": []
}

______________________________________________________________

Response

Success

204: The specified content file has been updated on the network 

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: Either the request or request body is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

412: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

DELETE /{id:int}/ 

Removes the specified content file. 

Required Scope Token

bsn.api.main.content.delete

______________________________________________________________

Segment

id int 

A unique identifier for the content instance to delete

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 646864

Code Block
DELETE /2022/06/REST/Content/646864/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response 

Success

204: The specified content file has been removed

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

412: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

5XX: Any 500 code is an internal server error

GET /{id:int}/Tags/ 

Returns tags associated with the specified content file.

Required Scope Token

bsn.api.main.content.retrieve

______________________________________________________________

Segment

id int 

A unique identifier for the content file. This value is generated by the server when the content file is uploaded.

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 646864

Code Block
GET /2022/06/REST/Content/646864/Tags/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns a list of properties and their values.

Example

Code Block
languagejson
{
   "string::[Content].<Anon>": "image",
   "number::[Content].<BillingRate>": "30"
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

POST /{id:int}/Tags/ 

Adds one or more tags to the specified content file. The following are valid system-defined values for content tags: "FileName", "FileSize", "ContentType",  and "UploadDate".  

Required Scope Token

bsn.api.main.content.update

______________________________________________________________

Segment

id int 

A unique identifier for the content instance. This value is generated by the server when the content file is uploaded.

______________________________________________________________

Request Body

tags DynamicObject

 A collection of key value pairs where the key is tag name, and the value is tag value.  See the Tags entry in Player Entity for more information.

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 646864

  • A tag is added to set the Billing Rate to 30

Code Block
POST 2022/06/REST/Content/646864/Tags/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 34

This is the example request body:

Code Block
languagejson
{
	"[Content].<BillingRate>": 30
}

______________________________________________________________

Response

Success

204:  A new tag has been successfully added to the specified content file

Failure

400: Either a tag with the specified key was already defined, the request is malformed and therefore invalid, or there is a conflict

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

DELETE /{id:int}/Tags/ 

Removes one or more tags from the specified content file 

Required Scope Token

bsn.api.main.content.update

______________________________________________________________

Segment

id int 

A unique identifier for the content instance. This value is generated by the server when the content file is uploaded.

______________________________________________________________

Request Body

list List<string> 

A list of key/value pairs that specify the tags to delete from the content file

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 646864

  • The "string::[Content].<Anon>" tag will be deleted

Code Block
DELETE /2022/06/REST/Content/646864/Tags/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 28

This is the example request body:

Code Block
languagejson
[
   "string::[Content].<Anon>"
]

______________________________________________________________

Response

Success

204: The specified tags have been removed from the specified content file 

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

412: Precondition failed (the resource changed since the time specified in the “If-Unmodified-Since” header value)

5XX: Any 500 code is an internal server error

GET /Operations/ 

Returns the operational permissions granted to roles for specific business operations

Required Scope Token

bsn.api.main.operations.retrieve

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

Code Block
GET /2022/06/REST/Content/Operations/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Origin: http://localhost/

______________________________________________________________

Response

Success Response Body

200: Returns the Business Operations Entity

Example

Expand
titleExpand to see response information:
Code Block
languagejson
{
   "uid": "39e69897-8d9a-f634-95cf-7419a3e93c23",
   "singularName": "Full Control",
   "pluralName": "Content (Full Control)",
   "fullName": "Content (Full Control)",
   "targetEntity": "Content",
   "appliance": "Instance, Collection",
   "parent": null,
   "descendants":    [
            {
         "uid": "db3a6287-8d03-51b4-6528-704fac1ab8c9",
         "singularName": "View Content",
         "pluralName": "View Content",
         "fullName": "Content (Full Control) - View Content",
         "targetEntity": "Content",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "39e69897-8d9a-f634-95cf-7419a3e93c23",
            "singularName": "Full Control",
            "pluralName": "Content (Full Control)",
            "fullName": "Content (Full Control)",
            "targetEntity": "Content",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "db3a6287-8d03-51b4-6528-704fac1ab8c9",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": false,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:47.14Z"
            },
                        {
               "entityId": null,
               "operationUID": "db3a6287-8d03-51b4-6528-704fac1ab8c9",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": false,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:47.663Z"
            },
                        {
               "entityId": null,
               "operationUID": "db3a6287-8d03-51b4-6528-704fac1ab8c9",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:45.817Z"
            },
                        {
               "entityId": null,
               "operationUID": "db3a6287-8d03-51b4-6528-704fac1ab8c9",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.077Z"
            },
                        {
               "entityId": null,
               "operationUID": "db3a6287-8d03-51b4-6528-704fac1ab8c9",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.39Z"
            },
                        {
               "entityId": null,
               "operationUID": "db3a6287-8d03-51b4-6528-704fac1ab8c9",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:46.68Z"
            }
         ]
      },
            {
         "uid": "d61ef4ac-4da7-5f34-d9ba-6fc152313e26",
         "singularName": "Upload Content",
         "pluralName": "Upload Content",
         "fullName": "Content (Full Control) - Upload Content",
         "targetEntity": "Content",
         "appliance": "Collection",
         "parent":          {
            "uid": "39e69897-8d9a-f634-95cf-7419a3e93c23",
            "singularName": "Full Control",
            "pluralName": "Content (Full Control)",
            "fullName": "Content (Full Control)",
            "targetEntity": "Content",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "d61ef4ac-4da7-5f34-d9ba-6fc152313e26",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": false,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.69Z"
            },
                        {
               "entityId": null,
               "operationUID": "d61ef4ac-4da7-5f34-d9ba-6fc152313e26",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:45.817Z"
            },
                        {
               "entityId": null,
               "operationUID": "d61ef4ac-4da7-5f34-d9ba-6fc152313e26",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.077Z"
            },
                        {
               "entityId": null,
               "operationUID": "d61ef4ac-4da7-5f34-d9ba-6fc152313e26",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.39Z"
            },
                        {
               "entityId": null,
               "operationUID": "d61ef4ac-4da7-5f34-d9ba-6fc152313e26",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.127Z"
            },
                        {
               "entityId": null,
               "operationUID": "d61ef4ac-4da7-5f34-d9ba-6fc152313e26",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.65Z"
            }
         ]
      },
            {
         "uid": "5e5354dc-5ef6-4d9e-a832-a8f1014c85ad",
         "singularName": "Update Content",
         "pluralName": "Update Content",
         "fullName": "Content (Full Control) - Update Content",
         "targetEntity": "Content",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "39e69897-8d9a-f634-95cf-7419a3e93c23",
            "singularName": "Full Control",
            "pluralName": "Content (Full Control)",
            "fullName": "Content (Full Control)",
            "targetEntity": "Content",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "5e5354dc-5ef6-4d9e-a832-a8f1014c85ad",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:45.817Z"
            },
                        {
               "entityId": null,
               "operationUID": "5e5354dc-5ef6-4d9e-a832-a8f1014c85ad",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.077Z"
            },
                        {
               "entityId": null,
               "operationUID": "5e5354dc-5ef6-4d9e-a832-a8f1014c85ad",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.39Z"
            },
                        {
               "entityId": null,
               "operationUID": "5e5354dc-5ef6-4d9e-a832-a8f1014c85ad",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:46.68Z"
            },
                        {
               "entityId": null,
               "operationUID": "5e5354dc-5ef6-4d9e-a832-a8f1014c85ad",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.127Z"
            },
                        {
               "entityId": null,
               "operationUID": "5e5354dc-5ef6-4d9e-a832-a8f1014c85ad",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.65Z"
            }
         ]
      },
            {
         "uid": "ff7314eb-8094-42c7-8d86-9741d29ce7f1",
         "singularName": "Manage Tags",
         "pluralName": "Manage Tags",
         "fullName": "Content (Full Control) - Manage Tags",
         "targetEntity": "Content",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "39e69897-8d9a-f634-95cf-7419a3e93c23",
            "singularName": "Full Control",
            "pluralName": "Content (Full Control)",
            "fullName": "Content (Full Control)",
            "targetEntity": "Content",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "ff7314eb-8094-42c7-8d86-9741d29ce7f1",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:45.817Z"
            },
                        {
               "entityId": null,
               "operationUID": "ff7314eb-8094-42c7-8d86-9741d29ce7f1",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.077Z"
            },
                        {
               "entityId": null,
               "operationUID": "ff7314eb-8094-42c7-8d86-9741d29ce7f1",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.39Z"
            },
                        {
               "entityId": null,
               "operationUID": "ff7314eb-8094-42c7-8d86-9741d29ce7f1",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:46.68Z"
            },
                        {
               "entityId": null,
               "operationUID": "ff7314eb-8094-42c7-8d86-9741d29ce7f1",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.127Z"
            },
                        {
               "entityId": null,
               "operationUID": "ff7314eb-8094-42c7-8d86-9741d29ce7f1",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.65Z"
            }
         ]
      },
            {
         "uid": "8cba3c2c-c3ab-4b50-970d-6d6382a05856",
         "singularName": "Assign Content",
         "pluralName": "Assign Content",
         "fullName": "Content (Full Control) - Assign Content",
         "targetEntity": "Content",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "39e69897-8d9a-f634-95cf-7419a3e93c23",
            "singularName": "Full Control",
            "pluralName": "Content (Full Control)",
            "fullName": "Content (Full Control)",
            "targetEntity": "Content",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "8cba3c2c-c3ab-4b50-970d-6d6382a05856",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:45.817Z"
            },
                        {
               "entityId": null,
               "operationUID": "8cba3c2c-c3ab-4b50-970d-6d6382a05856",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.077Z"
            },
                        {
               "entityId": null,
               "operationUID": "8cba3c2c-c3ab-4b50-970d-6d6382a05856",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.39Z"
            },
                        {
               "entityId": null,
               "operationUID": "8cba3c2c-c3ab-4b50-970d-6d6382a05856",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:46.68Z"
            },
                        {
               "entityId": null,
               "operationUID": "8cba3c2c-c3ab-4b50-970d-6d6382a05856",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.127Z"
            },
                        {
               "entityId": null,
               "operationUID": "8cba3c2c-c3ab-4b50-970d-6d6382a05856",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.65Z"
            }
         ]
      },
            {
         "uid": "2080cb7c-813a-4e9f-90c4-2af213d78d88",
         "singularName": "Unassign Content",
         "pluralName": "Unassign Content",
         "fullName": "Content (Full Control) - Unassign Content",
         "targetEntity": "Content",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "39e69897-8d9a-f634-95cf-7419a3e93c23",
            "singularName": "Full Control",
            "pluralName": "Content (Full Control)",
            "fullName": "Content (Full Control)",
            "targetEntity": "Content",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "2080cb7c-813a-4e9f-90c4-2af213d78d88",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:45.817Z"
            },
                        {
               "entityId": null,
               "operationUID": "2080cb7c-813a-4e9f-90c4-2af213d78d88",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.077Z"
            },
                        {
               "entityId": null,
               "operationUID": "2080cb7c-813a-4e9f-90c4-2af213d78d88",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.39Z"
            },
                        {
               "entityId": null,
               "operationUID": "2080cb7c-813a-4e9f-90c4-2af213d78d88",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:46.68Z"
            },
                        {
               "entityId": null,
               "operationUID": "2080cb7c-813a-4e9f-90c4-2af213d78d88",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.127Z"
            },
                        {
               "entityId": null,
               "operationUID": "2080cb7c-813a-4e9f-90c4-2af213d78d88",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.65Z"
            }
         ]
      },
            {
         "uid": "9cfe2e6c-bb4f-404e-b94e-54d4d705b299",
         "singularName": "Edit Permissions",
         "pluralName": "Edit Permissions",
         "fullName": "Content (Full Control) - Edit Permissions",
         "targetEntity": "Content",
         "appliance": "Collection",
         "parent":          {
            "uid": "39e69897-8d9a-f634-95cf-7419a3e93c23",
            "singularName": "Full Control",
            "pluralName": "Content (Full Control)",
            "fullName": "Content (Full Control)",
            "targetEntity": "Content",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "9cfe2e6c-bb4f-404e-b94e-54d4d705b299",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:45.817Z"
            },
                        {
               "entityId": null,
               "operationUID": "9cfe2e6c-bb4f-404e-b94e-54d4d705b299",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.077Z"
            },
                        {
               "entityId": null,
               "operationUID": "9cfe2e6c-bb4f-404e-b94e-54d4d705b299",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.39Z"
            },
                        {
               "entityId": null,
               "operationUID": "9cfe2e6c-bb4f-404e-b94e-54d4d705b299",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:46.68Z"
            },
                        {
               "entityId": null,
               "operationUID": "9cfe2e6c-bb4f-404e-b94e-54d4d705b299",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.127Z"
            },
                        {
               "entityId": null,
               "operationUID": "9cfe2e6c-bb4f-404e-b94e-54d4d705b299",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.65Z"
            }
         ]
      },
            {
         "uid": "1aab37d3-1540-9c34-b116-62090419488e",
         "singularName": "Delete Content",
         "pluralName": "Delete Content",
         "fullName": "Content (Full Control) - Delete Content",
         "targetEntity": "Content",
         "appliance": "Instance, Collection",
         "parent":          {
            "uid": "39e69897-8d9a-f634-95cf-7419a3e93c23",
            "singularName": "Full Control",
            "pluralName": "Content (Full Control)",
            "fullName": "Content (Full Control)",
            "targetEntity": "Content",
            "appliance": "Instance, Collection",
            "parent": null,
            "descendants": null,
            "permissions": null
         },
         "descendants": [],
         "permissions":          [
                        {
               "entityId": null,
               "operationUID": "1aab37d3-1540-9c34-b116-62090419488e",
               "principal":                {
                  "name": "Network Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 5
               },
               "isFixed": true,
               "isInherited": false,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:47.15Z"
            },
                        {
               "entityId": null,
               "operationUID": "1aab37d3-1540-9c34-b116-62090419488e",
               "principal":                {
                  "name": "Administrators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 1
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:45.817Z"
            },
                        {
               "entityId": null,
               "operationUID": "1aab37d3-1540-9c34-b116-62090419488e",
               "principal":                {
                  "name": "General Managers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 2
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.077Z"
            },
                        {
               "entityId": null,
               "operationUID": "1aab37d3-1540-9c34-b116-62090419488e",
               "principal":                {
                  "name": "Creators",
                  "isCustom": false,
                  "type": "Role",
                  "id": 3
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": true,
               "creationDate": "2020-08-17T20:49:46.39Z"
            },
                        {
               "entityId": null,
               "operationUID": "1aab37d3-1540-9c34-b116-62090419488e",
               "principal":                {
                  "name": "Publishers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 4
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:46.68Z"
            },
                        {
               "entityId": null,
               "operationUID": "1aab37d3-1540-9c34-b116-62090419488e",
               "principal":                {
                  "name": "Viewers",
                  "isCustom": false,
                  "type": "Role",
                  "id": 6
               },
               "isFixed": true,
               "isInherited": true,
               "isAllowed": false,
               "creationDate": "2020-08-17T20:49:47.65Z"
            }
         ]
      }
   ],
   "permissions":    [
            {
         "entityId": null,
         "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
         "principal":          {
            "name": "Administrators",
            "isCustom": false,
            "type": "Role",
            "id": 1
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": true,
         "creationDate": "2020-08-17T20:49:45.817Z"
      },
            {
         "entityId": null,
         "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
         "principal":          {
            "name": "General Managers",
            "isCustom": false,
            "type": "Role",
            "id": 2
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": true,
         "creationDate": "2020-08-17T20:49:46.077Z"
      },
            {
         "entityId": null,
         "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
         "principal":          {
            "name": "Creators",
            "isCustom": false,
            "type": "Role",
            "id": 3
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": true,
         "creationDate": "2020-08-17T20:49:46.39Z"
      },
            {
         "entityId": null,
         "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
         "principal":          {
            "name": "Publishers",
            "isCustom": false,
            "type": "Role",
            "id": 4
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": false,
         "creationDate": "2020-08-17T20:49:46.68Z"
      },
            {
         "entityId": null,
         "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
         "principal":          {
            "name": "Network Managers",
            "isCustom": false,
            "type": "Role",
            "id": 5
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": false,
         "creationDate": "2020-08-17T20:49:47.127Z"
      },
            {
         "entityId": null,
         "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
         "principal":          {
            "name": "Viewers",
            "isCustom": false,
            "type": "Role",
            "id": 6
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": false,
         "creationDate": "2020-08-17T20:49:47.65Z"
      }
   ]
}

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

GET /{id:int}/Permissions/ 

Returns object permissions for a given content instance.

Required Scope Token

bsn.api.main.content.retrieve

______________________________________________________________

Segment

id int 

A unique identifier for the content instance. This value is generated by the server when the content file is uploaded.

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 10705194

Code Block
GET /2022/06/REST/Content/10705194/Permissions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

Response

Success Response Body

200: Returns an array of Permission entities 

Example

Code Block
languagejson
[{
   "entityId": 10705194,
   "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
   "principal":    {
      "login": "anon@brightsign.biz",
      "type": "User",
      "id": 101026
   },
   "isFixed": true,
   "isInherited": false,
   "isAllowed": true,
   "creationDate": "2023-09-08T17:15:36.013Z"
}]

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404: The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error

POST /{id:int}/Permissions/ 

Adds permissions to the specified content instance

Required Scope Token

bsn.api.main.content.update

______________________________________________________________

Segment

id  int 

A unique identifier for the content instance. This value is generated by the server when the content file is uploaded.

______________________________________________________________

Request Body

An array of Permission entities

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

Code Block
POST /2022/06/REST/Content/12345/Permissions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 313

This is the example request body:

Code Block
languagejson
[
  {
    "entityId": 12345,
    "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
    "principal": {
      "login": "anon@brightsign.biz",
      "type": "User",
      "id": 101026
    },
    "isFixed": true,
    "isInherited": false,
    "isAllowed": true,
    "creationDate": "0001-01-01T00:00:00"
  },
  {
    "entityId": 12345,
    "operationUID": "ff7314eb-8094-42c7-8d86-9741d29ce7f1",
    "principal": {
      "name": "Custom",
      "isCustom": true,
      "type": "Role",
      "id": 10498
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": false,
    "creationDate": "0001-01-01T00:00:00"
  }
]

______________________________________________________________

Response 

Success

204: The permissions were successfully added to the specified content instance

Failure

400: The request is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method

404: The server cannot find the requested resource (the path does not exist) 

415: The server cannot accept the data representation that you sent (as specified in the "Content-Type" header)

5XX: Any 500 code is an internal server error

DELETE /{id:int}/Permissions/ 

Removes permissions from the specified content file

Required Scope Token

bsn.api.main.content.update

______________________________________________________________

Segment

id int 

A unique identifier for the content file. This value is generated by the server when the content file is uploaded.

______________________________________________________________

Request Body

An array of Permission entities

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 10705194 12345

Code Block
DELETE /2022/06/REST/Content/1070519412345/Permissions/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}}
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate
Content-Type: application/json
Content-Length: 313

This is the example request body:

Code Block
languagejson
[
  {
    "entityId": 12345,
    "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
    "principal": {
      "login": "anon@brightsign.biz",
      "type": "User",
      "id": 101026
    },
    "isFixed": true,
    "isInherited": false,
    "isAllowed": true,
    "creationDate": "0001-01-01T00:00:00"
  },
  {
    "entityId": 12345,
    "operationUID": "ff7314eb-8094-42c7-8d86-9741d29ce7f1",
    "principal": {
      "name": "Custom",
      "isCustom": true,
      "type": "Role",
      "id": 10498
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": false,
    "creationDate": "0001-01-01T00:00:00"
  }
]

Response

Success

204: The specified permissions have been removed from the specified content file 

Failure

300: The requested representation could not be returned because it is ambiguous (there are multiple requested representations)

400: The request or request body is malformed and therefore invalid

401: The access token is invalid or not specified

403: The supplied access token, though valid, doesn't provide access to this method 

404The server cannot find the requested resource (the path does not exist)

406: The server cannot return the data representation that you requested (as specified in the "Accept" header)

5XX: Any 500 code is an internal server error