Content Endpoints (2022/06)
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: An expressionexpression 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 (see this pagethis 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 files 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 files that can be contained in the response body. This defaults to the maximum allowed page size (100).
______________________________________________________________
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
GET /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______________________________________________________________
Success Response Body
200: Returns a paged listpaged list of ContentContent 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
{
"items": [
{
"id": 123456,
"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:79060249FC80G02990175BB4BDE4275E6F05F612",
"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": 123456,
"operationUID": "db3a6287-8d03-51b4-6528-704fac1ab8c9",
"principal": {
"login": "[email protected]",
"type": "User",
"id": 101026
},
"isFixed": false,
"isInherited": false,
"isAllowed": false,
"creationDate": "2023-10-11T22:07:33.507Z"
},
{
"entityId": 123456,
"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"
}
]
}
],
"totalItemCount": 23,
"matchingItemCount": 2,
"pageSize": 1,
"nextMarker": "Wm9vbUJHMy5qcGVnLDY0Njg2NA==",
"prevMarker": "Wm9vbUJHMy5qcGVnLDY0Njg267nb",
"isTruncated": true,
"sortExpression": "[LastModifiedDate] DESC",
"filterExpression": "[FileName] CONTAINS '*.jpeg'"
}Failure Response
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 you to simultaneously delete one or more content files of the Auxiliary, Stylesheet, Font, Text, Image, Video, and/or Audio mediaType. Folders (virtual paths) cannot be deleted using this method.
Required Scope Token
bsn.api.main.content.delete
______________________________________________________________
Query String Parameter
- filter string required: An expressionexpression 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'
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______________________________________________________________
Success Response Body
200: Returns the number of affected Content files as an integer value.
Failure Response
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, or it is rejected in accordance to the business rules
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 Content file location 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 files exceeds the pageSize.
- pageSize int optional: The maximum number of Content files 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/[email protected]/
GET /2022/06/REST/Content/Root/Users/[email protected]/ 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______________________________________________________________
Success Response Body
200: Returns a paged listpaged list of ContentContent and Content FolderContent 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
{
"items": [
{
"id": 123456,
"name": "My Images",
"virtualPath": "\\Users\\[email protected]\\",
"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": 1234567,
"name": "My Incoming",
"virtualPath": "\\Users\\[email protected]\\",
"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": 12345678,
"name": "My Videos",
"virtualPath": "\\Users\\[email protected]\\",
"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==",
"prevMarker": "LDYwMjg089nh",
"isTruncated": false,
"sortExpression": "[Content].[FileName] ASC",
"filterExpression": "[Type] IN ('Image', 'Video', 'Audio', 'Folder') AND [VirtualPath] = \\Users\\[email protected]\\"
}Failure Response
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 Content location in the BSN.Cloud virtual directory
______________________________________________________________
Request Body
______________________________________________________________
Request Example
The example request parameters and headers are set as follows:
- virtualPath is set to /Users/[email protected]/
POST /2022/06/REST/Content/Root/Users/[email protected]/ 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: 95This is the example request body:
{
"id": 0,
"name": "Testing",
"virtualPath": "\\Users\\[email protected]\\",
"thumbPath": "",
"mediaType": "Folder",
"creationDate": "0001-01-01T00:00:00",
"lastModifiedDate": "0001-01-01T00:00:00",
"hasSubFolders": false,
"hasFiles": false,
"permissions": []
}______________________________________________________________
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 the Content Folder Entity.
Example
{
"id": 123456,
"name": "Testing",
"virtualPath": "\\Users\\[email protected]\\",
"thumbPath": "",
"mediaType": "Folder",
"creationDate": "2023-06-07T19:00:08.156Z",
"lastModifiedDate": "2023-06-07T19:00:08.156Z",
"hasSubFolders": false,
"hasFiles": false,
"permissions": []
} Failure Response
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, or it is rejected in accordance to the business rules
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 Parameter
- filter string optional: An expressionexpression for filtering search results.
______________________________________________________________
Request Example
The example request parameters and headers are set as follows:
- filter is set to [FileName] CONTAINS '*.jpeg'
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______________________________________________________________
Success Response Body
200: The Content file count is returned as an integer value.
Failure Response
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}/
Retrieves the specified Content file
Required Scope Token
bsn.api.main.content.retrieve
______________________________________________________________
Segment
- id int: A unique identifier for the Content. 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 content width (this should equal 100).
- maxHeight uShort optional: The maximum content height (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 123456
- The optional If-Modified-Since header value equals the Last-Modified header value retrieved from the GET /id response.
GET /2022/06/REST/Content/123456/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Modified-Since: Fri, 08 Dec 2023 16:34:43 GMT
Accept-Encoding: gzip,deflate
Accept: application/json, application/vnd.bsn.error+jsonThis example request returns an image file. The parameters and headers are set as follows:
- id is set to 123456
- maxWidth is set to 100
- maxHeight is set to 100
GET /2022/06/REST/Content/123456/?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______________________________________________________________
Success Response with Body
200: Returns either the Content EntityContent Entity or the file associated with the requested content, depending on what is specified in the request.
Example
This is an example of a 200 level response:
{
"id": 123456,
"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": "2023-12-08T16:34:44.093Z",
"fileLastModifiedDate": "2020-07-27T16:16:47.817Z",
"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": 123456,
"operationUID": "db3a6287-8d03-51b4-6528-704fac1ab8c9",
"principal": {
"login": "[email protected]",
"type": "User",
"id": 101026
},
"isFixed": false,
"isInherited": false,
"isAllowed": false,
"creationDate": "2023-10-11T22:07:33.507Z"
},
{
"entityId": 123456,
"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"
}
]
}Success Response
304: The resource was not modified since the time specified in the “If-Modified-Since” header
Failure Response
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}/
Update the specified Content files.
Required Scope Token
bsn.api.main.content.update
______________________________________________________________
Segment
- id int: A unique identifier for the Content. This value is generated by the server when the content file is uploaded.
______________________________________________________________
Request Body
- The Content EntityContent Entity
______________________________________________________________
Request Example
The example request parameters and headers are set as follows:
- id is 123456
- The optional If-Unmodified-Since header value equals the Last-Modified header value retrieved from the GET /id response.
PUT /2022/06/REST/Content/123456/ 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
If-Unmodified-Since: Wed, 20 Dec 2023 21:32:34 GMT
Content-Type: application/json
Content-Length: 861This is the example request body:
{
"id": 0,
"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": []
}______________________________________________________________
Success Response
204: The specified content file has been updated on the network
Failure Response
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, or it is rejected in accordance to the business rules
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
PATCH /{id}/
Applies a sequence of changes to a specific Content entity specified by id. See RFC 6902.
Required Scope Token
bsn.api.main.content.regular.update
______________________________________________________________
Segment
- id int: A unique identifier for the Content. This value is generated by the server when the Content file is uploaded.
______________________________________________________________
Request Body
These properties are entries in an array. Every entry must have all three of these properties:
- op string: The type of operation - in this case it is always "replace"
- path string: A Uri path that references the location within the target document where the update will be performed
- value object: The replacement value(s) for the parameters that must be updated. This can be an array.
______________________________________________________________
Request Example
The example request parameters and headers are set as follows:
- id is 12345
PATCH /2022/06/REST/Content/12345/ 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-patch+json
Content-Length: 1068This is the example request body:
[
{
"op": "replace",
"path": "/virtualPath/",
"value": "\\Shared\\Incoming\\"
},
{
"op": "replace",
"path": "/tags/",
"value": {
"String::[Content].<String>": "HelloWorld",
"Boolean::[Content].<Boolean>": true,
"Number::[Content].<Number>": 42,
"DateTime::[Content].<DateTime>": "2024-01-12T22:00:00.123Z",
"NumericArray::[Content].<NumericArray>": "1, 2, 3",
"StringArray::[Content].<StringArray>": "\"A\", \"B\", \"C\""
}
},
{
"op": "replace",
"path": "/permissions/",
"value": [
{
"entityId": 12345,
"operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
"principal": {
"name": "My Custom Role",
"isCustom": true,
"type": "Role",
"id": 54321
},
"isFixed": false,
"isInherited": false,
"isAllowed": true,
"creationDate": "0001-01-01T00:00:00"
}
]
}
]Success Response
204: The parameters have been successfully replaced.
Failure Response
400: The request or request body is malformed and therefore invalid, or it is rejected in accordance with the business rules
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)
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}/
This method allows you to delete files that are of the Auxiliary, Stylesheet, Font, Text, Image, Video, and/or Audio mediaType, as well as empty and non-empty folders which contain files that are not currently used.
Required Scope Token
bsn.api.main.content.delete
______________________________________________________________
Segment
- id int: A unique identifier for the Content to delete.
______________________________________________________________
Request Example
The example request parameters and headers are set as follows:
- id is set to 123456
- The optional If-Unmodified-Since header value equals the Last-Modified header value retrieved from the GET /id response.
DELETE /2022/06/REST/Content/123456/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Unmodified-Since: Wed, 20 Dec 2023 21:32:34 GMT
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate______________________________________________________________
Success Response
204: The specified Content file has been removed
Failure Response
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, or it is rejected in accordance to the business rules
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)
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}/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 123456
GET /2022/06/REST/Content/123456/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______________________________________________________________
Success Response Body
200: Returns a list of properties and their values.
Example
{
"string::[Content].<Anon>": "image",
"number::[Content].<BillingRate>": "30"
}Failure Response
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}/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. 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 123456
- A tag is added to set the Billing Rate to 30
POST 2022/06/REST/Content/123456/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: 34This is the example request body:
{
"[Content].<BillingRate>": 30
}______________________________________________________________
Success Response
204: A new tag has been successfully added to the specified Content file
Failure Response
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}/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. 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 123456
- The "string::[Content].<Anon>" tag will be deleted
DELETE /2022/06/REST/Content/123456/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: 28This is the example request body:
[
"string::[Content].<Anon>"
]______________________________________________________________
Success Response
204: The specified tags have been removed from the specified Content file
Failure Response
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, or it is rejected in accordance to the business rules
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)
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:
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/______________________________________________________________
Success Response Body
200: Returns the Business Operations EntityBusiness Operations Entity
Example
Failure Response
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}/Permissions/
Returns object permissions for the specified Content file
Required Scope Token
bsn.api.main.content.retrieve
______________________________________________________________
Segment
- id int: A unique identifier for the specified Content. 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 1234567
GET /2022/06/REST/Content/1234567/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______________________________________________________________
Success Response Body
200: Returns an array of PermissionPermission entities
Example
[
{
"entityId": 1234567,
"operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
"principal": {
"login": "[email protected]",
"type": "User",
"id": 101026
},
"isFixed": true,
"isInherited": false,
"isAllowed": true,
"creationDate": "2023-09-08T17:15:36.013Z"
}
]Failure Response
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}/Permissions/
Adds permissions to the specified Content file
Required Scope Token
bsn.api.main.content.update
______________________________________________________________
Segment
- id int: A unique identifier for the Content. This value is generated by the server when the Content file is uploaded.
______________________________________________________________
Request Body
- An array of PermissionPermission entities
______________________________________________________________
Request Example
The example request parameters and headers are set as follows:
- id is set to 12345
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: 313This is the example request body:
[
{
"entityId": 12345,
"operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
"principal": {
"login": "[email protected]",
"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"
}
]______________________________________________________________
Success Response
204: The permissions were successfully added to the specified Content
Failure Response
400: The request or request body is malformed and therefore invalid, or it is rejected in accordance to the business rules
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}/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 PermissionPermission entities
______________________________________________________________
Request Example
The example request parameters and headers are set as follows:
- id is set to 12345
DELETE /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: 313This is the example request body:
[
{
"entityId": 12345,
"operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
"principal": {
"login": "[email protected]",
"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"
}
]______________________________________________________________
Success Response
204: The specified permissions have been removed from the specified Content file
Failure Response
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, or it is rejected in accordance to the business rules
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