Versions Compared

Key

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

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...

...


These endpoints enable management of users on a network. A user is an instance of a person that is associated with a single network (there can only be one person, but there can be 0 to an infinite number of users on a network).

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

_________________________________________________________________________

GET /

Returns a list of user instances on a network

Required Scope Token

bsn.api.main.users.retrieve

______________________________________________________________

Query String Parameters

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 user 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 user instances 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

Code Block
GET /2022/06/REST/Users/?marker=RY0JlZW4tWW3hcnMsMTcyMU4&pageSize=1 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 list of User Entity

...

 instances 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": 12345,
      "person":       {
         "id": 1234,
         "login": "JohnDoe@look.biz",
         "password": null,
         "firstName": "John",
         "lastName": "Doe",
         "creationDate": "2020-07-09T19:05:20.247Z",
         "lastModifiedDate": "2023-11-29T17:40:54.403Z",
         "activationDate": "2020-07-09T19:05:38.723Z"
      },
      "description": "Network Administrator",
      "creationDate": "2020-07-09T19:09:04.98Z",
      "lastModifiedDate": "2020-08-17T20:49:48.377Z",
      "lastLoginDate": "2024-01-03T17:55:26.17Z",
      "isLockedOut": false,
      "lastLockoutDate": null,
      "roleName": "Administrators",
      "permissions":       [
                  {
            "entityId": 123456,
            "operationUID": "67b9b0ab-fb5f-36c4-d598-a71aa8998e4e",
            "principal":             {
               "login": "JohnDoe@look.biz",
               "type": "User",
               "id": 12345
            },
            "isFixed": true,
            "isInherited": false,
            "isAllowed": true,
            "creationDate": "2020-08-17T20:49:48.353Z"
         }
      ]
   }],
   "totalItemCount": 2,
   "matchingItemCount": 2,
   "pageSize": 1,
   "nextMarker": "F32RY0JlZW4tWW3hcnMuMTcy00",
   "isTruncated": false,
   "sortExpression": "[User].[Person].[Login] ASC",
   "filterExpression": ""
}

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

...

Endpoints:

...

: Any 500 code is an internal server error

POST /

Creates a user instance on a network

Required Scope Token

bsn.api.main.users.create

______________________________________________________________

Request Body

The User Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

Code Block
POST /2022/06/REST/Users/ 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: 468

This is the example request body:

Code Block
languagejson
{
  "id": 0,
  "person": {
    "id": 0,
    "login": "JohnDoe@host.com",
    "password": null,
    "firstName": "John",
    "lastName": "Doe",
    "creationDate": "0001-01-01T00:00:00",
    "lastModifiedDate": "0001-01-01T00:00:00",
    "activationDate": null
  },
  "description": "Supervisor",
  "creationDate": "0001-01-01T00:00:00",
  "lastLoginDate": null,
  "isLockedOut": false,
  "lastLockoutDate": null,
  "roleName": "Viewers",
  "permissions": []
}

______________________________________________________________

...

Success Response Body

201: Returns the User Entity created and referenced by the Uri (given by the Location header field) in the response. 

Example

Code Block
languagejson
{
   "id": 12345,
   "person":    {
      "id": 12345,
      "login": "JohnDoe@host.com",
      "password": "7t#Sqg7*",
      "firstName": "John",
      "lastName": "Doe",
      "creationDate": "2024-01-03T19:05:26.5480648Z",
      "lastModifiedDate": "2024-01-03T19:05:26.5480648Z",
      "activationDate": "2024-01-03T19:05:26.5480648Z"
   },
   "description": "Supervisor",
   "creationDate": "2024-01-03T19:05:26.6198305Z",
   "lastModifiedDate": "2024-01-03T19:05:26.9953066Z",
   "lastLoginDate": null,
   "isLockedOut": false,
   "lastLockoutDate": null,
   "roleName": "Viewers",
   "permissions":    [
            {
         "entityId": 30912,
         "operationUID": "67b9b0ab-fb5f-36c4-d598-a71aa8998e4e",
         "principal":          {
            "login": "JohnDoe@host.com",
            "type": "User",
            "id": 12345
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": true,
         "creationDate": "2024-01-03T19:05:26.9953066Z"
      }
   ]
}

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 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 

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 /{login}/ 

Returns information for a specified user on a network

Required Scope Token

bsn.api.main.users.retrieve

______________________________________________________________

Segment

login string 

The login information of the user

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • login is set to JaneDoe@brightsign.biz

  • The optional If-Modified-Since header value equals the Last-Modified header value retrieved from the previous GET /login or GET /id response

Code Block
GET /2022/06/REST/Users/JaneDoe%40brightsign.biz/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Modified-Since: Wed, 20 Dec 2023 21:32:34 GMT
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

...

Success Response with Body

200: Returns the User Entity

Example

This is an example of a successful 200 level response:

Code Block
languagejson
{
   "id": 123456,
   "person":    {
      "id": 12345,
      "login": "JaneDoe@brightsign.biz",
      "password": null,
      "firstName": "Jane",
      "lastName": "Doe",
      "creationDate": "2020-07-09T19:05:20.247Z",
      "lastModifiedDate": "

...

2020-

...

08-

...

17T20:

...

49:

...

48.

...

377Z",
      "activationDate": "2020-07-09T19:05:38.723Z"
   },
   "description": "Network Administrator",
   "creationDate": "2020-07-09T19:09:04.98Z",
   "lastModifiedDate": "

...

2023-

...

12-

...

20T21:

...

32:

...

35.

...

093Z",
   "lastLoginDate": "2024-01-03T19:05:23.98Z",
   "isLockedOut": false,
   "lastLockoutDate": null,
   "roleName": "Administrators",
   "permissions":    [
            {
         "entityId": 123456,
         "operationUID": "67b9b0ab-fb5f-36c4-d598-a71aa8998e4e",
         "principal":          {
            "login": "JaneDoe@brightsign.biz",
            "type": "User",
            "id": 12345
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": true,
         "creationDate": "2020-08-17T20:49:48.353Z"
      }
   ]
}

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 /{login}/ 

Updates information for a specified user on a network

Required Scope Token

bsn.api.main.users.update

______________________________________________________________

Segment

login string 

The login information of the user

______________________________________________________________

Request Body

The User Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • login is set to JaneDoe@brightsign.biz

  • The optional If-Unmodified-Since header value equals the Last-Modified header value retrieved from the GET /id or GET /login response.

Code Block
PUT /2022/06/REST/Users/JaneDoe%40brightsign.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
If-Unmodified-Since: Wed, 20 Dec 2023 21:32:34 GMT
Content-Type: application/json
Content-Length: 1440

This is the example request body:

Code Block
languagejson
{
   "id": 123456,
   "person":    {
      "id": 12345,
      "login": "JaneDoe@brightsign.biz",
      "password": null,
      "firstName": "Jane",
      "lastName": "Doe",
      "creationDate": "

...

0001-

...

01-

...

01T00:

...

00:

...

00",
      "lastModifiedDate": "

...

0001-

...

01-

...

01T00:

...

00:

...

00",
      "activationDate": "

...

0001-

...

01-

...

01T00:

...

00:

...

00"
   },
   "description": "Network Administrator",
   "creationDate": "

...

0001-

...

01-

...

01T00:

...

00:

...

00",
   "lastModifiedDate": "

...

0001-

...

01-

...

01T00:

...

00:

...

00",
   "lastLoginDate": "

...

0001-01-

...

01T00:

...

00:

...

00",
   "isLockedOut": false,
   "lastLockoutDate": null,
   "roleName": "Administrators",
   "permissions":    [
            {
         "entityId": 123456,
         "operationUID": "67b9b0ab-fb5f-36c4-d598-a71aa8998e4e",
         "principal":          {
            "login": "JaneDoe@brightsign.biz",
            "type": "User",
            "id": 12345
         },
         "isFixed": false,
         "isInherited": false,
         "isAllowed": true,
         "creationDate": "

...

0001-

...

01-

...

01T00:

...

00:

...

00"
      }
   ]
}

______________________________________________________________

Success Response

Success

204: The user information has been updated

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 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)

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 /{login}/ 

Deletes the specified user on a network

Required Scope Token

bsn.api.main.users.delete

______________________________________________________________

Segment

login string 

The login information of the user

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • login is set to JohnDoe@host.com

  • The optional If-Unmodified-Since header value equals the Last-Modified header value retrieved from the GET /id or GET /login response.

Code Block
DELETE /2022/06/REST/Users/JohnDoe%40host.com/ 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

Success

204: The specified user information was successfully deleted

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, 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)

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}/ 

Returns information for a specified user on a network.

Required Scope Token

bsn.api.main.users.retrieve

______________________________________________________________

Segment

id int  

A unique identifier for a user

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

  • The optional If-Modified-Since header value equals the Last-Modified header value retrieved from the previous GET /login or GET /id response

Code Block
GET /2022/06/REST/Users/12345/ HTTP/1.1
Host: api.bsn.cloud
Connection: Keep-Alive
Authorization: Bearer {{UserAccessToken}}
If-Modified-Since: Wed, 20 Dec 2023 21:32:34 GMT
Accept: application/json, application/vnd.bsn.error+json
Accept-Encoding: gzip,deflate

______________________________________________________________

...

Success Response with Body

200: Returns the User Entity

Example

This is an example of a 200 level response:

Code Block
languagejson
{
   "id": 12345,
   "person":    {
      "id": 12345,
      "login": "JaneDoe@brightsign.biz",
      "password": null,
      "firstName": "Jane",
      "lastName": "Doe",
      "creationDate": "2020-07-09T19:05:20.247Z",
      "lastModifiedDate": "2023-11-29T17:40:54.403Z",
      "activationDate": "2020-07-09T19:05:38.723Z"
   },
   "description": "Network Administrator",
   "creationDate": "2020-07-09T19:09:04.98Z",
   "lastModifiedDate": "2020-08-17T20:49:48.377Z",
   "lastLoginDate": "2024-01-03T19:05:23.98Z",
   "isLockedOut": false,
   "lastLockoutDate": null,
   "roleName": "Administrators",
   "permissions":    [
            {
         "entityId": 123456,
         "operationUID": "67b9b0ab-fb5f-36c4-d598-a71aa8998e4e",
         "principal":          {
            "login": "JaneDoe@brightsign.biz",
            "type": "User",
            "id": 12345
         },
         "isFixed": true,
         "isInherited": false,
         "isAllowed": true,
         "creationDate": "2020-08-17T20:49:48.353Z"
      }
   ]
}

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:int}/ 

Update the given user instance

Required Scope Token

bsn.api.main.users.update

______________________________________________________________

Segment

id int 

A unique identifier for a user

______________________________________________________________

Request Body

The User Entity

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

  • The optional If-Unmodified-Since header value equals the Last-Modified header value retrieved from the GET /id or GET /login response.

Code Block
PUT /2022/06/REST/Users/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
If-Unmodified-Since: Wed, 20 Dec 2023 21:32:34 GMT
Content-Type: application/json
Content-Length: 1440

This is the example request body:

Code Block
languagejson
{
   "id": 12345,
   "person":    {
      "id": 12345,
      "login": "JaneDoe@brightsign.biz",
      "password": null,
      "firstName": "Jane",
      "lastName": "Doe",
      "creationDate": "

...

0001-

...

01-

...

01T00:

...

00:

...

00",
      "lastModifiedDate": "

...

0001-

...

01-

...

01T00:

...

00:

...

00",
      "activationDate": "

...

0001-

...

01-

...

01T00:

...

00:

...

00"
   },
   "description": "Network Administrator",
   "creationDate": "

...

0001-

...

01-

...

01T00:

...

00:

...

00",
   "lastModifiedDate": "

...

0001-

...

01-

...

01T00:

...

00:

...

00",
   "lastLoginDate": "

...

0001-01-

...

01T00:

...

00:

...

00",
   "isLockedOut": false,
   "lastLockoutDate": null,
   "roleName": "Administrators",
   "permissions":    [
            {
         "entityId": 123456,
         "operationUID": "67b9b0ab-fb5f-36c4-d598-a71aa8998e4e",
         "principal":          {
            "login": "JaneDoe@brightsign.biz",
            "type": "User",
            "id": 12345
         },
         "isFixed": false,
         "isInherited": false,
         "isAllowed": true,
         "creationDate": "

...

0001-

...

01-

...

01T00:

...

00:

...

00"
      }
   ]
}

______________________________________________________________

Response 

Success Response

204: The user information has been updated

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 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)

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}/ 

Deletes the specified user on a network

Required Scope Token

bsn.api.main.users.delete

______________________________________________________________

Segment

id int 

A unique identifier for a user

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

  • The optional If-Unmodified-Since header value equals the Last-Modified header value retrieved from the GET /id or GET /login response.

Code Block
DELETE /2022/06/REST/Users/12345/ 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

Success

204: The specified user information was successfully deleted

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 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)

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/Users/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

______________________________________________________________

...

Success Response Body

200: Returns theBusiness Operations Entity

Example

Expand
titleExpand to see example response
Code Block
languagejson
{
  "uid": "b41ac545-d505-7014-edde-51bc4c0d21a0",
  "singularName": "Full Control",
  "pluralName": "User (Full Control)",
  "fullName": "User (Full Control)",
  "targetEntity": "User",
  "appliance": "Instance, Collection",
  "parent": null,
  "descendants": [
    {
      "uid": "1a0c5653-9f2f-4274-f922-f68b17d2d3e7",
      "singularName": "View User",
      "pluralName": "View Users",
      "fullName": "User (Full Control) - View Users",
      "targetEntity": "User",
      "appliance": "Instance, Collection",
      "parent": {
        "uid": "b41ac545-d505-7014-edde-51bc4c0d21a0",
        "singularName": "Full Control",
        "pluralName": "User (Full Control)",
        "fullName": "User (Full Control)",
        "targetEntity": "User",
        "appliance": "Instance, Collection",
        "parent": null,
        "descendants": null,
        "permissions": null
      },
      "descendants": [],
      "permissions": [
        {
          "entityId": null,
          "operationUID": "1a0c5653-9f2f-4274-f922-f68b17d2d3e7",
          "principal": {
            "name": "Administrators",
            "isCustom": false,
            "type": "Role",
            "id": 1
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.147Z"
        },
        {
          "entityId": null,
          "operationUID": "1a0c5653-9f2f-4274-f922-f68b17d2d3e7",
          "principal": {
            "name": "General Managers",
            "isCustom": false,
            "type": "Role",
            "id": 2
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.16Z"
        },
        {
          "entityId": null,
          "operationUID": "1a0c5653-9f2f-4274-f922-f68b17d2d3e7",
          "principal": {
            "name": "Creators",
            "isCustom": false,
            "type": "Role",
            "id": 3
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.177Z"
        },
        {
          "entityId": null,
          "operationUID": "1a0c5653-9f2f-4274-f922-f68b17d2d3e7",
          "principal": {
            "name": "Publishers",
            "isCustom": false,
            "type": "Role",
            "id": 4
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.197Z"
        },
        {
          "entityId": null,
          "operationUID": "1a0c5653-9f2f-4274-f922-f68b17d2d3e7",
          "principal": {
            "name": "Network Managers",
            "isCustom": false,
            "type": "Role",
            "id": 5
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.357Z"
        },
        {
          "entityId": null,
          "operationUID": "1a0c5653-9f2f-4274-f922-f68b17d2d3e7",
          "principal": {
            "name": "Viewers",
            "isCustom": false,
            "type": "Role",
            "id": 6
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.41Z"
        }
      ]
    },
    {
      "uid": "1af1f3e0-db38-2bc4-29fb-f0f937139d89",
      "singularName": "Create User",
      "pluralName": "Create User",
      "fullName": "User (Full Control) - Create User",
      "targetEntity": "User",
      "appliance": "Collection",
      "parent": {
        "uid": "b41ac545-d505-7014-edde-51bc4c0d21a0",
        "singularName": "Full Control",
        "pluralName": "User (Full Control)",
        "fullName": "User (Full Control)",
        "targetEntity": "User",
        "appliance": "Instance, Collection",
        "parent": null,
        "descendants": null,
        "permissions": null
      },
      "descendants": [],
      "permissions": [
        {
          "entityId": null,
          "operationUID": "1af1f3e0-db38-2bc4-29fb-f0f937139d89",
          "principal": {
            "name": "Administrators",
            "isCustom": false,
            "type": "Role",
            "id": 1
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.147Z"
        },
        {
          "entityId": null,
          "operationUID": "1af1f3e0-db38-2bc4-29fb-f0f937139d89",
          "principal": {
            "name": "General Managers",
            "isCustom": false,
            "type": "Role",
            "id": 2
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.16Z"
        },
        {
          "entityId": null,
          "operationUID": "1af1f3e0-db38-2bc4-29fb-f0f937139d89",
          "principal": {
            "name": "Creators",
            "isCustom": false,
            "type": "Role",
            "id": 3
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.177Z"
        },
        {
          "entityId": null,
          "operationUID": "1af1f3e0-db38-2bc4-29fb-f0f937139d89",
          "principal": {
            "name": "Publishers",
            "isCustom": false,
            "type": "Role",
            "id": 4
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.197Z"
        },
        {
          "entityId": null,
          "operationUID": "1af1f3e0-db38-2bc4-29fb-f0f937139d89",
          "principal": {
            "name": "Network Managers",
            "isCustom": false,
            "type": "Role",
            "id": 5
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.357Z"
        },
        {
          "entityId": null,
          "operationUID": "1af1f3e0-db38-2bc4-29fb-f0f937139d89",
          "principal": {
            "name": "Viewers",
            "isCustom": false,
            "type": "Role",
            "id": 6
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.41Z"
        }
      ]
    },
    {
      "uid": "d1d32f0f-39fd-435a-bd49-35d76b9abdf2",
      "singularName": "Manage Notifications",
      "pluralName": "Manage Notifications",
      "fullName": "User (Full Control) - Manage Notifications",
      "targetEntity": "User",
      "appliance": "Instance, Collection",
      "parent": {
        "uid": "b41ac545-d505-7014-edde-51bc4c0d21a0",
        "singularName": "Full Control",
        "pluralName": "User (Full Control)",
        "fullName": "User (Full Control)",
        "targetEntity": "User",
        "appliance": "Instance, Collection",
        "parent": null,
        "descendants": null,
        "permissions": null
      },
      "descendants": [],
      "permissions": [
        {
          "entityId": null,
          "operationUID": "d1d32f0f-39fd-435a-bd49-35d76b9abdf2",
          "principal": {
            "name": "General Managers",
            "isCustom": false,
            "type": "Role",
            "id": 2
          },
          "isFixed": true,
          "isInherited": false,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.16Z"
        },
        {
          "entityId": null,
          "operationUID": "d1d32f0f-39fd-435a-bd49-35d76b9abdf2",
          "principal": {
            "name": "Network Managers",
            "isCustom": false,
            "type": "Role",
            "id": 5
          },
          "isFixed": true,
          "isInherited": false,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.36Z"
        },
        {
          "entityId": null,
          "operationUID": "d1d32f0f-39fd-435a-bd49-35d76b9abdf2",
          "principal": {
            "name": "Viewers",
            "isCustom": false,
            "type": "Role",
            "id": 6
          },
          "isFixed": true,
          "isInherited": false,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.41Z"
        },
        {
          "entityId": null,
          "operationUID": "d1d32f0f-39fd-435a-bd49-35d76b9abdf2",
          "principal": {
            "name": "Administrators",
            "isCustom": false,
            "type": "Role",
            "id": 1
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.147Z"
        },
        {
          "entityId": null,
          "operationUID": "d1d32f0f-39fd-435a-bd49-35d76b9abdf2",
          "principal": {
            "name": "Creators",
            "isCustom": false,
            "type": "Role",
            "id": 3
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.177Z"
        },
        {
          "entityId": null,
          "operationUID": "d1d32f0f-39fd-435a-bd49-35d76b9abdf2",
          "principal": {
            "name": "Publishers",
            "isCustom": false,
            "type": "Role",
            "id": 4
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.197Z"
        }
      ]
    },
    {
      "uid": "cd9c31e0-d23c-1844-f9f8-dd49ce80e72a",
      "singularName": "Change Role",
      "pluralName": "Change Role",
      "fullName": "User (Full Control) - Change Role",
      "targetEntity": "User",
      "appliance": "Instance, Collection",
      "parent": {
        "uid": "b41ac545-d505-7014-edde-51bc4c0d21a0",
        "singularName": "Full Control",
        "pluralName": "User (Full Control)",
        "fullName": "User (Full Control)",
        "targetEntity": "User",
        "appliance": "Instance, Collection",
        "parent": null,
        "descendants": null,
        "permissions": null
      },
      "descendants": [],
      "permissions": [
        {
          "entityId": null,
          "operationUID": "cd9c31e0-d23c-1844-f9f8-dd49ce80e72a",
          "principal": {
            "name": "Administrators",
            "isCustom": false,
            "type": "Role",
            "id": 1
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.147Z"
        },
        {
          "entityId": null,
          "operationUID": "cd9c31e0-d23c-1844-f9f8-dd49ce80e72a",
          "principal": {
            "name": "General Managers",
            "isCustom": false,
            "type": "Role",
            "id": 2
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.16Z"
        },
        {
          "entityId": null,
          "operationUID": "cd9c31e0-d23c-1844-f9f8-dd49ce80e72a",
          "principal": {
            "name": "Creators",
            "isCustom": false,
            "type": "Role",
            "id": 3
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.177Z"
        },
        {
          "entityId": null,
          "operationUID": "cd9c31e0-d23c-1844-f9f8-dd49ce80e72a",
          "principal": {
            "name": "Publishers",
            "isCustom": false,
            "type": "Role",
            "id": 4
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.197Z"
        },
        {
          "entityId": null,
          "operationUID": "cd9c31e0-d23c-1844-f9f8-dd49ce80e72a",
          "principal": {
            "name": "Network Managers",
            "isCustom": false,
            "type": "Role",
            "id": 5
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.357Z"
        },
        {
          "entityId": null,
          "operationUID": "cd9c31e0-d23c-1844-f9f8-dd49ce80e72a",
          "principal": {
            "name": "Viewers",
            "isCustom": false,
            "type": "Role",
            "id": 6
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.41Z"
        }
      ]
    },
    {
      "uid": "526a9b95-cce5-422a-99f8-9f02d63af74f",
      "singularName": "Update User",
      "pluralName": "Update User",
      "fullName": "User (Full Control) - Update User",
      "targetEntity": "User",
      "appliance": "Instance, Collection",
      "parent": {
        "uid": "b41ac545-d505-7014-edde-51bc4c0d21a0",
        "singularName": "Full Control",
        "pluralName": "User (Full Control)",
        "fullName": "User (Full Control)",
        "targetEntity": "User",
        "appliance": "Instance, Collection",
        "parent": null,
        "descendants": null,
        "permissions": null
      },
      "descendants": [],
      "permissions": [
        {
          "entityId": null,
          "operationUID": "526a9b95-cce5-422a-99f8-9f02d63af74f",
          "principal": {
            "name": "Administrators",
            "isCustom": false,
            "type": "Role",
            "id": 1
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.147Z"
        },
        {
          "entityId": null,
          "operationUID": "526a9b95-cce5-422a-99f8-9f02d63af74f",
          "principal": {
            "name": "General Managers",
            "isCustom": false,
            "type": "Role",
            "id": 2
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.16Z"
        },
        {
          "entityId": null,
          "operationUID": "526a9b95-cce5-422a-99f8-9f02d63af74f",
          "principal": {
            "name": "Creators",
            "isCustom": false,
            "type": "Role",
            "id": 3
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.177Z"
        },
        {
          "entityId": null,
          "operationUID": "526a9b95-cce5-422a-99f8-9f02d63af74f",
          "principal": {
            "name": "Publishers",
            "isCustom": false,
            "type": "Role",
            "id": 4
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.197Z"
        },
        {
          "entityId": null,
          "operationUID": "526a9b95-cce5-422a-99f8-9f02d63af74f",
          "principal": {
            "name": "Network Managers",
            "isCustom": false,
            "type": "Role",
            "id": 5
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.357Z"
        },
        {
          "entityId": null,
          "operationUID": "526a9b95-cce5-422a-99f8-9f02d63af74f",
          "principal": {
            "name": "Viewers",
            "isCustom": false,
            "type": "Role",
            "id": 6
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.41Z"
        }
      ]
    },
    {
      "uid": "52f1b86c-46df-8fa4-5d75-f0c8702975e6",
      "singularName": "Edit Permissions",
      "pluralName": "Edit Permissions",
      "fullName": "User (Full Control) - Edit Permissions",
      "targetEntity": "User",
      "appliance": "Collection",
      "parent": {
        "uid": "b41ac545-d505-7014-edde-51bc4c0d21a0",
        "singularName": "Full Control",
        "pluralName": "User (Full Control)",
        "fullName": "User (Full Control)",
        "targetEntity": "User",
        "appliance": "Instance, Collection",
        "parent": null,
        "descendants": null,
        "permissions": null
      },
      "descendants": [],
      "permissions": [
        {
          "entityId": null,
          "operationUID": "52f1b86c-46df-8fa4-5d75-f0c8702975e6",
          "principal": {
            "name": "Administrators",
            "isCustom": false,
            "type": "Role",
            "id": 1
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.147Z"
        },
        {
          "entityId": null,
          "operationUID": "52f1b86c-46df-8fa4-5d75-f0c8702975e6",
          "principal": {
            "name": "General Managers",
            "isCustom": false,
            "type": "Role",
            "id": 2
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.16Z"
        },
        {
          "entityId": null,
          "operationUID": "52f1b86c-46df-8fa4-5d75-f0c8702975e6",
          "principal": {
            "name": "Creators",
            "isCustom": false,
            "type": "Role",
            "id": 3
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.177Z"
        },
        {
          "entityId": null,
          "operationUID": "52f1b86c-46df-8fa4-5d75-f0c8702975e6",
          "principal": {
            "name": "Publishers",
            "isCustom": false,
            "type": "Role",
            "id": 4
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.197Z"
        },
        {
          "entityId": null,
          "operationUID": "52f1b86c-46df-8fa4-5d75-f0c8702975e6",
          "principal": {
            "name": "Network Managers",
            "isCustom": false,
            "type": "Role",
            "id": 5
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.357Z"
        },
        {
          "entityId": null,
          "operationUID": "52f1b86c-46df-8fa4-5d75-f0c8702975e6",
          "principal": {
            "name": "Viewers",
            "isCustom": false,
            "type": "Role",
            "id": 6
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.41Z"
        }
      ]
    },
    {
      "uid": "c244506f-4c57-4f66-88e0-ec2f05d06860",
      "singularName": "Revoke Tokens",
      "pluralName": "Revoke Tokens",
      "fullName": "User (Full Control) - Revoke Tokens",
      "targetEntity": "User",
      "appliance": "Instance, Collection",
      "parent": {
        "uid": "b41ac545-d505-7014-edde-51bc4c0d21a0",
        "singularName": "Full Control",
        "pluralName": "User (Full Control)",
        "fullName": "User (Full Control)",
        "targetEntity": "User",
        "appliance": "Instance, Collection",
        "parent": null,
        "descendants": null,
        "permissions": null
      },
      "descendants": [],
      "permissions": [
        {
          "entityId": null,
          "operationUID": "c244506f-4c57-4f66-88e0-ec2f05d06860",
          "principal": {
            "name": "Administrators",
            "isCustom": false,
            "type": "Role",
            "id": 1
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.147Z"
        },
        {
          "entityId": null,
          "operationUID": "c244506f-4c57-4f66-88e0-ec2f05d06860",
          "principal": {
            "name": "General Managers",
            "isCustom": false,
            "type": "Role",
            "id": 2
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.16Z"
        },
        {
          "entityId": null,
          "operationUID": "c244506f-4c57-4f66-88e0-ec2f05d06860",
          "principal": {
            "name": "Creators",
            "isCustom": false,
            "type": "Role",
            "id": 3
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.177Z"
        },
        {
          "entityId": null,
          "operationUID": "c244506f-4c57-4f66-88e0-ec2f05d06860",
          "principal": {
            "name": "Publishers",
            "isCustom": false,
            "type": "Role",
            "id": 4
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.197Z"
        },
        {
          "entityId": null,
          "operationUID": "c244506f-4c57-4f66-88e0-ec2f05d06860",
          "principal": {
            "name": "Network Managers",
            "isCustom": false,
            "type": "Role",
            "id": 5
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.357Z"
        },
        {
          "entityId": null,
          "operationUID": "c244506f-4c57-4f66-88e0-ec2f05d06860",
          "principal": {
            "name": "Viewers",
            "isCustom": false,
            "type": "Role",
            "id": 6
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.41Z"
        }
      ]
    },
    {
      "uid": "51d92ebc-fb22-c4f4-093f-a737cba29ea8",
      "singularName": "Lock User",
      "pluralName": "Lock User",
      "fullName": "User (Full Control) - Lock User",
      "targetEntity": "User",
      "appliance": "Instance, Collection",
      "parent": {
        "uid": "b41ac545-d505-7014-edde-51bc4c0d21a0",
        "singularName": "Full Control",
        "pluralName": "User (Full Control)",
        "fullName": "User (Full Control)",
        "targetEntity": "User",
        "appliance": "Instance, Collection",
        "parent": null,
        "descendants": null,
        "permissions": null
      },
      "descendants": [],
      "permissions": [
        {
          "entityId": null,
          "operationUID": "51d92ebc-fb22-c4f4-093f-a737cba29ea8",
          "principal": {
            "name": "Administrators",
            "isCustom": false,
            "type": "Role",
            "id": 1
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.147Z"
        },
        {
          "entityId": null,
          "operationUID": "51d92ebc-fb22-c4f4-093f-a737cba29ea8",
          "principal": {
            "name": "General Managers",
            "isCustom": false,
            "type": "Role",
            "id": 2
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.16Z"
        },
        {
          "entityId": null,
          "operationUID": "51d92ebc-fb22-c4f4-093f-a737cba29ea8",
          "principal": {
            "name": "Creators",
            "isCustom": false,
            "type": "Role",
            "id": 3
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.177Z"
        },
        {
          "entityId": null,
          "operationUID": "51d92ebc-fb22-c4f4-093f-a737cba29ea8",
          "principal": {
            "name": "Publishers",
            "isCustom": false,
            "type": "Role",
            "id": 4
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.197Z"
        },
        {
          "entityId": null,
          "operationUID": "51d92ebc-fb22-c4f4-093f-a737cba29ea8",
          "principal": {
            "name": "Network Managers",
            "isCustom": false,
            "type": "Role",
            "id": 5
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.357Z"
        },
        {
          "entityId": null,
          "operationUID": "51d92ebc-fb22-c4f4-093f-a737cba29ea8",
          "principal": {
            "name": "Viewers",
            "isCustom": false,
            "type": "Role",
            "id": 6
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.41Z"
        }
      ]
    },
    {
      "uid": "3f15e37b-449b-1b24-fd32-d113af0a798a",
      "singularName": "Unlock User",
      "pluralName": "Unlock User",
      "fullName": "User (Full Control) - Unlock User",
      "targetEntity": "User",
      "appliance": "Instance, Collection",
      "parent": {
        "uid": "b41ac545-d505-7014-edde-51bc4c0d21a0",
        "singularName": "Full Control",
        "pluralName": "User (Full Control)",
        "fullName": "User (Full Control)",
        "targetEntity": "User",
        "appliance": "Instance, Collection",
        "parent": null,
        "descendants": null,
        "permissions": null
      },
      "descendants": [],
      "permissions": [
        {
          "entityId": null,
          "operationUID": "3f15e37b-449b-1b24-fd32-d113af0a798a",
          "principal": {
            "name": "Administrators",
            "isCustom": false,
            "type": "Role",
            "id": 1
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.147Z"
        },
        {
          "entityId": null,
          "operationUID": "3f15e37b-449b-1b24-fd32-d113af0a798a",
          "principal": {
            "name": "General Managers",
            "isCustom": false,
            "type": "Role",
            "id": 2
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.16Z"
        },
        {
          "entityId": null,
          "operationUID": "3f15e37b-449b-1b24-fd32-d113af0a798a",
          "principal": {
            "name": "Creators",
            "isCustom": false,
            "type": "Role",
            "id": 3
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.177Z"
        },
        {
          "entityId": null,
          "operationUID": "3f15e37b-449b-1b24-fd32-d113af0a798a",
          "principal": {
            "name": "Publishers",
            "isCustom": false,
            "type": "Role",
            "id": 4
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.197Z"
        },
        {
          "entityId": null,
          "operationUID": "3f15e37b-449b-1b24-fd32-d113af0a798a",
          "principal": {
            "name": "Network Managers",
            "isCustom": false,
            "type": "Role",
            "id": 5
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.357Z"
        },
        {
          "entityId": null,
          "operationUID": "3f15e37b-449b-1b24-fd32-d113af0a798a",
          "principal": {
            "name": "Viewers",
            "isCustom": false,
            "type": "Role",
            "id": 6
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.41Z"
        }
      ]
    },
    {
      "uid": "38b77fd8-16b6-9774-81e4-63af80fbbbb2",
      "singularName": "Delete User",
      "pluralName": "Delete User",
      "fullName": "User (Full Control) - Delete User",
      "targetEntity": "User",
      "appliance": "Instance, Collection",
      "parent": {
        "uid": "b41ac545-d505-7014-edde-51bc4c0d21a0",
        "singularName": "Full Control",
        "pluralName": "User (Full Control)",
        "fullName": "User (Full Control)",
        "targetEntity": "User",
        "appliance": "Instance, Collection",
        "parent": null,
        "descendants": null,
        "permissions": null
      },
      "descendants": [],
      "permissions": [
        {
          "entityId": null,
          "operationUID": "38b77fd8-16b6-9774-81e4-63af80fbbbb2",
          "principal": {
            "name": "Administrators",
            "isCustom": false,
            "type": "Role",
            "id": 1
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": true,
          "creationDate": "2023-04-21T19:10:01.147Z"
        },
        {
          "entityId": null,
          "operationUID": "38b77fd8-16b6-9774-81e4-63af80fbbbb2",
          "principal": {
            "name": "General Managers",
            "isCustom": false,
            "type": "Role",
            "id": 2
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.16Z"
        },
        {
          "entityId": null,
          "operationUID": "38b77fd8-16b6-9774-81e4-63af80fbbbb2",
          "principal": {
            "name": "Creators",
            "isCustom": false,
            "type": "Role",
            "id": 3
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.177Z"
        },
        {
          "entityId": null,
          "operationUID": "38b77fd8-16b6-9774-81e4-63af80fbbbb2",
          "principal": {
            "name": "Publishers",
            "isCustom": false,
            "type": "Role",
            "id": 4
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.197Z"
        },
        {
          "entityId": null,
          "operationUID": "38b77fd8-16b6-9774-81e4-63af80fbbbb2",
          "principal": {
            "name": "Network Managers",
            "isCustom": false,
            "type": "Role",
            "id": 5
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.357Z"
        },
        {
          "entityId": null,
          "operationUID": "38b77fd8-16b6-9774-81e4-63af80fbbbb2",
          "principal": {
            "name": "Viewers",
            "isCustom": false,
            "type": "Role",
            "id": 6
          },
          "isFixed": true,
          "isInherited": true,
          "isAllowed": false,
          "creationDate": "2023-04-21T19:10:01.41Z"
        }
      ]
    }
  ],
  "permissions": [
    {
      "entityId": null,
      "operationUID": "b41ac545-d505-7014-edde-51bc4c0d21a0",
      "principal": {
        "name": "Administrators",
        "isCustom": false,
        "type": "Role",
        "id": 1
      },
      "isFixed": true,
      "isInherited": false,
      "isAllowed": true,
      "creationDate": "2023-04-21T19:10:01.147Z"
    },
    {
      "entityId": null,
      "operationUID": "b41ac545-d505-7014-edde-51bc4c0d21a0",
      "principal": {
        "name": "General Managers",
        "isCustom": false,
        "type": "Role",
        "id": 2
      },
      "isFixed": true,
      "isInherited": false,
      "isAllowed": false,
      "creationDate": "2023-04-21T19:10:01.16Z"
    },
    {
      "entityId": null,
      "operationUID": "b41ac545-d505-7014-edde-51bc4c0d21a0",
      "principal": {
        "name": "Creators",
        "isCustom": false,
        "type": "Role",
        "id": 3
      },
      "isFixed": true,
      "isInherited": false,
      "isAllowed": false,
      "creationDate": "2023-04-21T19:10:01.177Z"
    },
    {
      "entityId": null,
      "operationUID": "b41ac545-d505-7014-edde-51bc4c0d21a0",
      "principal": {
        "name": "Publishers",
        "isCustom": false,
        "type": "Role",
        "id": 4
      },
      "isFixed": true,
      "isInherited": false,
      "isAllowed": false,
      "creationDate": "2023-04-21T19:10:01.197Z"
    },
    {
      "entityId": null,
      "operationUID": "b41ac545-d505-7014-edde-51bc4c0d21a0",
      "principal": {
        "name": "Network Managers",
        "isCustom": false,
        "type": "Role",
        "id": 5
      },
      "isFixed": true,
      "isInherited": false,
      "isAllowed": false,
      "creationDate": "2023-04-21T19:10:01.357Z"
    },
    {
      "entityId": null,
      "operationUID": "b41ac545-d505-7014-edde-51bc4c0d21a0",
      "principal": {
        "name": "Viewers",
        "isCustom": false,
        "type": "Role",
        "id": 6
      },
      "isFixed": true,
      "isInherited": false,
      "isAllowed": false,
      "creationDate": "2023-04-21T19:10:01.41Z"
    }
  ]
}

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:int}/Permissions/ 

Includes object permissions for a given user instance.

Required Scope Token

bsn.api.main.users.retrieve

______________________________________________________________

Segment

id int 

A unique identifier for a user

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

Code Block
GET /2022/06/REST/Users/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

______________________________________________________________

Response

Success Response Body

200: Returns an array of Permission entities 

Example

Code Block
languagejson
[
      {
      "entityId": 54321,
      "operationUID": "67b9b0ab-fb5f-36c4-d598-a71aa8998e4e",
      "principal":       {
         "login": "JaneDoe@brightsign.biz",
         "type": "User",
         "id": 12345
      },
      "isFixed": false,
      "isInherited": false,
      "isAllowed": true,
      "creationDate": "2020-08-17T20:49:48.353Z"
   }
]

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:int}/Permissions/ 

Adds permissions for a specified user on a network

Required Scope Token

bsn.api.main.users.update

______________________________________________________________

Segment

id int 

A unique identifier for a user

______________________________________________________________

Request Body

An array of Permission entities

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12435

Code Block
POST /2022/06/REST/Users/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: 245

This is the example request body:

Code Block
languagejson
[
  {
    "entityId": 54321,
    "operationUID": "c978aa8d-c7ac-410f-aec3-22e136d0ba58",
    "principal": {
      "login": "JaneDoe@brightsign.biZ",
      "type": "User",
      "id": 12345
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": true,
    "creationDate": "0001-01-01T00:00:00"
  }
]

______________________________________________________________

...

Success Response

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

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)

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 for a specified user on a network

Required Scope Token

bsn.api.main.users.update

______________________________________________________________

Segment

id int

A unique identifier for a user

______________________________________________________________

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
DELETE /2022/06/REST/Users/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: 245

This is the example request body:

Code Block
languagejson
[
  {
    "entityId": 54321,
    "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
    "principal": {
      "login": "JaneDoe@brightsign.biZ",
      "type": "User",
      "id": 12345
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": true,
    "creationDate": "0001-01-01T00:00:00"
  }
]

______________________________________________________________

...

Success Response

204: The specified user permissions were successfully deleted

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 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)

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 /{login}/Permissions/  

Includes object permissions for a given user instance.

Required Scope Token

bsn.api.main.users.retrieve

______________________________________________________________

Segment

login string 

The login information of the user

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • login is set to JohnDoe@brightsign.biz

Code Block
GET /2022/06/REST/Users/JohnDoe%40brightsign.biz/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": 54321,
      "operationUID": "67b9b0ab-fb5f-36c4-d598-a71aa8998e4e",
      "principal":       {
         "login": "JohnDoe@brightsign.biz",
         "type": "User",
         "id": 12345
      },
      "isFixed": false,
      "isInherited": false,
      "isAllowed": true,
      "creationDate": "2020-08-17T20:49:48.353Z"
   }
]

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 /{login}/Permissions/ 

Adds permissions for a specified user on a network

Required Scope Token

bsn.api.main.users.update

______________________________________________________________

Segment

login string 

The login information of the user

______________________________________________________________

Request Body

An array of Permission entities

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • login is set to JohnDoe@brightsign.biz

Code Block
POST /2022/06/REST/Users/JohnDoe%40brightsign.biz/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: 322

This is the example request body:

Code Block
languagejson
[
  {
    "entityId": 54321,
    "operationUID": "c978aa8d-c7ac-410f-aec3-22e136d0ba58",
    "principal": {
      "login": "JohnDoe@brightsign.biZ",
      "type": "User",
      "id": 12345
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": true,
    "creationDate": "0001-01-01T00:00:00"
  }
]

______________________________________________________________

...

Success Response

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

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)

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 /{login}/Permissions/ 

Removes permissions for a specified user on a network

Required Scope Token

bsn.api.main.users.update

______________________________________________________________

Segment

login string 

The login information of the user

______________________________________________________________

Request Body

An array of Permission entities

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • login is set to JohnDoe@brightsign.biz

Code Block
DELETE /2022/06/REST/Users/JohnDoe%40brightsign.biz/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: 232

This is the example request body:

Code Block
languagejson
[
  {
    "entityId": 54321,
    "operationUID": "39e69897-8d9a-f634-95cf-7419a3e93c23",
    "principal": {
      "login": "JohnDoe@brightsign.biZ",
      "type": "User",
      "id": 12345
    },
    "isFixed": false,
    "isInherited": false,
    "isAllowed": true,
    "creationDate": "0001-01-01T00:00:00"
  }
]

______________________________________________________________

...

Success Response

204: The specified user permissions were successfully deleted

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 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)

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}/Tokens/{token}/ 

Validates the user access or refresh token granted to a specified user

Required Scope Token

bsn.api.main.users.token.validate

______________________________________________________________

Segments

id int 

A unique identifier for a user

token string

A user access or refresh token for a BSN.cloud network

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

  • token is set to {{UserAccessToken}}

Code Block
GET /2022/06/REST/Users/12345/Tokens/{{UserAccessToken}}/ 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 theToken Info Entity

Example

Code Block
languagejson
{
   "token": "{{UserAccessToken}}",
   "scope": "add_device_setup bsn.api.main bsn.api.self bsn.api.upload bsn.ui.main player",
   "validFrom": "2024-01-03T22:57:10Z",
   "validTo": "2024-01-03T23:12:10Z"
}

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

DELETE /{id:int}/Tokens/{token}/ 

Revokes user access or refresh tokens for the specified user

Required Scope Token

bsn.api.main.users.token.revoke

______________________________________________________________

Segments

id int

A unique identifier for a user

token string 

The user access or refresh token to use with this endpoint call

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • id is set to 12345

  • token is set to {{UserAccessToken}}

Code Block
DELETE /2022/06/REST/Users/12345/Tokens/{{UserAccessToken}}/ 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

...

204: The user access or refresh token has been successfully revoked from the specified user

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 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: Either the specified token is invalid, expired, or revoked, or it is issued for another user

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 /{login}/Tokens/{token}/ 

Validates the user access or refresh token granted to the specified user

Required Scope Token

bsn.api.main.users.token.validate

______________________________________________________________

Segments

login string 

The login for a user

token string 

A user access or refresh token for a BSN.cloud network

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • login is set to JohnDoe@brightsign.biz

  • token is set to {{UserAccessToken}}

Code Block
GET /2022/06/REST/Users/JohnDoe%40brightsign.biz/Tokens/{{UserAccessToken}}/ 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 theToken Info Entity

Example

Code Block
languagejson
{
   "token": "{{UserAccessToken}}",
   "scope": "add_device_setup bsn.api.main bsn.api.self bsn.api.upload bsn.ui.main player",
   "validFrom": "2024-01-03T22:57:10Z",
   "validTo": "2024-01-03T23:12:10Z"
}

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

DELETE /{login}/Tokens/{token}/ 

Revokes the user access or refresh token granted to the specified user

Required Scope Token

bsn.api.main.users.token.revoke

______________________________________________________________

Segments

login string 

The login for a user

token string 

A user access or refresh token for a BSN.cloud network

______________________________________________________________

Request Example

The example request parameters and headers are set as follows:

  • login is set to JohnDoe@brightsign.biz

  • token is set to {{UserAccessToken}}

Code Block
DELETE /2022/06/REST/Users/JohnDoe%40brightsign.biz/Tokens/{{UserAccessToken}}/ 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

...

204: The user access or refresh token has been successfully revoked from the specified user

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 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: Either the specified token is invalid, expired, or revoked, or it is issued for another user

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