Overview
This is the REST API documentation for the Breezie platform. This document describes the details for invoking the Breezie REST API and what you can expect as return values.
This is a Beta release of the Breezie platform API, changes may be applied without prior announcement. |
All endpoint references throughout this document are based on our US server (https://api.breezie.com). The base URL changes for projects based on EU (https://api-uk.breezie.com) and Australia (https://api-au.breezie.com). |
This document assumes a basic knowledge about REST APIs. |
Authentication
The Breezie API use the OAuth 2.0 protocol as an authentication and authorization mechanism.
Although the Breezie API supports all the grant types defined in the OAuth 2.0 protocol, this document will be focused
on the authorization code
grant type that is recommended on most occasions. For more details of this and other
grant types please see the standard documentation.
Definitions
For a better understanding of the authentication process, basic concepts are defined here:
- User
-
This is a person that has an account on the Breezie platform. A User can be an Admin User or a Final User (known as a 'Breezie User'). Users are authenticated in the Breezie platform with the combination of a username and a password.
- Client
-
This is an application that requires access to one or multiple Users' data to perform an action. Clients require a
Client ID
and aSecret
to be authenticated in the Breezie platform. - Breezie Authorization Service
-
The Authorization server is a centralized service that provides authentication to Users and Clients. Through the Authorization Service a Client can obtain the authorization of a User to access his/her Breezie information without having to share any credentials between them. There are two end points that will be used during the authentication process:
- Authorization URI
-
https://auth.breezie.com/uaa/oauth/authorize
Used to authenticate theUser
- Token URI
-
https://auth.breezie.com/uaa/oauth/token
Used to get the tokens
As well as the Breezie API URI, the Breezie Authorization Service URI changes depending on the Breezie region. This document refers to the US URI, please check the URI of the region you want to access. |
- Authorization code
-
This is a character sequence that identifies the request of a specific User to grant authorization to a Client for accessing his/her Breezie data.
- Refresh token
-
This is a character sequence that grants authorization of a Client to generate access tokens for a specific User.
- Access token
-
This is a character sequence that grants authorization to access the Breezie data of a specific User.
The Authentication Process
The following process details the authorization code
grant type of the OAuth 2.0 standard. It defines how a Client
can authenticate a HTTP request to access the data of a Breezie platform User
without sharing credentials
between them.
Although the authorization code grant type covers the most common use cases, the Breezie platform supports all the OAuth 2.0 grant types.
|
During this process the following situations are supposed:
1. The Client
requests authorization
The Client
initiates the flow redirecting the User
browser to the authorization endpoint of the Breezie
Authorization Service
. The 'Client' constructs the request URI by adding the following parameters to the query
component of the authorization endpoint URI using the application/x-www-form-urlencoded
format:
response_type
-
Value must be set to
code
. This field is required.
Please note that, although this case is considering the authorization code grant type exclusively, all the rest of
the OAuth 2.0 grant types are supported by the Breezie platform.
|
client_id
-
The client identifier provided by the
Breezie Authorization Server
when the client was registered. This field is required. redirect_uri
-
URI which the authorization server will send the
User
browser back once access is granted or denied. state
-
An opaque value used by the Client to maintain a state between the request and callback. The authorization server includes this value when redirecting the user-agent back to the Client. The use of this field is optional but recommended.
GET /uaa/oauth/authorize?response_type=code&client_id=client-id&state=abc&
redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcallback HTTP/1.1
Host: auth.breezie.com
The Breezie Authorization Server responds to this request with a HTTP 302 Redirect that brings the User’s browser to the Breezie Authorization Server authentication page.
2. Authenticating the User
The Breezie Authorization Service
authenticates the User
via username and password and establishes whether the User
grants or denies the Client’s access request.
When using the Breezie tablet device, the User can be authenticated automatically. |
Once the User is authenticated, the Breezie Authorization Server requires the User to confirm the consent for the Client to access to the information saved in the Breezie platform.
The confirmation step could be removed if a specific use case requires it. |
3. Getting the Authorization code
Assuming the User
grants access, the Breezie Authorization Service
redirects the browser back to the Client
using the redirection URI provided in the first step. The redirection URI includes the authorization code and the same
state previously provided by the Client
in the first step.
Once the User
grants access, the Breezie Authorization Service
redirects the browser back to the Client
using the redirection URI provided in the first step. The redirection URI includes the following properties:
- code
-
The authorization code generated by the Authorization Server.
- state
-
The exact value received from the
Client
in the first step if the "state" parameter was present. Otherwise, this parameter is omitted.
HTTP/1.1 302 Found
Location: https://client.example.com/callback?code=xxxx&state=abc
4. Getting the token
Once the browser has been redirected, the client has the authorization code that will be used to obtain the access token. The client makes a POST request to the token endpoint by sending the following parameters using the "application/x-www-form-urlencoded" format request entity-body:
- grant_type
-
Must be set to "authorization code".
Please note, although this case considers the authorization code grant type exclusively,
the other OAuth 2.0 grant types are supported by the Breezie platform.
|
- code
-
The authorization code received from the Authorization Server.
- redirect_uri
-
Same value included in the first step authorization request. Values must be identical.
Additionally, the request has to be authenticated using HTTP Basic
Authentication, adding an Authorization
header following the next steps:
-
Constructs a string by concatenating the
Client Id
, a single colon:
character, and theClient Secret
. -
Encodes the resulting string into an octet sequence using
UTF-8
. -
The resulting string is encoded using Base64.
-
The authorization method and a space ("Basic ") is then prepended to the encoded string.
For example, if the Client Id
is Aladdin
and the Client Secret
is OpenSesame
, then the field’s value is the
base64-encoding of Aladdin:OpenSesame
, or QWxhZGRpbjpPcGVuU2VzYW1l
. Then the Authorization header will appear as:
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l
$ curl -X POST -H "Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l" -d "grant_type=authorization_code&code=xxxx&redirect_uri=https%3A%2F%2Fclient.example.com%2Fcallback" https://auth.breezie.com/uaa/oauth/token
{
"access_token": "abcdabcdabcdabcdabcd",
"token_type": "bearer",
"refresh_token": "efghefghefghefghefgh",
"expires_in": 1799,
}
5. Accessing the data
Once the Client
has an access token, it can authenticate a request to any Breezie API endpoint attaching the token in
an 'Authorization' HTTP header.
If xxxx
is a sample access token, the Client
could access an example resource as follows:
$ curl -H "Authorization: Bearer xxxx" https://api.breezie.com/example
6. Identifying the authenticated User
In the previous step, the Client
could obtain access to the Breezie platform resources of the authenticated User
. However,
the Client has not identified the authenticated User
yet.
The Breezie Authentication Server provides an endpoint that satisfies this specific requirement:
https://auth.breezie.com/uaa/userinfo
This endpoint requires an access token as shown in the previous step and returns basic information of the User that granted the access token.
$ curl -H "Authorization: Bearer xxxx" https://auth.breezie.com/uaa/userinfo
{
"id": "123456778-1234-1234-1234abcd1234abcd1234",
"username": "user_email@bexample.com",
"roles": [
"ROLE_BW",
"ROLE_P"
],
"sponsors": [],
"sponsees": [],
"scope": {
"organizationId": 11111111-1111-1111-111111111111111,
"regionId": null,
"campusId": null,
"facilityId": null,
"userId": null
},
"createdTime": 1488799431921,
"createdBy": "breezie-service",
"lastUpdatedTime": 1489183127012,
"updatedBy": "anonymousUser"
}
7. Refreshing the access token
Because access tokens are typically short-lasting credentials, Clients can be registered on the Breezie Authorization Server and provided with a refresh token as well as the access token.
The refresh token allows the Client to obtain new access tokens as required. For this purpose, the Client can send a request to the token endpoint of the Breezie Authorization Server with the following parameters:
- grant_type
-
Value must be set to "refresh_token".
- refresh_token
-
The refresh token issued to the client in step 4.
Requests to this endpoint have to be authenticated using HTTP Basic Authentication, as previously seen in step 4.
$ curl -X POST -H "Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l" -d "grant_type=refresh_token&refresh_token=efghefghefghefghefgh" https://auth.breezie.com/uaa/oauth/token
{
"access_token": "2abcd2abcd2abcd2abcd2abcd2",
"token_type": "bearer",
"refresh_token": "efghefghefghefghefgh",
"expires_in": 1799,
}
Scope
This represents a hierarchical structure composed of an Organization ID, Region ID, Campus ID, facility ID and User ID
that defines the ambit of a resource. This structure comes from the business model where Users
belong to a particular Facility that
is part of a Campus which belongs to a Region that is part of an Organization.
In general, resources have restricted accessibility. Access to a resource is defined by the Scope
of the resource that
requires access and the roles
and scope
of the person who wants to access the resource.
In general, resources have a Scope and based on it, and the nature of the resources, the accessibility will be defined. For example, an app is a resource that belongs to a Region (its scope will specify the Organization and the Region), so all Users that are in this Region will have access to the app.
Roles
Role | Description |
---|---|
ROLE_U |
This role represents a Breezie User, the person who owns a Breezie tablet. This person has write rights over his own resources and read permissions on a set of resources based on his scope. |
ROLE_S |
This role represents a |
ROLE_P |
This is a complementary role that add rights on the private information of a User. |
ROLE_FR |
This role represents an administrator with read access in a Facility. |
ROLE_FW |
This role represents an administrator with read and write access in a Facility. |
ROLE_CR |
This role represents an administrator with read access in a Campus. |
ROLE_CW |
This role represents an administrator with read and write access in a Campus. |
ROLE_RR |
This role represents an administrator with read access in a Region. |
ROLE_RW |
This role represents an administrator with read and write access in a Region. |
ROLE_OR |
This role represents an administrator with read access in a Organization. |
ROLE_OW |
This role represents an administrator with read and write access in a Organization. |
ROLE_BR |
This role represents an administrator with read access in the whole system. |
ROLE_BW |
This role represents an administrator with read and write access in the whole system. |
Methods
Method | Usage |
---|---|
|
Used to retrieve a resource |
|
Used to create a new resource |
|
Used to update an existing resource, replacing the resource for the one sent |
|
Used to update an existing resource, including partial updates |
|
Used to delete an existing resource |
Response Status
Status code | Usage |
---|---|
|
The request completed successfully |
|
A new resource has been created successfully. The resource’s URI is available from the response’s
|
|
An update to an existing resource has been applied successfully |
|
The request was malformed. The response body will include an error providing further information |
|
The request was unauthorised |
|
The request was authorised but forbidden to access that resource |
|
The requested resource did not exist |
|
The request did not validate correctly |
Errors
Whenever an error response 422 (Validation Exception) is returned, the body will contain a JSON object that describes the problem. The error object has the following structure:
Path | Type | Description |
---|---|---|
|
|
Unix timestamp the error occurred |
|
|
Unique code of the error that occurred |
|
|
HTTP status code of error |
|
|
Short message describing the error |
|
|
More detailed description of the error |
|
|
The path where the error occurred |
|
|
Java class of the exception that occurred |
|
|
Array of field errors explained why the validation failed |
|
|
The resource of the failed validation |
|
|
The field of the resource that failed |
|
|
The type of validation that failed |
|
|
Descriptive message of failed validation |
For example, a request that attempts to submit an invalid person will produce a
422 Unprocessable Entity
response:
HTTP/1.1 422 Unprocessable Entity
Content-Type: application/json;charset=UTF-8
Content-Length: 564
{
"timestamp" : 1631702634968,
"code" : 1002,
"status" : 422,
"message" : "Validation Error",
"description" : "Person object could not be fully validated, please see fieldErrors to determine failed fields",
"path" : "unknown/errors",
"exception" : "com.breezie.exception.ValidationException",
"fieldErrors" : [ {
"resource" : "person",
"field" : "age",
"code" : "Range",
"message" : "must be between 1 and 122"
}, {
"resource" : "person",
"field" : "name",
"code" : "NotNull",
"message" : "may not be null"
} ]
}
Whenever an error response (status code >= 400) is returned, the body will contain a JSON object that describes the problem. The error object has the following structure:
Path | Type | Description |
---|---|---|
|
|
Unix timestamp the error occurred |
|
|
Unique code of the error that occurred |
|
|
HTTP status code of error |
|
|
Short message describing the error |
|
|
More detailed description of the error |
|
|
The path where the error occurred |
|
|
Java class of the exception that occurred |
For example, a request that attempts to apply a non-existent tag to a note will produce a
400 Bad Request
response:
HTTP/1.1 404 Not Found
Content-Type: application/json;charset=UTF-8
Content-Length: 282
{
"timestamp" : 1631702635138,
"code" : 4056,
"status" : 404,
"message" : "Resource not found",
"description" : "A resource with given identifier cannot be found",
"path" : "unknown/errors?errorType=not-found",
"exception" : "com.breezie.exception.NotFoundException"
}
Resources
Users
A User
is a representation of anyone who authenticates with the Breezie platform. Listing, creating, updating and deleting are the
operations available from this API.
Structure
Path | Type | Description |
---|---|---|
|
|
User identifier |
|
|
Username assositated with the user |
|
|
First name of the user |
|
|
Last name of the user |
|
|
Welcome message to show during user setup process |
|
|
Level of familiarity of the user with internet and related technologies. Allowed values: 1, 2 or 3. 1 = 'Not at all familiar with the internet', 2 = 'A little familiar with the internet', 3 = 'Quite familiar with the internet'. |
|
|
Url of the profile image |
|
|
ID of the organization that the user belongs to |
|
|
ID of the region that the user belongs to |
|
|
ID of the campus that the user belongs to |
|
|
ID of the facility that the user belongs to |
|
|
ID of the user (only for breezie users, other roles won’t have value on this field) |
|
|
ID list of users sponsoring this user |
|
|
Role of the user |
|
|
ID list of users who this user is sponsoring |
Users API
Listing Users
A GET
request to /users
will list all Users accessible by the User who makes the request.
Only Users with the roles ROLE_BW or ROLE_BR will see sponsors in this list.
Example request
$ curl 'https://api.breezie.com/users' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
X-Application-Context: application:test:-1
Content-Type: application/json;charset=UTF-8
ETag: "0b849648390cb736754653a641c6c0f06"
Content-Length: 2372
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
[ {
"id" : "3c3d3ce7-3d79-4611-8fb2-6bb66149be11",
"username" : "sarah.francis@email.com",
"firstName" : "Sarah",
"lastName" : "Francis",
"profileImageUri" : null,
"scope" : {
"organizationId" : null,
"regionId" : null,
"campusId" : null,
"facilityId" : null,
"userId" : null
},
"familiarity" : null,
"welcomeNote" : null,
"roles" : [ "ROLE_BW" ],
"sponsors" : [ ],
"sponsees" : [ ]
}, {
"id" : "4809459f-3d27-46fd-8a59-b6b8204d2838",
"username" : "bobjones@email.com",
"firstName" : "Bob",
"lastName" : "Jones",
"profileImageUri" : "https://api-dev.breezie.com/pictures/c9897964-fb64-45ee-876a-128dbaf4c18b/file",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "4809459f-3d27-46fd-8a59-b6b8204d2838"
},
"familiarity" : 1,
"welcomeNote" : "Welcome to Breezie.",
"roles" : [ "ROLE_U" ],
"sponsors" : [ "02841ef2-5037-4879-a1b8-0e042bcf22b9" ],
"sponsees" : [ ]
}, {
"id" : "dft54er4-8709-9iyt-ht5r67ytg4df",
"username" : "janeparker@email.com",
"firstName" : "Jane",
"lastName" : "Parker",
"profileImageUri" : "https://api-dev.breezie.com/pictures/gt89365-fb64-876a-45ee-rhdy363926hd/file",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "dft54er4-8709-9iyt-ht5r67ytg4df"
},
"familiarity" : 2,
"welcomeNote" : "Welcome to Breezie.",
"roles" : [ "ROLE_U" ],
"sponsors" : [ ],
"sponsees" : [ ]
}, {
"id" : "02841ef2-5037-4879-a1b8-0e042bcf22b9",
"username" : "alicia.smith@email.com",
"firstName" : "Alicia",
"lastName" : "Smith",
"profileImageUri" : "https://api-dev.breezie.com/pictures/rt534625-gfts-876a-oi8u-134rf4eds233/file",
"scope" : {
"organizationId" : null,
"regionId" : null,
"campusId" : null,
"facilityId" : null,
"userId" : null
},
"familiarity" : 1,
"welcomeNote" : "Welcome to Breezie.",
"roles" : [ "ROLE_S" ],
"sponsors" : [ ],
"sponsees" : [ "4809459f-3d27-46fd-8a59-b6b8204d2838" ]
} ]
Listing Users in an Organization
A GET
request to /users/search/findByOrganizationId?id=[organization-id]
will list all of the Users
in the Organization specified that are accessible by the User who make the request. Sponsors are not listed.
Example request
$ curl 'https://api.breezie.com/users/search/findByOrganizationId?id=48865325-ddb0-4dc5-ac55-d7729794b8ec' -i -H 'Authorization: Bearer: 00a8bc434df00b000d4f1a2b6745eef3fb35bfa'
Listing Users in a Region
A GET
request to /users/search/findByRegionId?id=[region-id]
will list all of the Users in the Region specified
that are accessible by the User who make the request. Sponsors are not listed.
Example request
$ curl 'https://api.breezie.com/users/search/findByRegionId?id=e9f7a654-7135-4b10-afa3-c3a97319c823' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Listing Users in a Campus
A GET
request to /users/search/findByCampusId?id=[campus-id]
will list all of the Users in the Campus specified
that are accessible by the User who make the request. Sponsors are not listed.
Example request
$ curl 'https://api.breezie.com/users/search/findByCampusId?id=7ccae739-0817-46ef-b39c-4c695a6ec835' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Listing Users in a Facility
A GET
request to /users/search/findByFacilityId?id=[facility-id]
will list all of the Users in the Facility
specified that are accessible by the User who make the request. Sponsors are not listed.
Example request
$ curl 'https://api.breezie.com/users/search/findByFacilityId?id=9105e5a5-acba-4c00-8f5d-5b8fccd80da0' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Retrieve a User
A GET
request to /users/{id}
will retrieve the User identified by id
Example request
$ curl 'https://api.breezie.com/users/4809459f-3d27-46fd-8a59-b6b8204d2838' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
X-Application-Context: application:test:-1
Content-Type: application/json;charset=UTF-8
ETag: "0664954dc476f6a7d9d906a4ab3876c80"
Content-Length: 715
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"id" : "4809459f-3d27-46fd-8a59-b6b8204d2838",
"username" : "bobjones@email.com",
"firstName" : "Bob",
"lastName" : "Jones",
"profileImageUri" : "https://api-dev.breezie.com/pictures/c9897964-fb64-45ee-876a-128dbaf4c18b/file",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "4809459f-3d27-46fd-8a59-b6b8204d2838"
},
"familiarity" : 1,
"welcomeNote" : "Welcome to Breezie.",
"roles" : [ "ROLE_U" ],
"sponsors" : [ "351ef1ef-1d3a-4ac1-8137-12f91accc905" ],
"sponsees" : [ ]
}
Retrieve a User By Username
A GET
request to /users/search/findByUsername?username={username}
will retrieve the User identified by username
Example request
$ curl 'https://api.breezie.com/users/search/findByUsername?username=bobjones@email.com' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Create a User
A POST
request to /users
will save a new User and return the created representation.
Request structure
Path | Type | Description |
---|---|---|
|
|
Username associated with the user (cannot be changed) |
|
|
Password used for login purposes |
|
|
First name of the user |
|
|
Last name of the user |
|
|
Welcome message to show during user setup process |
|
|
Level of familiarity of the user with internet and related technologies. Allowed values: 1, 2 or 3. 1 = 'Not at all familiar with the internet', 2 = 'A little familiar with the internet', 3 = 'Quite familiar with the internet'. |
|
|
ID of the organization that the user belongs to |
|
|
ID of the region that the user belongs to |
|
|
ID of the campus that the user belongs to |
|
|
ID of the facility that the user belongs to |
|
|
Role of the user |
|
|
ID list of users sponsoring this user |
|
|
ID list of users who this user is sponsoring |
Example request
$ curl 'https://api.breezie.com/users/' -i -X POST -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json;charset=UTF-8' -d '{
"username" : "steve.jones@email.com",
"password" : "qhfr456ghijhw",
"firstName" : "Steve",
"lastName" : "Jones",
"welcomeNote" : "Welcome to Breezie.",
"familiarity" : 2,
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0"
},
"roles" : [ "ROLE_U" ],
"sponsors" : [ ],
"sponsees" : [ ]
}'
Example response
HTTP/1.1 201 Created
X-Application-Context: application:test:-1
Content-Type: application/json;charset=UTF-8
Content-Length: 605
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"id" : "6v9105e5-acfccd80ba-8f5d-5b8da0-4c00",
"username" : "steve.jones@email.com",
"firstName" : "Steve",
"lastName" : "Jones",
"profileImageUri" : null,
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "6v9105e5-acfccd80ba-8f5d-5b8da0-4c00"
},
"familiarity" : 2,
"welcomeNote" : "Welcome to Breezie.",
"roles" : [ "ROLE_U" ],
"sponsors" : [ ],
"sponsees" : [ ]
}
Replace a User
A PUT
request to /users/{id}
is used to update a User completely.
Example request
$ curl 'https://api.breezie.com/users/4809459f-3d27-46fd-8a59-b6b8204d2838' -i -X PUT -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json;charset=UTF-8' -d '{
"username" : "bobjones@email.com",
"password" : null,
"firstName" : "Bob",
"lastName" : "Jones",
"welcomeNote" : "Welcome to Breezie.",
"familiarity" : 3,
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0"
},
"roles" : [ "ROLE_U" ],
"sponsors" : [ ],
"sponsees" : [ ]
}'
Example response
HTTP/1.1 200 OK
X-Application-Context: application:test:-1
Content-Type: application/json;charset=UTF-8
Content-Length: 600
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"id" : "4809459f-3d27-46fd-8a59-b6b8204d2838",
"username" : "bobjones@email.com",
"firstName" : "Bob",
"lastName" : "Jones",
"profileImageUri" : null,
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "4809459f-3d27-46fd-8a59-b6b8204d2838"
},
"familiarity" : 3,
"welcomeNote" : "Welcome to Breezie.",
"roles" : [ "ROLE_U" ],
"sponsors" : [ ],
"sponsees" : [ ]
}
Update a User
A PATCH
request to /users/{id}
is used to update a User partially.
Example request
$ curl 'https://api.breezie.com/users/4809459f-3d27-46fd-8a59-b6b8204d2838' -i -X PATCH -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json;charset=UTF-8' -d '{
"firstName" : "Ryan"
}'
Example response
HTTP/1.1 200 OK
X-Application-Context: application:test:-1
Content-Type: application/json;charset=UTF-8
Content-Length: 606
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"id" : "4809459f-3d27-46fd-8a59-b6b8204d2838",
"username" : "bobjones@email.com",
"firstName" : "Ryan",
"lastName" : "Jones",
"profileImageUri" : null,
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : null
},
"familiarity" : 1,
"welcomeNote" : "Welcome to Breezie.",
"roles" : [ "ROLE_U" ],
"sponsors" : [ "ddea6728-8cd2-449d-9e5f-092200043f25" ],
"sponsees" : [ ]
}
Delete a User
A DELETE
request is used to delete a User.
Example request
$ curl 'https://api.breezie.com/users/4809459f-3d27-46fd-8a59-b6b8204d2838' -i -X DELETE -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 204 No Content
X-Application-Context: application:test:-1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Create User Image Object
A POST
request to users/{id}/picture
is used to generate an image representation that allows you to upload an image file for the specified User.
To complete the image upload, a POST
request with the image file to the URL returned in this request is required.
Example request
$ curl 'https://api.breezie.com/users/4809459f-3d27-46fd-8a59-b6b8204d2838/picture' -i -X POST -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 201 Created
X-Application-Context: application:test:-1
Content-Type: application/json;charset=UTF-8
Content-Length: 503
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"keyname" : "hfd74-j4jdgvft79-gjsh9grd-dadhg4fa",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "4809459f-3d27-46fd-8a59-b6b8204d2838"
},
"extension" : "png",
"visibility" : "restricted",
"url" : "https://api.breezie.com/pictures/hfd74-j4jdgvft79-gjsh9grd-dadhg4fa/file"
}
Listing sponsors
A GET
request to /users/{id}/sponsors
will retrieve the list of Users that are Partners of the User identified by id
.
Example request
$ curl 'https://api.breezie.com/users/4809459f-3d27-46fd-8a59-b6b8204d2838/sponsors' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
X-Application-Context: application:test:-1
Content-Type: application/json;charset=UTF-8
ETag: "026812e3b7522b7a902d2132f76fa8d83"
Content-Length: 556
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
[ {
"id" : "492734ec-7409-4614-8368-65310f7236b0",
"username" : "alicia.smith@email.com",
"firstName" : "Alicia",
"lastName" : "Smith",
"profileImageUri" : "https://api-dev.breezie.com/pictures/rt534625-gfts-876a-oi8u-134rf4eds233/file",
"scope" : {
"organizationId" : null,
"regionId" : null,
"campusId" : null,
"facilityId" : null,
"userId" : null
},
"familiarity" : 1,
"welcomeNote" : "Welcome to Breezie.",
"roles" : [ "ROLE_S" ],
"sponsors" : [ ],
"sponsees" : [ "4809459f-3d27-46fd-8a59-b6b8204d2838" ]
} ]
Settings
Settings
is a representation of a set of properties that defines the Device behaviour.
The set of properties that can be set on a Device are defined in a schema that can be found on
https://api.breezie.com/devices/schema.json . This json document describes all the properties available and the
restrictions.
|
Settings can be defined at different levels: breezie level, organization level
and user level. Properties defined at Breezie level can be overwritten at Organization and User level and properties
set at Organization level can be overwritten at User level.
|
The Settings applied to a device is the combination of Breezie Settings, Organizations Settings
and User Settings. In the event that the same property is defined at different levels, the User level
has the highest priority and Breezie level the lowest.
|
Retrieve Settings for a User
A GET
request to /users/{id}/settings
will return the set of properties set at User level.
Example request
$ curl 'https://api.breezie.com/users/067e6162-3b6f-4ae2-a171-2470b63dff00/settings' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'version: 1.0'
Example response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 370
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"volume" : 50,
"allowAppsUninstall" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"screenBrightness" : 7,
"allowMicrophone" : true,
"schemaUri" : "/schemas/actual_schema_breezie",
"enableCamera" : true,
"screenTimeout" : 60,
"userId" : "067e6162-3b6f-4ae2-a171-2470b63dff00",
"version" : "1.0"
}
Replace Settings for a User
A PUT
request to /users/{id}/settings
will update the set of properties set at User level.
Example request
$ curl 'https://api.breezie.com/users/067e6162-3b6f-4ae2-a171-2470b63dff00/settings' -i -X PUT -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'version: 1.0' -H 'Content-Type: application/json' -d '{
"allowMicrophone" : true,
"enableCamera" : true,
"screenTimeout" : 60,
"volume" : 50,
"screenBrightness" : 7,
"allowAppsUninstall" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ]
}'
Example response
HTTP/1.1 201 Created
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 370
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"allowMicrophone" : true,
"enableCamera" : true,
"screenTimeout" : 60,
"volume" : 50,
"screenBrightness" : 7,
"allowAppsUninstall" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"userId" : "067e6162-3b6f-4ae2-a171-2470b63dff00",
"version" : "1.0",
"schemaUri" : "/schemas/actual_schema_breezie"
}
Sensitive Information
Sensitive
represents protected information of the User. Access to this resource is restricted.
Structure
Path | Type | Description |
---|---|---|
|
|
Telephone number of the user |
|
|
Social security number of the user |
|
|
Date of birth of the user |
|
|
Gender of the user |
|
|
Religion that the user practices |
Sensitive API
Retrieve Sensitive Information
A GET
request to /users/{id}/sensitive
will return the private information of the User.
This information is exclusively accessible by the owner or Partners of the owner.
Example request
$ curl 'https://api.breezie.com/users/4809459f-3d27-46fd-8a59-b6b8204d2838/sensitive' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
X-Application-Context: application:test:-1
Content-Type: application/json;charset=UTF-8
ETag: "0bad90a36ad9de7556f967eab89a0fd0c"
Content-Length: 139
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"phoneNumber" : "07411223333",
"socialSecurity" : "000AAA",
"dob" : -663552000000,
"gender" : "Male",
"religion" : "agnostic"
}
Create Sensitive Information
A POST
request to /users/{id}/sensitive
will save the private information of the User. This information is exclusively writable by the owner or Partners of the owner.
Example request
$ curl 'https://api.breezie.com/users/dft54er4-8709-9iyt-ht5r67ytg4df/sensitive' -i -X POST -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json;charset=UTF-8' -d '{
"phoneNumber" : "07411223333",
"socialSecurity" : "000AAA",
"dob" : -663552000000,
"gender" : "Male",
"religion" : "agnostic"
}'
Example response
HTTP/1.1 201 Created
X-Application-Context: application:test:-1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Replace Sensitive Information
A PUT
request to /users/{id}/sensitive
will update the private information of the User completely. This information is exclusively upgradeable by the owner or partners of the owner.
Example request
$ curl 'https://api.breezie.com/users/4809459f-3d27-46fd-8a59-b6b8204d2838/sensitive' -i -X PUT -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json;charset=UTF-8' -d '{
"phoneNumber" : "07411223333",
"socialSecurity" : "000AAA",
"dob" : -663552000000,
"gender" : "Male",
"religion" : "agnostic"
}'
Example response
HTTP/1.1 200 OK
X-Application-Context: application:test:-1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Update Sensitive Information
A PATCH
request to /users/{id}/sensitive
will save the private information of the User partially. This information is exclusively upgradeable by the owner or Partners of the owner.
Example request
$ curl 'https://api.breezie.com/users/4809459f-3d27-46fd-8a59-b6b8204d2838/sensitive' -i -X PATCH -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json;charset=UTF-8' -d '{
"socialSecurity" : "111BBB"
}'
Example response
HTTP/1.1 200 OK
X-Application-Context: application:test:-1
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Sponsor Request
A sponsorRequest
represents an invitation to someone to become the sponsor of a User.
Structure
Path | Type | Description |
---|---|---|
|
|
Sponsor request identifier |
|
|
Id of the user who wants to be sponsorized |
|
|
Email of the person who receives the request |
|
|
First name of the person who receives the request |
|
|
Last name of the person who receives the request |
|
|
Message that will be received by the person who received the request |
|
|
Url where the person who receives the request will be redirect to complete the process |
Sponsor Requests API
Listing Sponsor Requests
A GET
request to /sponsorRequests/search/findByUserId?id=[userId]
will list all sponsor requests made on behalf of the User identified by userId
. Any User with read access to the specified User can make this request.
Example request
$ curl 'https://api.breezie.com/sponsorRequests/search/findByUserId?id=4809459f-3d27-46fd-8a59-b6b8204d2838' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
X-Application-Context: application:test:-1
Content-Type: application/json;charset=UTF-8
ETag: "02e2f901295ec2cd615d8776e4331e8c6"
Content-Length: 304
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
[ {
"id" : "e41f610f-3382-4368-88de-67a3b2ea586c",
"userId" : "4809459f-3d27-46fd-8a59-b6b8204d2838",
"email" : "mike.owen@email.com",
"firstName" : "Mike",
"lastName" : "Owen",
"message" : "Hi Mike, Would you mind to help me with Breezie?",
"redirectUri" : "https://manage.breezie.com"
} ]
Create Sponsor Request
A POST
request to /sponsorRequests
will create a sponsor request for the User specified in the body. Any User with write access to the specified User can make this request.
Example request
$ curl 'https://api.breezie.com/sponsorRequests/' -i -X POST -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json;charset=UTF-8' -d '{
"userId" : "4809459f-3d27-46fd-8a59-b6b8204d2838",
"email" : "mike.owen@email.com",
"firstName" : "Mike",
"lastName" : "Owen",
"message" : "Hi Mike, Would you mind to help me with Breezie?",
"redirectUri" : "https://manage.breezie.com"
}'
Example response
HTTP/1.1 201 Created
X-Application-Context: application:test:-1
Content-Type: application/json;charset=UTF-8
Content-Length: 300
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"id" : "99b13bd5-72fe-4dc8-b9a0-4b25cc90210c",
"userId" : "4809459f-3d27-46fd-8a59-b6b8204d2838",
"email" : "mike.owen@email.com",
"firstName" : "Mike",
"lastName" : "Owen",
"message" : "Hi Mike, Would you mind to help me with Breezie?",
"redirectUri" : "https://manage.breezie.com"
}
Update Sponsor Request
A PATCH
request to /sponsorRequests/{id}
will update a sponsor request identified by id
. Any User with write access to the specified User can make this request.
Example request
$ curl 'https://api.breezie.com/sponsorRequests/c70f354c-483f-45d0-8970-0a33ac2e12ab' -i -X PATCH -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json;charset=UTF-8' -d '{
"firstName" : "Michael"
}'
Example response
HTTP/1.1 200 OK
X-Application-Context: application:test:-1
Content-Type: application/json;charset=UTF-8
Content-Length: 279
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"id" : "c70f354c-483f-45d0-8970-0a33ac2e12ab",
"userId" : "4809459f-3d27-46fd-8a59-b6b8204d2838",
"email" : "mike.owen@email.com",
"firstName" : "Michael",
"lastName" : "Owen",
"message" : "Hi Mike, Would you mind to help me with Breezie?",
"redirectUri" : null
}
Organizations
An organization
is a representation of an institution where other resources of the system like users
, devices
,
contents
… will be allocated. This resource is the top of an pyramidal structure called scope composed by
facilities
, campuses
, regions
and organizations
.
Structure
Path | Type | Description |
---|---|---|
|
|
The organization id |
|
|
The name of the organization |
|
|
The country the organization is located in |
|
|
The first line of the organization address |
|
|
The second line of the organization address |
|
|
The organization zip code |
|
|
Flag indicating if the organization is a demo one or not |
|
|
The one who created the organization |
|
|
The time (Unix timestamp) the organization was created |
|
|
The time (Unix timestamp) the organization was updated |
|
|
The one who updated the organization |
Organizations API
Listing organizations
A GET
request to /organizations
will retrieve all organizations accessible by the user who made the request.
Example request
$ curl 'https://api.breezie.com/organizations' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1341
[ {
"name" : "Kaufland",
"country" : "Germany",
"addressLine1" : "Auckan Street 7",
"addressLine2" : "Floor 3",
"zipCode" : "9AS 7U1",
"demo" : true,
"disabled" : false,
"customTC" : false,
"checkInActive" : false,
"themeId" : null,
"logoUrl" : null,
"scopeLevelsAvailable" : null,
"organizationLevelReference" : null,
"regionLevelReference" : null,
"campusLevelReference" : null,
"facilityLevelReference" : null,
"vitalCare" : false,
"id" : "1cd4264a-e0cc-48d0-80d8-51d10569f140",
"createdTime" : 1621357899628,
"lastUpdatedTime" : 1621357899628,
"createdBy" : "user",
"updatedBy" : "user",
"validCredentials" : true
}, {
"name" : "Pearson",
"country" : "New Zeland",
"addressLine1" : "Clarance Lane 34",
"addressLine2" : "Apartment 12",
"zipCode" : "W1Q YU7",
"demo" : true,
"disabled" : false,
"customTC" : false,
"checkInActive" : false,
"themeId" : null,
"logoUrl" : null,
"scopeLevelsAvailable" : null,
"organizationLevelReference" : null,
"regionLevelReference" : null,
"campusLevelReference" : null,
"facilityLevelReference" : null,
"vitalCare" : false,
"id" : "178c7750-407d-489e-887e-e21d3564e58a",
"createdTime" : 1621357899627,
"lastUpdatedTime" : 1621357899627,
"createdBy" : "user",
"updatedBy" : "user",
"validCredentials" : false
} ]
Retrieve an organization
A GET
request to /organizations/{id}
will retrieve all metadata about a specific organization.
Example request
$ curl 'https://api.breezie.com/organizations/c78de1cb-de64-4ef3-be0a-8d4b2cee16fe' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 672
{
"name" : "Pearson",
"country" : "New Zeland",
"addressLine1" : "Clarance Lane 34",
"addressLine2" : "Apartment 12",
"zipCode" : "W1Q YU7",
"demo" : true,
"disabled" : false,
"customTC" : false,
"checkInActive" : false,
"themeId" : null,
"logoUrl" : null,
"scopeLevelsAvailable" : null,
"organizationLevelReference" : null,
"regionLevelReference" : null,
"campusLevelReference" : null,
"facilityLevelReference" : null,
"vitalCare" : false,
"id" : "c78de1cb-de64-4ef3-be0a-8d4b2cee16fe",
"createdTime" : 1621357899343,
"lastUpdatedTime" : 1621357899343,
"createdBy" : "user",
"updatedBy" : "user",
"validCredentials" : false
}
Replace an organization
A PUT
request to /organizations/{id}
will do a complete replace of the resource.
Example request
$ curl 'https://api.breezie.com/organizations/9a268497-beda-43a6-aedb-0a591ee447a3' -i -X PUT -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"name" : "Steam Engine",
"country" : "UK",
"addressLine1" : "41 Crosser Street",
"addressLine2" : "Nr 10",
"zipCode" : "SE17BU",
"demo" : true,
"disabled" : true
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 661
{
"name" : "Steam Engine",
"country" : "UK",
"addressLine1" : "41 Crosser Street",
"addressLine2" : "Nr 10",
"zipCode" : "SE17BU",
"demo" : true,
"disabled" : true,
"customTC" : false,
"checkInActive" : false,
"themeId" : null,
"logoUrl" : null,
"scopeLevelsAvailable" : null,
"organizationLevelReference" : null,
"regionLevelReference" : null,
"campusLevelReference" : null,
"facilityLevelReference" : null,
"vitalCare" : false,
"id" : "9a268497-beda-43a6-aedb-0a591ee447a3",
"createdTime" : 1621357899464,
"lastUpdatedTime" : 1621357899475,
"createdBy" : "user",
"updatedBy" : "user",
"validCredentials" : false
}
Update an organization
A PATCH
request to /organizations/{id}
will update the organization partially. This will only update the fields
you requested to be changed.
Example request
$ curl 'https://api.breezie.com/organizations/cce35ff9-2ced-4e9b-9ccb-f005a2f6192a' -i -X PATCH -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"name" : "Audi",
"country" : "Austria"
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 666
{
"name" : "Audi",
"country" : "Austria",
"addressLine1" : "Clarance Lane 34",
"addressLine2" : "Apartment 12",
"zipCode" : "W1Q YU7",
"demo" : true,
"disabled" : false,
"customTC" : false,
"checkInActive" : false,
"themeId" : null,
"logoUrl" : null,
"scopeLevelsAvailable" : null,
"organizationLevelReference" : null,
"regionLevelReference" : null,
"campusLevelReference" : null,
"facilityLevelReference" : null,
"vitalCare" : false,
"id" : "cce35ff9-2ced-4e9b-9ccb-f005a2f6192a",
"createdTime" : 1621357899547,
"lastUpdatedTime" : 1621357899556,
"createdBy" : "user",
"updatedBy" : "user",
"validCredentials" : false
}
Settings
Settings
is a representation of a set of properties that define the device behaviour.
The set of properties that can be set on a device is defined in a schema available on
https://api.breezie.com/devices/schema.json . This json document describes all the properties available and their
restrictions.
|
Settings can be defined at different levels: breezie level, organization level
and user level. Properties defined at Breezie level can be overwritten at organization and user level and properties
set at organization level can be overwritten at user level.
|
The Settings applied to a device is the combination of breezie settings, organizations settings
and user settings. In case the same property is defined at different levels, user level
has the highest priority and Breezie level the lowest.
|
Retrieve settings for an organization
A GET
request to /organizations/{id}/settings
will return the set of properties settled at organization level.
Example request
$ curl 'https://api.breezie.com/organizations/54947df8-0e9e-4471-a2f9-9af509fb5889/settings' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'version: 1.0'
Example response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 491
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"organizationId" : "54947df8-0e9e-4471-a2f9-9af509fb5889",
"allowBreezieAppRemoval" : false,
"allowDeviceAdminRemoval" : true,
"usbDebugging" : false,
"allowFactoryReset" : false,
"schemaUri" : "/schemas/actual_schema_breezie",
"disableApps" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"region" : "UK",
"version" : "1.0",
"manualTime" : {
"timeZoneId" : "Europe/London",
"timeFormat" : "YYYY-MM-DD"
}
}
Replace settings for an organization
A PUT
request to /organizations/{id}/settings
will update the set of properties settled at organization level. This
properties will be applied for all users inside the organization identified by id
.
Example request
$ curl 'https://api.breezie.com/organizations/54947df8-0e9e-4471-a2f9-9af509fb5889/settings' -i -X PUT -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'version: 1.0' -H 'Content-Type: application/json' -d '{
"usbDebugging" : false,
"allowFactoryReset" : false,
"allowDeviceAdminRemoval" : true,
"allowBreezieAppRemoval" : false,
"disableApps" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"manualTime" : {
"timeZoneId" : "Europe/London",
"timeFormat" : "YYYY-MM-DD"
},
"region" : "UK"
}'
Example response
HTTP/1.1 201 Created
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 491
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"usbDebugging" : false,
"allowFactoryReset" : false,
"allowDeviceAdminRemoval" : true,
"allowBreezieAppRemoval" : false,
"disableApps" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"manualTime" : {
"timeZoneId" : "Europe/London",
"timeFormat" : "YYYY-MM-DD"
},
"region" : "UK",
"organizationId" : "54947df8-0e9e-4471-a2f9-9af509fb5889",
"version" : "1.0",
"schemaUri" : "/schemas/actual_schema_breezie"
}
Regions
A region
is a representation of a part of an institution localized on some area. It is used to allocate other resources of the system like users
,
devices
, contents
… This resource is the under the top of an pyramidal structure (scope) composed by facilities
, campuses
,
regions
and organizations
.
Structure
Path | Type | Description |
---|---|---|
|
|
The region id |
|
|
The name of the region |
|
|
The country the region belongs to |
|
|
The organization which the region belongs to |
|
|
The one who created the region |
|
|
The time (Unix timestamp) the region was created |
|
|
The time (Unix timestamp) the region was updated |
|
|
The one who updated the region |
Regions API
Listing regions
A GET
request to /regions
will retrieve all regions accessible by the user who make the request.
Example request
$ curl 'https://api.breezie.com/regions' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 575
[ {
"id" : "2652dc2a-9906-4086-8e09-f2e44e899955",
"name" : "Auckland",
"country" : "New Zealand",
"organizationId" : "1c9c9db6-364b-43ce-9a29-97c9160afc81",
"createdTime" : 1621357954962,
"lastUpdatedTime" : 1621357954962,
"createdBy" : "user",
"updatedBy" : "user"
}, {
"id" : "728ee2bb-1fb2-4c10-9ee9-89ac4b003536",
"name" : "Baden-Wurttenberg",
"country" : "Germany",
"organizationId" : "9dcfde86-9112-4496-b4cd-677e85994b2a",
"createdTime" : 1621357954962,
"lastUpdatedTime" : 1621357954962,
"createdBy" : "user",
"updatedBy" : "user"
} ]
Retrieve a Region
A GET
request to /regions/{id}
will retrieve all metadata of the specified region.
Example request
$ curl 'https://api.breezie.com/regions/6d97a05e-a5a8-4aaa-a7a5-4d10da10eff7' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 282
{
"id" : "6d97a05e-a5a8-4aaa-a7a5-4d10da10eff7",
"name" : "Auckland",
"country" : "New Zealand",
"organizationId" : "d1cbcd42-fac0-4859-9eac-79878cd90d31",
"createdTime" : 1621357955092,
"lastUpdatedTime" : 1621357955092,
"createdBy" : "user",
"updatedBy" : "user"
}
Create a Region
A POST
request to /regions
will create a new Region an return the metadata of the resource created.
Request structure
Path | Type | Description |
---|---|---|
|
|
The name of the region |
|
|
The country the region is located in |
|
|
The organization which the region belongs to |
Example request
$ curl 'https://api.breezie.com/regions' -i -X POST -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"name" : "Ohio",
"country" : "USA",
"organizationId" : "b73da7be-5bf0-40a1-87bb-24250784eb2d"
}'
Example response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 270
{
"id" : "473451af-ae11-4c51-bb62-dc12f4f87aa4",
"name" : "Ohio",
"country" : "USA",
"organizationId" : "b73da7be-5bf0-40a1-87bb-24250784eb2d",
"createdTime" : 1621357954887,
"lastUpdatedTime" : 1621357954887,
"createdBy" : "user",
"updatedBy" : "user"
}
Replace a Region
A PUT
request to /regions/{id}
is used to replace completely a Region. organizationId
can not be modified.
Example request
$ curl 'https://api.breezie.com/regions/5099f7cd-702a-48b3-bf31-83d6bff88b20' -i -X PUT -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"name" : "Maramures",
"country" : "Romania",
"organizationId" : "f2539ac4-105e-462f-8654-cd988efd19bc"
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 279
{
"id" : "5099f7cd-702a-48b3-bf31-83d6bff88b20",
"name" : "Maramures",
"country" : "Romania",
"organizationId" : "f2539ac4-105e-462f-8654-cd988efd19bc",
"createdTime" : 1621357955222,
"lastUpdatedTime" : 1621357955229,
"createdBy" : "user",
"updatedBy" : "user"
}
Update a Region
A PATCH
request to /regions/{id}
will update the specified Region partially. This will only update the fields
you request be changed. `organizationId, can not be modified.
Example request
$ curl 'https://api.breezie.com/regions/ec3146d6-850f-4668-9d11-330a1d3ca905' -i -X PATCH -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"name" : "Kensington",
"country" : "UK"
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 275
{
"id" : "ec3146d6-850f-4668-9d11-330a1d3ca905",
"name" : "Kensington",
"country" : "UK",
"organizationId" : "8278179e-58e9-4894-8cb1-8d1158cada0e",
"createdTime" : 1621357955154,
"lastUpdatedTime" : 1621357955160,
"createdBy" : "user",
"updatedBy" : "user"
}
Delete a Region
A DELETE
request to /regions/{id}
will delete the specified region.
Example request
$ curl 'https://api.breezie.com/regions/c4df8564-334c-4f8e-8a99-8a0917d35ed4' -i -X DELETE -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Campuses
A campus
is a representation of a part of region
. It is used to allocate other resources of the system like users
,
devices
, contents
… This resource is over the bottom of a pyramidal structure (scope) composed by facilities
, campuses
,
regions
and organizations
.
Structure
Path | Type | Description |
---|---|---|
|
|
The campus id |
|
|
The name of the campus |
|
|
The identifier of organization which the campus belongs to |
|
|
The identifier of the region which the campus belongs to |
|
|
The one who created the campus |
|
|
The time (Unix timestamp) the campus was created |
|
|
The time (Unix timestamp) the campus was updated |
|
|
The one who updated the campus |
Campuses API
Listing campuses
A GET
request to /campuses
will retrieve all campuses accessible by the user who make the request.
Example request
$ curl 'https://api.breezie.com/campuses' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 621
[ {
"id" : "9784ad47-ee1f-4273-8de3-f9652d865b1a",
"name" : "Hawkins",
"organizationId" : "58ioa3fg-703e-49b3-8670-b1c468f47f1f",
"regionId" : "ee99aed2-acb8-4559-a1c3-e605ea3a653b",
"createdTime" : 1468934616500,
"lastUpdatedTime" : 1468934616500,
"createdBy" : "user",
"updatedBy" : "user"
}, {
"id" : "a994decc-1609-44af-b438-623c7224f4de",
"name" : "Peterson",
"organizationId" : "78b219fb-0099-4171-b4c5-4fbfa1bd88dd",
"regionId" : "dd6662eb-111b-40b2-8480-aab7fdb1c80f",
"createdTime" : 1468934616500,
"lastUpdatedTime" : 1468934616500,
"createdBy" : "user",
"updatedBy" : "user"
} ]
Retrieve a campus
A GET
request to /campuses/{id}
will retrieve all metadata about the specified campus.
Example request
$ curl 'https://api.breezie.com/campuses/9784ad47-ee1f-4273-8de3-f9652d865b1a' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 307
{
"id" : "9784ad47-ee1f-4273-8de3-f9652d865b1a",
"name" : "Hawkins",
"organizationId" : "58ioa3fg-703e-49b3-8670-b1c468f47f1f",
"regionId" : "ee99aed2-acb8-4559-a1c3-e605ea3a653b",
"createdTime" : 1468934616500,
"lastUpdatedTime" : 1468934616500,
"createdBy" : "user",
"updatedBy" : "user"
}
Create a Campus
A POST
request to /campuses
will create a new Campus and return the created resource metadata.
Request structure
Path | Type | Description |
---|---|---|
|
|
The name of the campus |
|
|
The scope object for this campus |
Example request
$ curl 'https://api.breezie.com/campuses' -i -X POST -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"name" : "Wellington",
"regionId" : "ee99aed2-acb8-4559-a1c3-e605ea3a653b"
}'
Example response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 310
{
"id" : "aa07a563-86c3-478d-aae3-e822c1efd866",
"name" : "Wellington",
"organizationId" : "58ioa3fg-703e-49b3-8670-b1c468f47f1f",
"regionId" : "ee99aed2-acb8-4559-a1c3-e605ea3a653b",
"createdTime" : 1621357943278,
"lastUpdatedTime" : 1621357943278,
"createdBy" : "user",
"updatedBy" : "user"
}
Replace a campus
A PUT
request to /campuses/{id}
will do a complete replace of the Campus. regionId
can not be modified.
Example request
$ curl 'https://api.breezie.com/campuses/9784ad47-ee1f-4273-8de3-f9652d865b1a' -i -X PUT -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"name" : "John Kresse Court",
"regionId" : "ee99aed2-acb8-4559-a1c3-e605ea3a653b"
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 317
{
"id" : "9784ad47-ee1f-4273-8de3-f9652d865b1a",
"name" : "John Kresse Court",
"organizationId" : "58ioa3fg-703e-49b3-8670-b1c468f47f1f",
"regionId" : "ee99aed2-acb8-4559-a1c3-e605ea3a653b",
"createdTime" : 1468934616500,
"lastUpdatedTime" : 1621357943090,
"createdBy" : "user",
"updatedBy" : "user"
}
Update a Campus
A PATCH
request to /campuses/{id}
will update the Campus partially. This will only update the fields
you requested to be changed.
Example request
$ curl 'https://api.breezie.com/campuses/9784ad47-ee1f-4273-8de3-f9652d865b1a' -i -X PATCH -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"name" : "Lindton Center"
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 314
{
"id" : "9784ad47-ee1f-4273-8de3-f9652d865b1a",
"name" : "Lindton Center",
"organizationId" : "58ioa3fg-703e-49b3-8670-b1c468f47f1f",
"regionId" : "ee99aed2-acb8-4559-a1c3-e605ea3a653b",
"createdTime" : 1468934616500,
"lastUpdatedTime" : 1621357943044,
"createdBy" : "user",
"updatedBy" : "user"
}
Delete a campus
A DELETE
request to /campuses/{id}
will delete the Campus.
Example request
$ curl 'https://api.breezie.com/campuses/a994decc-1609-44af-b438-623c7224f4de' -i -X DELETE -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Facilities
A facility
is a representation of a part of a Campus. It is used to allocate other resources of the system like users
,
devices
, contents
… This resource is the base of an pyramidal structure (scope) composed by facilities
, campuses
,
regions
and organizations
.
Structure
Path | Type | Description |
---|---|---|
|
|
The facility id |
|
|
The name of the facility |
|
|
The first line of the facility address |
|
|
The second line of the facility address |
|
|
The city the facility is located in |
|
|
The country the facility is located in |
|
|
The zip code of the facility |
|
|
The identifier of organization which the facility belongs to |
|
|
The identifier of the region which the facility belongs to |
|
|
The identifier of the campus which the facility belongs to |
|
|
The one who created the facility |
|
|
The time (Unix timestamp) the facility was created |
|
|
The time (Unix timestamp) the facility was updated |
|
|
The one who updated the facility |
Facilities API
Listing Facilities
A GET
request to /facilities
will retrieve all Facilities accessible by the User who made the request.
Example request
$ curl 'https://api.breezie.com/facilities' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1030
[ {
"id" : "6uw8i21-b535-49e1-b565-78eec7154e25",
"name" : "Pearson",
"addressLine1" : "Clarance Lane 34",
"addressLine2" : "Apartment 12",
"city" : "Wellington",
"country" : "New Zealand",
"zipCode" : "W1Q YU7",
"organizationId" : "58ioa3fg-703e-49b3-8670-b1c468f47f1f",
"regionId" : "ee99aed2-acb8-4559-a1c3-e605ea3a653b",
"campusId" : "9784ad47-ee1f-4273-8de3-f9652d865b1a",
"createdBy" : "user",
"createdTime" : 1468919272789,
"updatedBy" : "user",
"lastUpdatedTime" : 1468920665699
}, {
"id" : "75e9b678-da51-4320-a26f-ab2ae00c85df",
"name" : "Muller",
"addressLine1" : "Katharina Street 19",
"addressLine2" : "Floor nr 5",
"city" : "Stuttgart",
"country" : "Germany",
"zipCode" : "QWE 99O",
"organizationId" : "78b219fb-0099-4171-b4c5-4fbfa1bd88dd",
"regionId" : "dd6662eb-111b-40b2-8480-aab7fdb1c80f",
"campusId" : "a994decc-1609-44af-b438-623c7224f4de",
"createdBy" : "user",
"createdTime" : 1468919272789,
"updatedBy" : "user",
"lastUpdatedTime" : 1468920665699
} ]
Retrieve a Facility
A GET
request to /facilities/{id}
will retrieve all metadata about the specified Facility.
Example request
$ curl 'https://api.breezie.com/facilities/6uw8i21-b535-49e1-b565-78eec7154e25' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 514
{
"id" : "6uw8i21-b535-49e1-b565-78eec7154e25",
"name" : "Pearson",
"addressLine1" : "Clarance Lane 34",
"addressLine2" : "Apartment 12",
"city" : "Wellington",
"country" : "New Zealand",
"zipCode" : "W1Q YU7",
"organizationId" : "58ioa3fg-703e-49b3-8670-b1c468f47f1f",
"regionId" : "ee99aed2-acb8-4559-a1c3-e605ea3a653b",
"campusId" : "9784ad47-ee1f-4273-8de3-f9652d865b1a",
"createdBy" : "user",
"createdTime" : 1468919272789,
"updatedBy" : "user",
"lastUpdatedTime" : 1468920665699
}
Create a Facility
A POST
request to /facilities
will create a new facility and return the created resource metadata
Request structure
Path | Type | Description |
---|---|---|
|
|
The name of the facility |
|
|
The first line of the facility address |
|
|
The second line of the facility address |
|
|
The city the facility is located in |
|
|
The country the facility is located in |
|
|
The facility zip code |
|
|
The identifier of the campus which the facility belongs to |
Example request
$ curl 'https://api.breezie.com/facilities' -i -X POST -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"name" : "Robertson",
"addressLine1" : "Dowson Lake street nr 5",
"addressLine2" : "Floor nr. 4",
"city" : "Detroit",
"country" : "USA",
"zipCode" : "Z16 I9Q",
"campusId" : "9784ad47-ee1f-4273-8de3-f9652d865b1a"
}'
Example response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 512
{
"id" : "34768286-67bf-4657-9b0f-d7ba33ec7bdc",
"name" : "Robertson",
"addressLine1" : "Dowson Lake street nr 5",
"addressLine2" : "Floor nr. 4",
"city" : "Detroit",
"country" : "USA",
"zipCode" : "Z16 I9Q",
"organizationId" : "58ioa3fg-703e-49b3-8670-b1c468f47f1f",
"regionId" : "ee99aed2-acb8-4559-a1c3-e605ea3a653b",
"campusId" : "9784ad47-ee1f-4273-8de3-f9652d865b1a",
"createdBy" : "user",
"createdTime" : 1621357940305,
"updatedBy" : "user",
"lastUpdatedTime" : 1621357940305
}
Replace a Facility
A PUT
request to /facilities/{id}
will do a complete replace of the Facility. campusId
can not be modified.
Example request
$ curl 'https://api.breezie.com/facilities/6uw8i21-b535-49e1-b565-78eec7154e25' -i -X PUT -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"name" : "Carltons Court",
"addressLine1" : "Park Hill road",
"addressLine2" : "Floor nr. 6",
"city" : "London",
"country" : "UK",
"zipCode" : "SW2 1QW",
"campusId" : "9784ad47-ee1f-4273-8de3-f9652d865b1a"
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 505
{
"id" : "6uw8i21-b535-49e1-b565-78eec7154e25",
"name" : "Carltons Court",
"addressLine1" : "Park Hill road",
"addressLine2" : "Floor nr. 6",
"city" : "London",
"country" : "UK",
"zipCode" : "SW2 1QW",
"organizationId" : "58ioa3fg-703e-49b3-8670-b1c468f47f1f",
"regionId" : "ee99aed2-acb8-4559-a1c3-e605ea3a653b",
"campusId" : "9784ad47-ee1f-4273-8de3-f9652d865b1a",
"createdBy" : "user",
"createdTime" : 1468919272789,
"updatedBy" : "user",
"lastUpdatedTime" : 1621357940511
}
Update a Facility
A PATCH
request to /facilities/{id}
will update the Facility partially. This will only update the fields
you requested to be changed.
Example request
$ curl 'https://api.breezie.com/facilities/6uw8i21-b535-49e1-b565-78eec7154e25' -i -X PATCH -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{
"name" : "Brendsen",
"addressLine1" : "Acre Lane",
"addressLine2" : "Building E",
"city" : "Birmingham",
"country" : "UK",
"zipCode" : "BR1 R5Q"
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 497
{
"id" : "6uw8i21-b535-49e1-b565-78eec7154e25",
"name" : "Brendsen",
"addressLine1" : "Acre Lane",
"addressLine2" : "Building E",
"city" : "Birmingham",
"country" : "UK",
"zipCode" : "BR1 R5Q",
"organizationId" : "58ioa3fg-703e-49b3-8670-b1c468f47f1f",
"regionId" : "ee99aed2-acb8-4559-a1c3-e605ea3a653b",
"campusId" : "9784ad47-ee1f-4273-8de3-f9652d865b1a",
"createdBy" : "user",
"createdTime" : 1468919272789,
"updatedBy" : "user",
"lastUpdatedTime" : 1621357940459
}
Delete a Facility
A DELETE
request to /facilities/{id}
will delete the specified Facility.
Example request
$ curl 'https://api.breezie.com/facilities/75e9b678-da51-4320-a26f-ab2ae00c85df' -i -X DELETE -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Groups
The Groups API is used to create and list 'Groups'. A Group is a representation of a collection of items, be it a Bookmark, Application, Feed, Contact etc. One of the aforementioned resources will always belong to a Group, therefore you can receive the content of a Group once you know the Group’s information. It can be helpful to think of the Groups API as a collection of specific resources. The Group itself also holds all of the access control for resources within it.
In the context of a Breezie tablet device, Groups will appear as categories within the Interests application, with their content appearing within each category.
Structure
Path | Type | Description |
---|---|---|
|
|
Group identifier |
|
|
Name the group |
|
|
Image url of the group |
|
|
Image to show as background for the image icon |
|
|
Color to show as background for the image icon |
|
|
A descriptive note related to the group |
|
|
Group identifier from where this group will inherit content |
|
|
List of content identifiers that won’t be inherit from the parent |
|
|
Scope object holding the access control for the resource |
|
|
ID of the organization owning the group |
|
|
ID of the region owning the group |
|
|
ID of the facility owning the group |
|
|
ID of the campus owning the group |
|
|
ID of the user owning the group |
Groups API
Listing Groups
A GET
request to /groups
will list all Groups accessible by the User who make the request that are not personal Groups.
Example request
$ curl 'https://api.breezie.com/groups' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 3689
[ {
"id" : "8272834d-5489-42d4-962a-fc9d57c28785",
"name" : "Games",
"description" : "A group for all the games enthusiasts",
"imageUrl" : "www.games-group.co.uk/logo.jpg",
"backgroundImageUrl" : null,
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : null,
"facilityId" : null,
"userId" : null
},
"isDefault" : true,
"promote" : false,
"forced" : false,
"hidden" : true,
"personal" : false,
"hideOnHub" : false,
"backgroundColor" : null,
"parentGroup" : null,
"removedFromParent" : null
}, {
"id" : "b2c34ebc-e770-4559-a486-9a32e1d2d967",
"name" : "Travelling",
"description" : "A group for all the travelling enthusiasts",
"imageUrl" : "www.travelling-group.co.uk/logo.jpg",
"backgroundImageUrl" : null,
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"facilityId" : null,
"userId" : null
},
"isDefault" : true,
"promote" : false,
"forced" : false,
"hidden" : true,
"personal" : false,
"hideOnHub" : false,
"backgroundColor" : null,
"parentGroup" : null,
"removedFromParent" : null
}, {
"id" : "00c66c8c-d3b6-4cec-aa10-3d55d1d33526",
"name" : "Gardening",
"description" : "A group for all the gardening enthusiasts",
"imageUrl" : "www.gardening-group.co.uk/logo.jpg",
"backgroundImageUrl" : "www.gardening-group.co.uk/background.png",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"facilityId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"userId" : null
},
"isDefault" : true,
"promote" : false,
"forced" : false,
"hidden" : true,
"personal" : false,
"hideOnHub" : false,
"backgroundColor" : "#f1f1f1",
"parentGroup" : "0c4280c3-fa41-4f71-a2d4-64efce62e1ee",
"removedFromParent" : [ "65636032-9aaa-4c46-988f-561c7eee6236", "54390ea7-bbed-4f20-a35f-9d2dc0804afe" ]
}, {
"id" : "0c4280c3-fa41-4f71-a2d4-64efce62e1ee",
"name" : "Gardening",
"description" : "A group for all the gardening enthusiasts",
"imageUrl" : "www.gardening-group.co.uk/logo.jpg",
"backgroundImageUrl" : null,
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"facilityId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"userId" : null
},
"isDefault" : true,
"promote" : false,
"forced" : false,
"hidden" : true,
"personal" : false,
"hideOnHub" : false,
"backgroundColor" : null,
"parentGroup" : "bd9b3a25-c0af-40a9-81f9-18df9364e229",
"removedFromParent" : [ "2942d205-02bd-4c4e-9f9e-66726207c2ff", "457bc237-1366-4113-8600-b5e1d5d60458" ]
}, {
"id" : "6260ed2d-fb34-4635-bb57-86c9640f293c",
"name" : "Cinema",
"description" : "A group for all the cinema enthusiasts",
"imageUrl" : "www.cinema-group.co.uk/logo.jpg",
"backgroundImageUrl" : null,
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"facilityId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"userId" : null
},
"isDefault" : true,
"promote" : false,
"forced" : false,
"hidden" : true,
"personal" : false,
"hideOnHub" : false,
"backgroundColor" : null,
"parentGroup" : null,
"removedFromParent" : null
} ]
Listing Groups in an Organization
A GET
request to /groups/search/findByOrganizationId?id=[organization-id]
will list all of the Groups
in the Organization specified.
Example request
$ curl 'https://api.breezie.com/groups/search/findByOrganizationId?id=48865325-ddb0-4dc5-ac55-d7729794b8ec' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Listing Groups in a Region
A GET
request to /groups/search/findByRegionId?id=[region-id]
will list all of the Groups
in the Region specified.
Example request
$ curl 'https://api.breezie.com/groups/search/findByRegionId?id=9105e5a5-acba-4c00-8f5d-5b8fccd80da0' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Listing Groups in a Campus
A GET
request to /groups/search/findByCampusId?id=[campus-id]
will list all of the Groups
in the Campus specified.
Example request
$ curl 'https://api.breezie.com/groups/search/findByCampusId?id=e9f7a654-7135-4b10-afa3-c3a97319c823' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Listing Groups in a Facility
A GET
request to /groups/search/findByFacilityId?id=[facility-id]
will list all of the Groups
in the Facility specified.
Example request
$ curl 'https://api.breezie.com/groups/search/findByFacilityId?id=7ccae739-0817-46ef-b39c-4c695a6ec835' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Listing Groups for a User
A GET
request to /groups/search/findByUserId?id=[user-id]
will list all of the Groups that
the User specified belongs to.
Example request
$ curl 'https://api.breezie.com/groups/search/findByFacilityId?id=7ccae739-0817-46ef-b39c-4c695a6ec835' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Retrieve a Group
A GET
request to /groups/{id}
will retrieve the Group identified by id
.
Example request
$ curl 'https://api.breezie.com/groups/165f7629-2224-4895-90b9-3c04e0b709e2' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 861
{
"id" : "165f7629-2224-4895-90b9-3c04e0b709e2",
"name" : "Gardening",
"description" : "A group for all the gardening enthusiasts",
"imageUrl" : "www.gardening-group.co.uk/logo.jpg",
"backgroundImageUrl" : "www.gardening-group.co.uk/background.png",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"facilityId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"userId" : null
},
"isDefault" : true,
"promote" : false,
"forced" : false,
"hidden" : true,
"personal" : false,
"hideOnHub" : false,
"backgroundColor" : "#f1f1f1",
"parentGroup" : "8c502c59-43a5-4fc8-a969-9ae650f977af",
"removedFromParent" : [ "a86354c8-7817-44ad-912e-532a9986ae2c", "9ac867ef-56f4-44ec-9ba8-9be4512c706b" ]
}
Creating a group
A POST
request to /groups
will save a new Group and return the created resource.
Example request
$ curl 'https://api.breezie.com/groups' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' \
-d '{
"name" : "New group",
"description" : "Group for testing purposes",
"imageUrl" : "www.test-group.co.uk/logo.jpg",
"backgroundImageUrl" : "www.gardening-group.co.uk/background.png",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"facilityId" : "7ccae739-0817-46ef-b39c-4c695a6ec835"
},
"isDefault" : true,
"promote" : false,
"forced" : false,
"hidden" : true,
"personal" : false,
"hideOnHub" : false,
"backgroundColor" : "#f1f1f1",
"parentGroup" : "14b85bb5-8a94-41f8-bba9-405ed034ff28",
"removedFromParent" : [ "e8af38fe-7336-44e8-9bd6-057970adef19", "ede22a6a-5727-47bf-9e1a-050defda6912" ]
}'
Example response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 763
{
"id" : "953048e2-d8a5-4350-b2a9-800410e40ebd",
"name" : "New group",
"description" : "Group for testing purposes",
"imageUrl" : "www.test-group.co.uk/logo.jpg",
"backgroundImageUrl" : "www.gardening-group.co.uk/background.png",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"facilityId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"userId" : null
},
"isDefault" : true,
"promote" : false,
"forced" : false,
"hidden" : true,
"personal" : false,
"hideOnHub" : false,
"backgroundColor" : "#f1f1f1",
"parentGroup" : "14b85bb5-8a94-41f8-bba9-405ed034ff28",
"removedFromParent" : null
}
Replace a Group
A PUT
request to /groups/{id}
is used to update a Group completely.
Example request
$ curl 'https://api.breezie.com/groups/5e27d153-af64-45a2-8dad-01743ed355f2' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' \
-d '{
"name" : "Garden",
"description" : "A group for all the gardening enthusiasts",
"imageUrl" : "www.gardening-group.co.uk/logo.jpg",
"backgroundImageUrl" : "www.gardening-group.co.uk/background.png",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"facilityId" : "7ccae739-0817-46ef-b39c-4c695a6ec835"
},
"isDefault" : true,
"promote" : false,
"forced" : false,
"hidden" : true,
"personal" : false,
"hideOnHub" : false,
"backgroundColor" : "#f1f1f1",
"parentGroup" : "31aac4dd-fe7c-4a68-a0cc-1ad35269c2dd",
"removedFromParent" : [ "4c36c668-6bfd-490a-9821-ee5771f3e81f", "00026973-e065-48c7-b821-b88ab11f8cc4" ]
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 858
{
"id" : "5e27d153-af64-45a2-8dad-01743ed355f2",
"name" : "Garden",
"description" : "A group for all the gardening enthusiasts",
"imageUrl" : "www.gardening-group.co.uk/logo.jpg",
"backgroundImageUrl" : "www.gardening-group.co.uk/background.png",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"facilityId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"userId" : null
},
"isDefault" : true,
"promote" : false,
"forced" : false,
"hidden" : true,
"personal" : false,
"hideOnHub" : false,
"backgroundColor" : "#f1f1f1",
"parentGroup" : "31aac4dd-fe7c-4a68-a0cc-1ad35269c2dd",
"removedFromParent" : [ "4c36c668-6bfd-490a-9821-ee5771f3e81f", "00026973-e065-48c7-b821-b88ab11f8cc4" ]
}
Update a Group
A PATCH
request to /groups/{id}
is used to update a Group partially.
Example request
$ curl 'https://api.breezie.com/groups/44920258-d5a4-47b4-8681-c1e5f7882c20' -i -X PATCH \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' \
-d '{
"name" : "Summer Gardening",
"description" : "A group for those intersted in summer gardening"
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 874
{
"id" : "44920258-d5a4-47b4-8681-c1e5f7882c20",
"name" : "Summer Gardening",
"description" : "A group for those intersted in summer gardening",
"imageUrl" : "www.gardening-group.co.uk/logo.jpg",
"backgroundImageUrl" : "www.gardening-group.co.uk/background.png",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"facilityId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"userId" : null
},
"isDefault" : true,
"promote" : false,
"forced" : false,
"hidden" : true,
"personal" : false,
"hideOnHub" : false,
"backgroundColor" : "#f1f1f1",
"parentGroup" : "ee0332a9-323e-4c55-ab36-8ecbb45c7fe8",
"removedFromParent" : [ "6c99c7cc-fe4b-4c5f-bdae-2a89c39f2c17", "c470f3f9-38c2-42f0-a4ac-70f930d4e673" ]
}
Delete a Group
A DELETE
request to /groups/{id}
is used to delete a Group.
Example request
$ curl 'https://api.breezie.com/groups/6a671b7a-5804-41eb-81e5-dd7a6a79759f' -i -X DELETE \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Get Users from Group
A GET
request to /groups/{id}/users
will retrieve the list of Users subscribed to the Group.
User Structure
Path | Type | Description |
---|---|---|
|
|
User identifier |
|
|
Username of the user |
|
|
First name of the user |
|
|
Last name of the user |
|
|
Ids of the groups which the user is subscribed |
|
|
Ids of the default groups which the user is un-subscribed |
|
|
Scope object holding the access control for the resource |
|
|
ID of the organization that the user belongs to |
|
|
ID of the region that the user belongs to |
|
|
ID of the facility that the user belongs to |
|
|
ID of the campus that the user belongs to |
|
|
ID of the user |
Example request
$ curl 'https://api.breezie.com/groups/8ea9e17d-f163-4fa3-b192-9ed7ede5fb1c/users' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1104
[ {
"id" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"username" : "nicole.snow@breezie.com",
"firstName" : "Nicole",
"lastName" : "Snow",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"facilityId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a"
},
"groupIds" : [ "8ea9e17d-f163-4fa3-b192-9ed7ede5fb1c" ],
"unsubscribedDefaultGroupIds" : [ ]
}, {
"id" : "6v9105e5-acfccd80ba-8f5d-5b8da0-4c00",
"username" : "david.jones@breezie.com",
"firstName" : "David",
"lastName" : "Jones",
"scope" : {
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"campusId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"facilityId" : "7ccae739-0817-46ef-b39c-4c695a6ec835",
"userId" : "6v9105e5-acfccd80ba-8f5d-5b8da0-4c00"
},
"groupIds" : [ "8ea9e17d-f163-4fa3-b192-9ed7ede5fb1c" ],
"unsubscribedDefaultGroupIds" : [ ]
} ]
Add Users to a Group
A PUT
request to /groups/{id}/users
will add a set of users Users to the specified group. The body has
to contain the list of User ID (line separator).
Example request
$ curl 'https://api.breezie.com/groups/909a5fc4-08b5-42af-afaf-415903fe2338/users' -i -X PUT \
-H 'Content-Type: text/uri-list' \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' \
-d '4809459f-3d27-46fd-8a59-b6b8204d2838
dft54er4-8709-9iyt-ht5r67ytg4df'
Example response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Remove a User from a Group
A DELETE
request to /groups/{id}/users/{userId}
will remove the specified user from the specified Group.
Example request
$ curl 'https://api.breezie.com/groups/aae19c64-4446-41f4-8fb4-3993f1d23a4c/users/6v9105e5-acfccd80ba-8f5d-5b8da0-4c00' -i -X DELETE \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Templates
A Template is a representation of a collection of groups. Templates could be used by admin users to organize groups and facilitate subscriptions to a set of groups.
Templates don’t have representation in the context of a Breezie tablet device.
Structure
Path | Type | Description |
---|---|---|
|
|
Group Template identifier |
|
|
Name of the template |
|
|
Description of the template |
|
|
List of group IDs that belong to the template |
|
|
ID of the organization that the template belongs to |
|
|
ID of the region that the template belongs to |
|
|
ID of the campus that the template belongs to |
|
|
ID of the facility that the template belongs to |
|
|
Not used on this resource. Templates can’t belong to a user |
Templates API
Listing Templates
A GET
request to /group-templates
will list all Templates accessible by the User who make the request.
Example request
$ curl 'https://api.breezie.com/group-templates' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 921
[ {
"id" : "ccdc9854-0fc5-4419-b0da-6070fd8ca58f",
"name" : "Initial Breezie Content",
"description" : "Basic initial content for a standard device configuration",
"groups" : [ "c307a326-6c63-43d0-a422-11f02beef27a", "54557abb-f72e-45e7-9733-2e6ed336d1d3", "0c3cd993-7eb2-4fb5-92fa-05ca87d068ec" ],
"scope" : {
"organizationId" : null,
"regionId" : null,
"campusId" : null,
"facilityId" : null,
"userId" : null
}
}, {
"id" : "67be72af-131d-4e06-b04d-643d6df6cc8d",
"name" : "Engagement module groups",
"description" : "Groups for all standard users in 'organization A'",
"groups" : [ "f385adce-6a56-4c0f-a7c6-ec984b7c325d", "777dd533-3b5a-4613-bd98-77634738f559", "905aac80-06b8-47ea-a6f8-83af2d473fa1" ],
"scope" : {
"organizationId" : "9f45ebba-546d-49c7-bcbc-aa19b68a3d3f",
"regionId" : null,
"campusId" : null,
"facilityId" : null,
"userId" : null
}
} ]
Creating a template
A POST
request to /group-templates
will save a new Template and return the created resource.
Example request
$ curl 'https://api.breezie.com/group-templates/' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' \
-d '{
"id" : null,
"name" : "Entertainment",
"description" : "All groups that contains entertainment contents: books, audio, video, games...",
"groups" : [ "2613739c-9a12-413d-861f-50a4849c54fd", "e8b9b76a-0a18-4096-984e-294e4bf2c70f", "c6461464-e4c9-4ec9-a7b6-1aeaf7e323ff", "f38bb950-1c6a-4d3a-a9ae-409325e7b066" ],
"scope" : {
"organizationId" : "18c70b9e-2012-4279-a7ba-fff523d95a12",
"regionId" : null,
"campusId" : null,
"facilityId" : null,
"userId" : null
}
}'
Example response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 529
{
"id" : "d5f2d56d-14c0-4cd9-8bc5-77d484ae484d",
"name" : "Entertainment",
"description" : "All groups that contains entertainment contents: books, audio, video, games...",
"groups" : [ "2613739c-9a12-413d-861f-50a4849c54fd", "e8b9b76a-0a18-4096-984e-294e4bf2c70f", "c6461464-e4c9-4ec9-a7b6-1aeaf7e323ff", "f38bb950-1c6a-4d3a-a9ae-409325e7b066" ],
"scope" : {
"organizationId" : "18c70b9e-2012-4279-a7ba-fff523d95a12",
"regionId" : null,
"campusId" : null,
"facilityId" : null,
"userId" : null
}
}
Retrieve a Template
A GET
request to /group-templates/{id}
will retrieve the Template identified by id
.
Example request
$ curl 'https://api.breezie.com/group-templates/de30a586-d89b-4baf-84d6-1503356b51cd' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 444
{
"id" : "de30a586-d89b-4baf-84d6-1503356b51cd",
"name" : "Initial Breezie Content",
"description" : "Basic initial content for a standard device configuration",
"groups" : [ "3ced4849-47c0-400e-9d91-d2c2d6a04cb9", "211b442e-de7a-4a2e-a87a-8ce79a1ac8df", "65272efa-d9d0-40b3-94bd-617462da60ec" ],
"scope" : {
"organizationId" : null,
"regionId" : null,
"campusId" : null,
"facilityId" : null,
"userId" : null
}
}
Replace a Template
A PUT
request to /group-templates/{id}
is used to update a Template completely.
Example request
$ curl 'https://api.breezie.com/group-templates/893dfe91-6c55-4407-9770-e9963bb5d008' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' \
-d '{
"id" : null,
"name" : "Engagenment Template",
"description" : "Groups for all standard users in 'organization 1'",
"groups" : [ "a2cd6309-4240-4819-8c65-f819c189d566", "89f88c9a-c834-440e-a794-95d8654035e5", "9cc5f314-aa5f-4115-be1f-cc5aeb268bb8", "41005325-04d1-4df3-9291-2619e3d2ac69" ],
"scope" : {
"organizationId" : "9f45ebba-546d-49c7-bcbc-aa19b68a3d3f",
"regionId" : null,
"campusId" : null,
"facilityId" : null,
"userId" : null
}
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 507
{
"id" : "893dfe91-6c55-4407-9770-e9963bb5d008",
"name" : "Engagenment Template",
"description" : "Groups for all standard users in 'organization 1'",
"groups" : [ "a2cd6309-4240-4819-8c65-f819c189d566", "89f88c9a-c834-440e-a794-95d8654035e5", "9cc5f314-aa5f-4115-be1f-cc5aeb268bb8", "41005325-04d1-4df3-9291-2619e3d2ac69" ],
"scope" : {
"organizationId" : "9f45ebba-546d-49c7-bcbc-aa19b68a3d3f",
"regionId" : null,
"campusId" : null,
"facilityId" : null,
"userId" : null
}
}
Delete a Template
A DELETE
request to /group-templates/{id}
is used to delete a Template.
Example request
$ curl 'https://api.breezie.com/group-templates/e98febaa-b901-41de-a8dd-f1fa3ba80b26' -i -X DELETE \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Applications
The Applications API is used to create and list 'Applications'. An Application an Android Play Store application which is represented with a title, description, image and a package name. An Application is always assigned to a Group.
In the context of the Breezie tablet device, Applications appear on the StartScreen and within the Interests application.
Structure
Path | Type | Description |
---|---|---|
|
|
Application identifier |
|
|
Title of the application |
|
|
Description of the application |
|
|
Image for the icon of the application |
|
|
Small image for the icon of the application (128 * 128) |
|
|
Color to show as background for the icon |
|
|
Package Name of the application |
|
|
ID of the group in which this application belongs |
|
|
ID of the group in which this application will be shown |
|
|
ID of the group this application belongs to |
|
|
Whether this application should be forced on StartScreen |
|
|
Whether this application should be promoted on StartScreen |
|
|
Whether this application should be hidden in Interests |
|
|
Whether to block this application being uninstalled |
|
|
Whether to block this application from showing notifications |
|
|
Semantic tags associated to the application |
Applications API
Listing Applications by Group
A GET
request to /applications/search/findByGroupId?id=[group-id]
will list all of the Applications
in the Group specified.
Example request
$ curl 'https://api.breezie.com/applications/search/findByGroupId?id=373c312f-3d8d-4ce2-b5bf-7768f304a78d' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1197
[ {
"id" : "20f506ed-8d31-4fcd-bc10-59456c437577",
"title" : "Winter Gardening",
"description" : "Helpful app, informing you when best to water those flowers when it gets cold",
"productId" : "co.uk.demo.gardening",
"iconUrl" : "https://www.gardening.com/image",
"smallIconUrl" : "https://www.gardening.com/image/small",
"groupId" : "373c312f-3d8d-4ce2-b5bf-7768f304a78d",
"forced" : false,
"promote" : false,
"hidden" : false,
"blockUninstall" : false,
"blockNotification" : false,
"tags" : [ "garden" ],
"showInGroup" : null,
"originalGroup" : null,
"backgroundColor" : null
}, {
"id" : "f10b5bd6-1504-4399-9d71-3b37655d4bbb",
"title" : "Gardening",
"description" : "Helpful app, informing you when best to water those flowers",
"productId" : "co.uk.demo.gardening",
"iconUrl" : "https://www.gardening.com/image",
"smallIconUrl" : "https://www.gardening.com/image/small",
"groupId" : "373c312f-3d8d-4ce2-b5bf-7768f304a78d",
"forced" : false,
"promote" : false,
"hidden" : false,
"blockUninstall" : false,
"blockNotification" : false,
"tags" : [ "garden" ],
"showInGroup" : null,
"originalGroup" : null,
"backgroundColor" : null
} ]
Listing Applications by User
A GET
request to /applications/search/findByUserId?id=[user-id]
will list all of the Applications that a
particular User has.
Example request
$ curl 'https://api.breezie.com/applications/search/findByGroupId?id=373c312f-3d8d-4ce2-b5bf-7768f304a78d' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Retrieve an Application
A GET
request to /applications/{id}
will retrieve the Application identified by id
.
Example request
$ curl 'https://api.breezie.com/applications/9bc9808e-62ac-4f83-95d2-b2f69239d581' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 583
{
"id" : "9bc9808e-62ac-4f83-95d2-b2f69239d581",
"title" : "Gardening",
"description" : "Helpful app, informing you when best to water those flowers",
"productId" : "co.uk.demo.gardening",
"iconUrl" : "https://www.gardening.com/image",
"smallIconUrl" : "https://www.gardening.com/image/small",
"groupId" : "5e5376c0-9634-4317-a702-284167109aae",
"forced" : false,
"promote" : false,
"hidden" : false,
"blockUninstall" : false,
"blockNotification" : false,
"tags" : [ "garden" ],
"showInGroup" : null,
"originalGroup" : null,
"backgroundColor" : null
}
Creating an Application
A POST
request to /applications/{id}
will save a new Application and return the created resource.
Example request
$ curl 'https://api.breezie.com/applications' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' \
-d '{
"title" : "Gardening",
"description" : "Helpful app, informing you when best to water those flowers",
"productId" : "co.uk.demo.gardening",
"iconUrl" : "https://www.gardening.com/image",
"smallIconUrl" : "https://www.gardening.com/image/small",
"groupId" : "82d81b33-8ae9-4ed2-a50b-3ec4c715fdf8",
"forced" : false,
"promote" : false,
"hidden" : false,
"blockUninstall" : false,
"blockNotification" : false,
"tags" : [ "garden" ]
}'
Example response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 583
{
"id" : "7948965c-e706-4ee7-a9f5-26043d136852",
"title" : "Gardening",
"description" : "Helpful app, informing you when best to water those flowers",
"productId" : "co.uk.demo.gardening",
"iconUrl" : "https://www.gardening.com/image",
"smallIconUrl" : "https://www.gardening.com/image/small",
"groupId" : "82d81b33-8ae9-4ed2-a50b-3ec4c715fdf8",
"forced" : false,
"promote" : false,
"hidden" : false,
"blockUninstall" : false,
"blockNotification" : false,
"tags" : [ "garden" ],
"showInGroup" : null,
"originalGroup" : null,
"backgroundColor" : null
}
Replace an Application
A PUT
request to /applications/{id}
is used to update an Application completely.
Example request
$ curl 'https://api.breezie.com/applications/9016b8b4-b2e3-4f6d-86dc-776c051466d5' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' \
-d '{
"title" : "Gardening",
"description" : "Helpful app, informing you when best to water those flowers",
"productId" : "co.uk.demo.gardening",
"iconUrl" : "https://www.gardening.com/image",
"smallIconUrl" : "https://www.gardening.com/image/small",
"groupId" : "5019dfa6-5a70-4190-ad9d-ae8165442c48",
"forced" : false,
"promote" : false,
"hidden" : false,
"blockUninstall" : false,
"blockNotification" : false,
"tags" : [ "garden" ]
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 583
{
"id" : "9016b8b4-b2e3-4f6d-86dc-776c051466d5",
"title" : "Gardening",
"description" : "Helpful app, informing you when best to water those flowers",
"productId" : "co.uk.demo.gardening",
"iconUrl" : "https://www.gardening.com/image",
"smallIconUrl" : "https://www.gardening.com/image/small",
"groupId" : "5019dfa6-5a70-4190-ad9d-ae8165442c48",
"forced" : false,
"promote" : false,
"hidden" : false,
"blockUninstall" : false,
"blockNotification" : false,
"tags" : [ "garden" ],
"showInGroup" : null,
"originalGroup" : null,
"backgroundColor" : null
}
Update an Application
A PATCH
request to /applications/{id}
is used to update an Application partially.
Example request
$ curl 'https://api.breezie.com/applications/0ca650d9-d738-478c-a0ec-5220b084561c' -i -X PATCH \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' \
-d '{
"title" : "Summer Gardening",
"description" : "Helpful app, informing you when best to water those flowers"
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 590
{
"id" : "0ca650d9-d738-478c-a0ec-5220b084561c",
"title" : "Summer Gardening",
"description" : "Helpful app, informing you when best to water those flowers",
"productId" : "co.uk.demo.gardening",
"iconUrl" : "https://www.gardening.com/image",
"smallIconUrl" : "https://www.gardening.com/image/small",
"groupId" : "75f32bf8-a594-47a0-bbfa-b3d28902a5aa",
"forced" : false,
"promote" : false,
"hidden" : false,
"blockUninstall" : false,
"blockNotification" : false,
"tags" : [ "garden" ],
"showInGroup" : null,
"originalGroup" : null,
"backgroundColor" : null
}
Delete an Application
A DELETE
request to /applications/{id}
is used to update an Application.
Example request
$ curl 'https://api.breezie.com/applications/beaf6840-c030-4af2-84fe-f9d47ca6dac3' -i -X DELETE \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Bookmarks
The Bookmarks API is used to create and list 'Bookmarks'. A Bookmark is a hyperlink to a resource or a web page and is represented with a name, URL, image and a description. A Bookmark is always assigned to a Group.
In the context of the Breezie tablet device, Bookmarks appear on the StartScreen and within the Interests application. They act as shortcuts to links on the web and are grouped within Categories in the interests by their category.
Structure
Path | Type | Description |
---|---|---|
|
|
Bookmark identifier |
|
|
Bookmark url |
|
|
Name of the bookmark |
|
|
Image url of the bookmark |
|
|
Color to show as background for the image icon |
|
|
A descriptive note related to the bookmark |
|
|
ID of the group in which this bookmark belongs to. It will be overwritten if 'showInGroup' is present§ |
|
|
ID of the group in which this bookmark will be shown |
|
|
ID of the group in which this bookmark belongs to |
|
|
Whether this bookmark should be forced on StartScreen |
|
|
Whether this bookmark should be promoted on StartScreen |
|
|
Whether this bookmark should be hidden in Interests |
|
|
Whether this bookmark should first authenticate with the Breezie system before loading |
|
|
Semantic tags associated to the bookmarks. Several usages can be applied |
Bookmarks API
Listing Bookmarks by Group
A GET
request to /bookmarks/search/findByGroupId?id=[group-id]
will list all of the bookmarks in the Group specified.
Example request
$ curl 'https://api.breezie.com/bookmarks/search/findByGroupId?id=8cf0cbaf-9fd6-47b0-ac36-63d049b8e817' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 943
[ {
"id" : "20f506ed-8d31-4fcd-bc10-59456c437577",
"url" : "www.wintergardening.com",
"name" : "Winter Gardening",
"imageUrl" : "www.gardening.com/image.jpg",
"note" : "This is a bookmark about gardening",
"groupId" : "8cf0cbaf-9fd6-47b0-ac36-63d049b8e817",
"tags" : [ "garden" ],
"forced" : false,
"promote" : false,
"hidden" : false,
"breezieAuthenticationRequired" : false,
"showInGroup" : null,
"originalGroup" : null,
"backgroundColor" : null
}, {
"id" : "50ca96e0-fae0-476c-a5aa-3aa2a3676d8d",
"url" : "www.gardening.com",
"name" : "Gardening",
"imageUrl" : "www.gardening.com/image.jpg",
"note" : "This is a bookmark about gardening",
"groupId" : "8cf0cbaf-9fd6-47b0-ac36-63d049b8e817",
"tags" : [ "garden" ],
"forced" : false,
"promote" : false,
"hidden" : false,
"breezieAuthenticationRequired" : false,
"showInGroup" : null,
"originalGroup" : null,
"backgroundColor" : null
} ]
Listing Bookmarks by User
A GET
request to /bookmarks/search/findByUserId?id=[user-id]
will list all of the Bookmarks for the User specified.
Example request
$ curl 'https://api.breezie.com/bookmarks/search/findByUserId?id=17d19fc4-31d6-43ef-8d4c-04405540656e' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Retrieve a Bookmark
A GET
request to /bookmarks/{id}
will retrieve the Bookmark identified by id
.
Example request
$ curl 'https://api.breezie.com/bookmarks/d1c8abb1-b2fc-49a3-b697-c9a673e81f22' -i -X GET \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 462
{
"id" : "d1c8abb1-b2fc-49a3-b697-c9a673e81f22",
"url" : "www.gardening.com",
"name" : "Gardening",
"imageUrl" : "www.gardening.com/image.jpg",
"note" : "This is a bookmark about gardening",
"groupId" : "dfd31f0f-8cf6-4509-a5a3-578ebb32dd6b",
"tags" : [ "garden" ],
"forced" : false,
"promote" : false,
"hidden" : false,
"breezieAuthenticationRequired" : false,
"showInGroup" : null,
"originalGroup" : null,
"backgroundColor" : null
}
Creating a Bookmark
A POST
request to /bookmarks
will save a new Bookmark and return the created resource.
Example request
$ curl 'https://api.breezie.com/bookmarks' -i -X POST \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' \
-d '{
"url" : "www.gardening.com",
"name" : "Gardening",
"imageUrl" : "www.gardening.com/image.jpg",
"note" : "This is a bookmark about gardening",
"groupId" : "1f08bcac-b6fe-4112-9ed3-9cc48b20bb79",
"forced" : false,
"promote" : false,
"hidden" : false,
"breezieAuthenticationRequired" : false,
"tags" : [ "garden" ]
}'
Example response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 462
{
"id" : "79df5cb1-2f81-46cb-a1aa-8649fb817bba",
"url" : "www.gardening.com",
"name" : "Gardening",
"imageUrl" : "www.gardening.com/image.jpg",
"note" : "This is a bookmark about gardening",
"groupId" : "1f08bcac-b6fe-4112-9ed3-9cc48b20bb79",
"tags" : [ "garden" ],
"forced" : false,
"promote" : false,
"hidden" : false,
"breezieAuthenticationRequired" : false,
"showInGroup" : null,
"originalGroup" : null,
"backgroundColor" : null
}
Replace a bookmark
A PUT
request to /bookmarks/{id}
is used to update a Bookmark completely.
Example request
$ curl 'https://api.breezie.com/bookmarks/6b6918b5-be2d-44d5-96c6-67682e737ae2' -i -X PUT \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' \
-d '{
"url" : "www.gardening.com",
"name" : "Summer Gardering",
"imageUrl" : "www.gardening.com/image.jpg",
"note" : "This is a bookmark about gardening",
"groupId" : "2145943a-b563-4e61-93b4-5840e6da95af",
"forced" : false,
"promote" : false,
"hidden" : false,
"breezieAuthenticationRequired" : false,
"tags" : [ "garden" ]
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 469
{
"id" : "6b6918b5-be2d-44d5-96c6-67682e737ae2",
"url" : "www.gardening.com",
"name" : "Summer Gardering",
"imageUrl" : "www.gardening.com/image.jpg",
"note" : "This is a bookmark about gardening",
"groupId" : "2145943a-b563-4e61-93b4-5840e6da95af",
"tags" : [ "garden" ],
"forced" : false,
"promote" : false,
"hidden" : false,
"breezieAuthenticationRequired" : false,
"showInGroup" : null,
"originalGroup" : null,
"backgroundColor" : null
}
Update a Bookmark
A PATCH
request to /bookmarks/{id}
is used to update a Bookmark partially.
Example request
$ curl 'https://api.breezie.com/bookmarks/cb6b9fbe-c29d-4fc2-a1a2-854517cce288' -i -X PATCH \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' \
-d '{
"url" : "www.gardening.com/summer",
"name" : "Summer Gardening"
}'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 476
{
"id" : "cb6b9fbe-c29d-4fc2-a1a2-854517cce288",
"url" : "www.gardening.com/summer",
"name" : "Summer Gardening",
"imageUrl" : "www.gardening.com/image.jpg",
"note" : "This is a bookmark about gardening",
"groupId" : "30a6d39f-248c-4e79-aad5-727e7852a77d",
"tags" : [ "garden" ],
"forced" : false,
"promote" : false,
"hidden" : false,
"breezieAuthenticationRequired" : false,
"showInGroup" : null,
"originalGroup" : null,
"backgroundColor" : null
}
Delete a Bookmark
A DELETE
request to /bookmarks/{id}
is used to delete a Bookmark.
Example request
$ curl 'https://api.breezie.com/bookmarks/c816de93-8226-4fbc-b970-869570e645bf' -i -X DELETE \
-H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Device
A device
represents a Breezie tablet. A device
belongs to a User, so the accessibility is defined
by the User who owns the Device. The resources have a set of configurations (settings
) that can alter how they
behave.
StartScreen
is a sub-resource of device
that represents the configuration of the initial screen on the
Device. This resource is used to manage the apps, bookmarks, categories… that the Device will show on its screen.
Structure
Path | Type | Description |
---|---|---|
|
|
Device identifier |
|
|
Device serial number |
|
|
Device brand |
|
|
Device model |
|
|
Firebase Cloud Messaging token. Used to communicate with the device |
|
|
Android identifier of the device |
|
|
ID of the user owning the device |
|
|
Flag indicating if the device is enabled or not |
|
|
Scope object holding the access control for the resource |
|
|
ID of the user’s organization owning the device |
|
|
ID of the user’s region owning the device |
|
|
ID of the user’s facility owning the device |
|
|
ID of the user’s campus owning the device |
|
|
ID of the user owning the device |
Devices API
Listing devices
A GET
request to /devices
will list all Devices accessible by the User who made the request.
Example request
$ curl 'https://api.breezie.com/devices' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 1248
[ {
"id" : "0f5881c5-4b45-437c-8ddd-47a147af1dfd",
"serialNumber" : "R52G5ABX16XV",
"androidId" : "3e4d311d6223dge4",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"model" : "SM-T550",
"manufacturer" : "samsung",
"fcmToken" : "asdfgh-234r5-afsdg-argq-t6-adst-5srgsdfh-hhye",
"enabled" : true,
"scope" : {
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835"
}
}, {
"id" : "7af18528-086e-44e5-be81-f1ada1caeefb",
"serialNumber" : "R52K706QYTPZ",
"androidId" : "35121d98a70f4140",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"model" : "SM-T813",
"manufacturer" : "samsung",
"fcmToken" : "asdfgh-234r5-afsdg-argq-t6-adst-5srgsdfh-hhye",
"enabled" : true,
"scope" : {
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835"
}
} ]
Listing Devices by Organization
A GET
request to /devices/search/findByOrganizationId?id=[organization-id]
will list all the Devices belonging
to the Organization chosen in the request.
Example request
$ curl 'https://api.breezie.com/devices/search/findByOrganizationId?id=48865325-ddb0-4dc5-ac55-d7729794b8ec' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Listing Devices by Region
A GET
request to /devices/search/findByRegionId?id=[region-id]
will list all the Devices belonging
to the Region chosen in the request.
Example request
$ curl 'https://api.breezie.com/devices/search/findByRegionId?id=e9f7a654-7135-4b10-afa3-c3a97319c823' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Listing devices by Campus
A GET
request to /devices/search/findByCampusId?id=[campus-id]
will list all the Devices belonging
to the Campus chosen in the request.
Example request
$ curl 'https://api.breezie.com/devices/search/findByCampusId?id=7ccae739-0817-46ef-b39c-4c695a6ec835' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Listing Devices by Facility
A GET
request to /devices/search/findByFacilityId?id=[facility-id]
will list all the Devices belonging
to the Facility chosen in the request.
Example request
$ curl 'https://api.breezie.com/devices/search/findByFacilityId?id=9105e5a5-acba-4c00-8f5d-5b8fccd80da0' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Retrieve a Device
A GET
request to /devices/{id}
will retrieve the Device identified by id
.
Example request
$ curl 'https://api.breezie.com/devices/e304893e-228e-4b50-9957-798765f047f0' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 621
{
"id" : "e304893e-228e-4b50-9957-798765f047f0",
"serialNumber" : "R52K706QYTPZ",
"androidId" : "35121d98a70f4140",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"model" : "SM-T813",
"manufacturer" : "samsung",
"fcmToken" : "asdfgh-234r5-afsdg-argq-t6-adst-5srgsdfh-hhye",
"enabled" : true,
"scope" : {
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835"
}
}
Retrieve Device by Serial Number
A GET
request to /devices/search/findBySerialNumber?id=[serial-number]
will show the Device with the Serial Number chosen in the request.
Example request
$ curl 'https://api.breezie.com/devices/search/findBySerialNumber?id=R52K706QYTPZ' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Retrieve device by Android ID
A GET
request to /devices/search/findByAndroidId?id=[android-id]
will show the Device with the Android ID chosen in the request.
Example request
$ curl 'https://api.breezie.com/devices/search/findByAndroidId?id=35121d98a70f4140' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Create a Device
A POST
request to /devices
will save a new Device and return the created representation.
Example request
$ curl 'https://api.breezie.com/devices' -i -X POST -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json' -d '{
"serialNumber" : "R52G5ABX32BB",
"androidId" : "3e4dhgf5s223hggt",
"userId" : "dft54er4-8709-9iyt-ht5r67ytg4df",
"model" : "SM-T550",
"manufacturer" : "samsung",
"fcmToken" : "asdfgh-234r5-afsdg-argq-t6-adst-5srgsdfh-hhye",
"enabled" : true,
"scope" : {
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "dft54er4-8709-9iyt-ht5r67ytg4df",
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835"
}
}'
Example response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 611
{
"id" : "91ffd237-b1d2-4cce-98b8-3adfab7a32c6",
"serialNumber" : "R52G5ABX32BB",
"androidId" : "3e4dhgf5s223hggt",
"userId" : "dft54er4-8709-9iyt-ht5r67ytg4df",
"model" : "SM-T550",
"manufacturer" : "samsung",
"fcmToken" : "asdfgh-234r5-afsdg-argq-t6-adst-5srgsdfh-hhye",
"enabled" : true,
"scope" : {
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "dft54er4-8709-9iyt-ht5r67ytg4df",
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835"
}
}
Replace a Device
A PUT
request to /devices/{id}
will update the Device identified by id
completely.
Example request
$ curl 'https://api.breezie.com/devices/fc9baa8d-d1c6-41e7-ba80-142448e87ee8' -i -X PUT -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json' -d '{
"serialNumber" : "R52K706QYTPZ",
"androidId" : "35121d98a70f4140",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"model" : "SM-T813",
"manufacturer" : "samsung",
"fcmToken" : "asdfgh-234r5-afsdg-argq-t6-adst-5srgsdfh-hhye",
"enabled" : false,
"scope" : {
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835"
}
}'
Example response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 622
{
"id" : "fc9baa8d-d1c6-41e7-ba80-142448e87ee8",
"serialNumber" : "R52K706QYTPZ",
"androidId" : "35121d98a70f4140",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"model" : "SM-T813",
"manufacturer" : "samsung",
"fcmToken" : "asdfgh-234r5-afsdg-argq-t6-adst-5srgsdfh-hhye",
"enabled" : false,
"scope" : {
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835"
}
}
Update a Device
A PATCH
request to /devices/{id}
will update the Device identified by id
partially.
Example request
$ curl 'https://api.breezie.com/devices/6d07b2a5-53f8-4970-bc63-448540c69314' -i -X PATCH -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json' -d '{
"serialNumber" : null,
"androidId" : null,
"userId" : null,
"model" : null,
"manufacturer" : null,
"fcmToken" : null,
"enabled" : false,
"scope" : null
}'
Example response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 622
{
"id" : "6d07b2a5-53f8-4970-bc63-448540c69314",
"serialNumber" : "R52K706QYTPZ",
"androidId" : "35121d98a70f4140",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"model" : "SM-T813",
"manufacturer" : "samsung",
"fcmToken" : "asdfgh-234r5-afsdg-argq-t6-adst-5srgsdfh-hhye",
"enabled" : false,
"scope" : {
"facilityId" : "9105e5a5-acba-4c00-8f5d-5b8fccd80da0",
"userId" : "18310721-2da3-4bdf-83df-1e49d308c38a",
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : "e9f7a654-7135-4b10-afa3-c3a97319c823",
"campusId" : "7ccae739-0817-46ef-b39c-4c695a6ec835"
}
}
Delete a Device
A DELETE
request to /devices/{id}
will delete the Device identified by id
.
Example request
$ curl 'https://api.breezie.com/devices/db9618b9-03a8-4653-a739-02f352fa5bfa' -i -X DELETE -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 204 No Content
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Settings
Settings
represents a set of properties that define the Device behaviour.
The set of properties that can be set on a device is defined in a schema that can be found on
https://api.breezie.com/devices/schema.json . This json document describes all the properties available and their restrictions.
|
Settings can be defined at different levels: breezie level, organization level
and user level. Properties defined at Breezie level can be overwritten at Organization and User level and properties
set at Organization level can be overwritten at User level.
|
The Settings applied to a Device is the combination of Breezie Settings, Organizations Settings
and User Settings. In case the same property is defined at different levels, User level
has the highest priority and Breezie level the lowest.
|
Retrieve Settings for a Device
A GET
request to /devices/{id}/settings
will list all of the the Settings applied to a particular Device. These Settings are a combination of
Breezie Settings, Organization Settings and User Settings. In case the same property is defined at different levels, User level
has the highest priority and Breezie level the lowest.
Example request
$ curl 'https://api.breezie.com/devices/9a67fb73-f44c-4ac7-a7e2-186bf6569711/settings' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'version: 1.0'
Example response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 679
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"allowBreezieAppRemoval" : false,
"allowDeviceAdminRemoval" : true,
"usbDebugging" : false,
"allowFactoryReset" : false,
"disableApps" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"manualTime" : {
"timeZoneId" : "Europe/London",
"timeFormat" : "YYYY-MM-DD"
},
"region" : "UK",
"volume" : 50,
"allowAppsUninstall" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"screenBrightness" : 7,
"allowMicrophone" : true,
"enableCamera" : true,
"screenTimeout" : 60,
"deviceId" : "9a67fb73-f44c-4ac7-a7e2-186bf6569711",
"version" : "1.0"
}
Replace Device Settings
A PUT
request to /devices/{id}/settings
is used to save the Device Settings. This information cannot be requested from
the API and it is stored to have the knowledge of the status of the Device.
====== Example request
$ curl 'https://api.breezie.com/devices/9a67fb73-f44c-4ac7-a7e2-186bf6569711/settings' -i -X PUT -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'version: 1.0' -H 'Content-Type: application/json' -d '{
"allowMicrophone" : true,
"enableCamera" : true,
"screenTimeout" : 60,
"volume" : 50,
"screenBrightness" : 7,
"usbDebugging" : false,
"allowFactoryReset" : false,
"allowDeviceAdminRemoval" : true,
"allowBreezieAppRemoval" : false,
"allowAppsUninstall" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"disableApps" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"manualTime" : {
"timeZoneId" : "Europe/London",
"timeFormat" : "YYYY-MM-DD"
}
}'
Example response
HTTP/1.1 201 Created
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 660
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"allowMicrophone" : true,
"enableCamera" : true,
"screenTimeout" : 60,
"volume" : 50,
"screenBrightness" : 7,
"usbDebugging" : false,
"allowFactoryReset" : false,
"allowDeviceAdminRemoval" : true,
"allowBreezieAppRemoval" : false,
"allowAppsUninstall" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"disableApps" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"manualTime" : {
"timeZoneId" : "Europe/London",
"timeFormat" : "YYYY-MM-DD"
},
"deviceId" : "9a67fb73-f44c-4ac7-a7e2-186bf6569711",
"version" : "1.0"
}
Start Screen
The Start Screen resource is composed of two attributes: the maximum number of items that can be displayed
on the Device’s screen and a sorted list of items which are candidates to show on the screen. This list of items is
composed of the items forced
by an admin to be on the Start Screen, the items manually settled
on the
screen, the items promoted
by admins and finally the rest of items candidates to be on the screen.
It is a Device job to calculate the items to show in the screen from the information provided in this endpoint.
Retrieve StartScreen
A GET
request to /devices/{id}/startscreen
will return the Start Screen configuration of the
Device identified by id
.
Structure
Path | Type | Description |
---|---|---|
|
|
Maximum number of items to be shown on the device’s screen |
|
|
Sorted list of items candidates to be shown on the device’s screen |
|
|
Item title |
|
|
Item image url |
|
|
Type of the item: APP, BOOKARK, GROUP or EXCEPTIONAL |
|
|
Item action to realize when item is clicked on the device |
|
|
Flag that indicates if the item is forced or not |
|
|
Flag that indicates if the item has been manually settled or not |
|
|
Flag that indicates if the item has been promoted or not |
|
|
Flag that indicates if the item has been manually ignored or not |
|
|
Flag that indicates if the item is hidden on the device or not |
|
|
Item scope |
|
|
Organization id which item belogs to |
|
|
Region id which item belogs to |
|
|
Campus id which item belogs to |
|
|
Facility id which item belogs to |
|
|
User id which item belogs to |
Example request
$ curl 'https://api.breezie.com/devices/b6429b93-0f3e-4079-9db2-385560fa61dd/startscreen' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42'
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 2773
{
"numberOfItems" : 4,
"items" : [ {
"title" : "Interests",
"imageUrl" : "https://lh3.googleusercontent.com/LJYTR7O6FhgmgKz8DWjdwOrjSwotEjj1cRzRXiwe-ku-iD-jvvYKAkFpoRXz40VthHg=w300",
"type" : "EXCEPTIONAL",
"action" : "interests",
"forced" : true,
"settled" : false,
"promoted" : true,
"ignored" : false,
"hidden" : false,
"scope" : null
}, {
"title" : "Address Book",
"imageUrl" : "https://lh3.googleusercontent.com/ymxsToS_hwIz4I8erEK1L6EYB3weXve9mai5ozqOEKI_1TB01COmv3NGwUwP_DihXwk-",
"type" : "APP",
"action" : "app:com.breezie.apps.addressbook",
"forced" : true,
"settled" : false,
"promoted" : true,
"ignored" : false,
"hidden" : false,
"scope" : {
"facilityId" : null,
"userId" : null,
"organizationId" : null,
"regionId" : null,
"campusId" : null
}
}, {
"title" : "Angry Birds",
"imageUrl" : "https://lh3.googleusercontent.com/iOi6YJxQwMenT5UQWGPWTrFMQFm68IC4uKlFtARveZzVD5lTZ7fC47_rnnF7Tk48DpY",
"type" : "APP",
"action" : "app:com.rovio.candyCrush",
"forced" : false,
"settled" : true,
"promoted" : true,
"ignored" : false,
"hidden" : false,
"scope" : {
"facilityId" : null,
"userId" : null,
"organizationId" : null,
"regionId" : null,
"campusId" : null
}
}, {
"title" : "My Choices",
"imageUrl" : null,
"type" : "GROUP",
"action" : "4f4a99e1-c0d8-4510-ac7f-d30322749534",
"forced" : false,
"settled" : true,
"promoted" : false,
"ignored" : false,
"hidden" : false,
"scope" : {
"facilityId" : null,
"userId" : null,
"organizationId" : null,
"regionId" : null,
"campusId" : null
}
}, {
"title" : "Candy Crash Saga",
"imageUrl" : "https://lh5.ggpht.com/81M05pEyFiOqKt8CashUoz66iJAhL-3PHHbAil108QkU9sKeVZBuZaNJiV7b0gZ2GFU",
"type" : "APP",
"action" : "app:com.king.candycrushsaga",
"forced" : false,
"settled" : false,
"promoted" : true,
"ignored" : false,
"hidden" : false,
"scope" : {
"facilityId" : null,
"userId" : null,
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : null,
"campusId" : null
}
}, {
"title" : "Google Photos",
"imageUrl" : "https://lh5.ggpht.com/tq3WqEUxtRyBn-d_0t3j6WKNHuJDrmLq-FE3GAYrsAMQFIaS7FIgRLfzzql2SvfvLqto",
"type" : "APP",
"action" : "app:com.google.android.apps.photos",
"forced" : false,
"settled" : false,
"promoted" : false,
"ignored" : false,
"hidden" : false,
"scope" : {
"facilityId" : null,
"userId" : null,
"organizationId" : null,
"regionId" : null,
"campusId" : null
}
} ]
}
Replace StartScreen
A PUT
request to /devices/{id}/startscreen
will update the Start Screen configuration of the
Device identified by id
.
Structure
Path | Type | Description |
---|---|---|
|
|
Maximum number of items to be shown on the device’s screen |
|
|
List of items manually selected to be on the start screen |
|
|
Item title |
|
|
Item image url |
|
|
Type of the item: APP, BOOKARK, GROUP or EXCEPTIONAL |
|
|
Item action to realize when item is clicked on the device |
|
|
List of items manually selected to not be shown on the start screen |
|
|
Item title |
|
|
Item image url |
|
|
Type of the item: APP, BOOKARK, GROUP or EXCEPTIONAL |
|
|
Item action to realize when item is clicked on the device |
Example request
$ curl 'https://api.breezie.com/devices/b6429b93-0f3e-4079-9db2-385560fa61dd/startscreen' -i -X PUT -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json' -d '{
"numberOfItems" : 4,
"settledItems" : [ {
"title" : "Angry Birds",
"imageUrl" : "https://lh3.googleusercontent.com/iOi6YJxQwMenT5UQWGPWTrFMQFm68IC4uKlFtARveZzVD5lTZ7fC47_rnnF7Tk48DpY",
"type" : "APP",
"action" : "app:com.rovio.candyCrush"
}, {
"title" : "My Choices",
"imageUrl" : null,
"type" : "GROUP",
"action" : "4f4a99e1-c0d8-4510-ac7f-d30322749534"
} ],
"ignoredItems" : [ {
"title" : "Candy Crash Saga",
"imageUrl" : "https://lh5.ggpht.com/81M05pEyFiOqKt8CashUoz66iJAhL-3PHHbAil108QkU9sKeVZBuZaNJiV7b0gZ2GFU",
"type" : "APP",
"action" : "app:com.king.candycrushsaga"
} ]
}'
Example response
HTTP/1.1 204 No Content
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 2772
{
"numberOfItems" : 4,
"items" : [ {
"title" : "Interests",
"imageUrl" : "https://lh3.googleusercontent.com/LJYTR7O6FhgmgKz8DWjdwOrjSwotEjj1cRzRXiwe-ku-iD-jvvYKAkFpoRXz40VthHg=w300",
"type" : "EXCEPTIONAL",
"action" : "interests",
"forced" : true,
"settled" : false,
"promoted" : true,
"ignored" : false,
"hidden" : false,
"scope" : null
}, {
"title" : "Address Book",
"imageUrl" : "https://lh3.googleusercontent.com/ymxsToS_hwIz4I8erEK1L6EYB3weXve9mai5ozqOEKI_1TB01COmv3NGwUwP_DihXwk-",
"type" : "APP",
"action" : "app:com.breezie.apps.addressbook",
"forced" : true,
"settled" : false,
"promoted" : true,
"ignored" : false,
"hidden" : false,
"scope" : {
"facilityId" : null,
"userId" : null,
"organizationId" : null,
"regionId" : null,
"campusId" : null
}
}, {
"title" : "Angry Birds",
"imageUrl" : "https://lh3.googleusercontent.com/iOi6YJxQwMenT5UQWGPWTrFMQFm68IC4uKlFtARveZzVD5lTZ7fC47_rnnF7Tk48DpY",
"type" : "APP",
"action" : "app:com.rovio.candyCrush",
"forced" : false,
"settled" : true,
"promoted" : true,
"ignored" : false,
"hidden" : false,
"scope" : {
"facilityId" : null,
"userId" : null,
"organizationId" : null,
"regionId" : null,
"campusId" : null
}
}, {
"title" : "My Choices",
"imageUrl" : null,
"type" : "GROUP",
"action" : "4f4a99e1-c0d8-4510-ac7f-d30322749534",
"forced" : false,
"settled" : true,
"promoted" : false,
"ignored" : false,
"hidden" : false,
"scope" : {
"facilityId" : null,
"userId" : null,
"organizationId" : null,
"regionId" : null,
"campusId" : null
}
}, {
"title" : "Candy Crash Saga",
"imageUrl" : "https://lh5.ggpht.com/81M05pEyFiOqKt8CashUoz66iJAhL-3PHHbAil108QkU9sKeVZBuZaNJiV7b0gZ2GFU",
"type" : "APP",
"action" : "app:com.king.candycrushsaga",
"forced" : false,
"settled" : false,
"promoted" : true,
"ignored" : true,
"hidden" : false,
"scope" : {
"facilityId" : null,
"userId" : null,
"organizationId" : "48865325-ddb0-4dc5-ac55-d7729794b8ec",
"regionId" : null,
"campusId" : null
}
}, {
"title" : "Google Photos",
"imageUrl" : "https://lh5.ggpht.com/tq3WqEUxtRyBn-d_0t3j6WKNHuJDrmLq-FE3GAYrsAMQFIaS7FIgRLfzzql2SvfvLqto",
"type" : "APP",
"action" : "app:com.google.android.apps.photos",
"forced" : false,
"settled" : false,
"promoted" : false,
"ignored" : false,
"hidden" : false,
"scope" : {
"facilityId" : null,
"userId" : null,
"organizationId" : null,
"regionId" : null,
"campusId" : null
}
} ]
}
Update StartScreen
A PATCH
request to /devices/{id}/startscreen
will add an item to the existed startscreen configuration of the
device identified by id
.
Structure
Path | Type | Description |
---|---|---|
|
|
Title of the item to be added |
|
|
Image url of the item to be added |
|
|
Type of the item: APP, BOOKARK, GROUP or EXCEPTIONAL |
|
|
Item action to realize when item is clicked on the device |
Example request
$ curl 'https://api.breezie.com/devices/b6429b93-0f3e-4079-9db2-385560fa61dd/startscreen' -i -X PATCH -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json' -d '{
"title" : "Candy Crash Saga",
"imageUrl" : "https://lh5.ggpht.com/81M05pEyFiOqKt8CashUoz66iJAhL-3PHHbAil108QkU9sKeVZBuZaNJiV7b0gZ2GFU",
"type" : "APP",
"action" : "app:com.king.candycrushsaga"
}'
Example response
HTTP/1.1 204 No Content
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 29
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Resource updated successfully
Settings
Settings
represents a set of properties that define the Device behaviour.
The set of properties that can be settled to a device are defined in a schema that can be found on
https://api.breezie.com/devices/schema.json . This json document describes all the properties available and its
restrictions.
|
Settings can be defined at different levels: breezie level, organization level
and user level. Properties defined at Breezie level can be overwritten at Organization and User level and properties set at Organization level can be overwritten at User level.
|
The Settings applied to a Device is the combination of Breezie Settings, Organizations Settings
and User Settings. In case the same property is defined at different levels, User level
has the highest priority and Breezie level the lowest.
|
Settings API
Retrieve settings for all devices
A GET
request to /breezie-settings
will update the set of properties settled at Breezie level.
Example request
$ curl 'https://api.breezie.com/breezie-settings' -i -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'version: 1.0'
Example response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 412
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"allowBreezieAppRemoval" : false,
"allowDeviceAdminRemoval" : false,
"usbDebugging" : false,
"allowFactoryReset" : false,
"schemaUri" : "/schemas/actual_schema_breezie",
"disableApps" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"version" : "1.0",
"manualTime" : {
"timeZoneId" : "Europe/London",
"timeFormat" : "YYYY-MM-DD"
}
}
Replace Settings for all Devices
A PUT
request to /breezie-settings
will update the set of properties settled at Breezie level. This
properties will be applied for all users.
Example request
$ curl 'https://api.breezie.com/breezie-settings' -i -X PUT -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'version: 1.0' -H 'Content-Type: application/json' -d '{
"usbDebugging" : false,
"allowFactoryReset" : false,
"allowDeviceAdminRemoval" : false,
"allowBreezieAppRemoval" : false,
"disableApps" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"manualTime" : {
"timeZoneId" : "Europe/London",
"timeFormat" : "YYYY-MM-DD"
}
}'
Example response
HTTP/1.1 201 Created
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 412
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
{
"usbDebugging" : false,
"allowFactoryReset" : false,
"allowDeviceAdminRemoval" : false,
"allowBreezieAppRemoval" : false,
"disableApps" : [ "com.breezie.com.apps.startscreen", "com.breezie.apps.bookmarks", "com.breezie.apps.settings" ],
"manualTime" : {
"timeZoneId" : "Europe/London",
"timeFormat" : "YYYY-MM-DD"
},
"version" : "1.0",
"schemaUri" : "/schemas/actual_schema_breezie"
}
Messages
Messages are data structure that can be sent to a device. The device will act in different ways depends on the nature of the message
Message Types
Message | Description |
---|---|
launch |
Opens the app specified in the |
wipe |
Starts the |
lock |
It will |
all |
Synchronizes all the data in the device: |
settings |
Synchronizes the device settings. |
groups |
Synchronizes the |
apps |
Synchronizes the |
bookmarks |
Synchronizes the |
start_screen |
Synchronizes the home screen of the device. |
broadcast |
It will send a 'broadcast' message that will be managed in the device by the app specified in the 'payload'. |
Notifications are broadcast messages managed by our notification app on the device
|
Send message
A POST
request to /devices/{id}/messages
will send an asynchronous message to the Device identified by id
. The action
the device will trigger depends on the type of message and the data associated.
Structure
Path | Type | Description |
---|---|---|
|
|
type of message to send |
|
|
json object with data required depending on the type of message sent |
Example request (notification message)
$ curl 'https://api.breezie.com/devices/6e22c738-d452-4298-9522-3c2da4ec9962/messages' -i -X POST -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json;charset=UTF-8' -d '{
"messageType" : "broadcast",
"data" : {
"intentAction" : "notification",
"payload" : "{\"body\":\"This is a test notification\",\"subject\":\"Test Notification\",\"id\":\"c72099ef-aca3-5966-ba90-b3ba6d6bbdc5\",\"ts\":1574176240291,\"actionName\":\"triggerNotification\",\"imageUrl\":\"http://static.breezie.com/assets/breezie/Breezie_B_120x120.png\",\"volume\":50}",
"className" : "com.breezie.client.notifier.FutureEvent",
"packageName" : "app:com.breezie.apps.notifier"
}
}'
Example response (notification message)
HTTP/1.1 202 Accepted
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 54
{
"response" : "FCM Message accepted successfully"
}
Example request (launch app message)
$ curl 'https://api.breezie.com/devices/a6abcf79-77eb-4936-a9c3-df7e01d34c4c/messages' -i -X POST -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json;charset=UTF-8' -d '{
"messageType" : "launch",
"data" : {
"packageName" : "app:com.breezie.apps.video.VideoCall"
}
}'
Send message to multiple devices
A POST
request to /devices/messages
will send an asynchronous message to a set of device specified in the body. The action
the device will trigger depends on the type of message and the data associated.
Structure
Path | Type | Description |
---|---|---|
|
|
List of devices where the message will be sent |
|
|
type of message to send |
|
|
json object with data required depending on the type of message sent |
Example request (sync message)
$ curl 'https://api.breezie.com/devices/messages' -i -X POST -H 'Authorization: Bearer: 0b79bab50daca910b000d4f1a2b675d604257e42' -H 'Content-Type: application/json;charset=UTF-8' -d '{
"devices" : [ "afe2c896-5600-4f20-ab04-47ec0eab331e", "ff28d3a2-4be6-4e4e-98f5-cee4afa02497" ],
"messageType" : "all",
"data" : { }
}'
Example response (sync message)
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
Strict-Transport-Security: max-age=31536000 ; includeSubDomains
X-Frame-Options: DENY
Content-Length: 238
{
"results" : [ {
"deviceId" : "ff28d3a2-4be6-4e4e-98f5-cee4afa02497",
"success" : true,
"errorCode" : null
}, {
"deviceId" : "afe2c896-5600-4f20-ab04-47ec0eab331e",
"success" : true,
"errorCode" : null
} ]
}