NAV Navigation
Shell HTTP JavaScript Ruby Python PHP Java Go

License Management API v1.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

Authentication

License Management

Endpoints supporting the update and review of active licenses.

Returns a digitally signed usage report

Code samples

# You can also use wget
curl -X GET /api/v1/license-usage/{licenseId} \
-H 'Accept: application/json'
GET /api/v1/license-usage/{licenseId} HTTP/1.1

Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('/api/v1/license-usage/{licenseId}',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get '/api/v1/license-usage/{licenseId}',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('/api/v1/license-usage/{licenseId}', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','/api/v1/license-usage/{licenseId}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("/api/v1/license-usage/{licenseId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/api/v1/license-usage/{licenseId}", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v1/license-usage/{licenseId}

Returns a digitally signed report that details the system usage associated with the specified license

Parameters

Name In Type Required Description
licenseId path LicenseId true Specifies the LicenseId for which the usage report is required

Example responses

200 Response

{
"licenseId": "be894337-ec7c-4bdc-ac72-f939e31237ae",
"licenseName": "license_inc:001",
"entitlementLimits": {
"haloProcessingFileLimit": "12k",
"haloSomeFutureLimitThatDoesNotExistYet": "Unlimited"
}
}

401 Response

[
"Unauthorised request"
]

404 Response

[
"License not found"
]

5XX Response

[
"System error processing request"
]

Responses

Status Meaning Description Schema
200 OK Summary of license details LicenseUsageReportDetails
401 Unauthorized Unauthorised Request ErrorResponse
404 Not Found License not found ErrorResponse
5XX Unknown Processing Error ErrorResponse

Response Headers

Status Header Type Format Description
200 Cache-Control string Prevent sensitive information from being cached.
200 ContentTypeHeader string Indicates the response content type
200 ContentTypeOptionsHeader string To prevent browsers from performing MIME sniffing, and inappropriately interpreting responses as HTML.
200 FrameOptionsHeader string To protect against drag-and-drop style clickjacking attacks.
200 ContentSecurityPolicyHeader string To protect against drag-and-drop style clickjacking attacks.
200 StrictTransportSecurityHeader string Uses a week long max-age to prevent any communications from being sent to this domain over HTTP

Returns a digitally signed usage report for the currently active license

Code samples

# You can also use wget
curl -X GET /api/v1/license-usage/active \
-H 'Accept: application/json'
GET /api/v1/license-usage/active HTTP/1.1

Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('/api/v1/license-usage/active',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get '/api/v1/license-usage/active',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('/api/v1/license-usage/active', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','/api/v1/license-usage/active', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("/api/v1/license-usage/active");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/api/v1/license-usage/active", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v1/license-usage/active

Returns a digitally signed report that details the system usage associated with the currently active license

Example responses

200 Response

{
"licenseId": "be894337-ec7c-4bdc-ac72-f939e31237ae",
"licenseName": "license_inc:001",
"entitlementLimits": {
"haloProcessingFileLimit": "12k",
"haloSomeFutureLimitThatDoesNotExistYet": "Unlimited"
}
}

401 Response

[
"Unauthorised request"
]

404 Response

[
"License not found"
]

5XX Response

[
"System error processing request"
]

Responses

Status Meaning Description Schema
200 OK Summary of license details LicenseUsageReportDetails
401 Unauthorized Unauthorised Request ErrorResponse
404 Not Found License not found ErrorResponse
5XX Unknown Processing Error ErrorResponse

Response Headers

Status Header Type Format Description
200 Cache-Control string Prevent sensitive information from being cached.
200 ContentTypeHeader string Indicates the response content type
200 ContentTypeOptionsHeader string To prevent browsers from performing MIME sniffing, and inappropriately interpreting responses as HTML.
200 FrameOptionsHeader string To protect against drag-and-drop style clickjacking attacks.
200 ContentSecurityPolicyHeader string To protect against drag-and-drop style clickjacking attacks.
200 StrictTransportSecurityHeader string Uses a week long max-age to prevent any communications from being sent to this domain over HTTP

Enables the insertion of new license certificate file

Code samples

# You can also use wget
curl -X POST /api/v1/license \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST /api/v1/license HTTP/1.1

Content-Type: application/json
Accept: application/json
const inputBody = '-----BEGIN LICENSE FILE-----
eyJlbmMiOiJleUprWVhSaElqcDdJbWxrSWpvaU1EYzFZV05sT1RFdFlUaGtP
UzAwTVdObUxXRmtNMk10TTJJd01EWXpOakF5WTJRMUlpd2lkSGx3WlNJNklt
...
YithdmN6WmVTMitrZGxrKzNwZ0RGTXhueHVpWkNYQUI3RlRrYnB5MkRRPT0i
LCJhbGciOiJiYXNlNjQrZWQyNTUxOSJ9
-----END LICENSE FILE-----
';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};

fetch('/api/v1/license',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}

result = RestClient.post '/api/v1/license',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}

r = requests.post('/api/v1/license', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('POST','/api/v1/license', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("/api/v1/license");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "/api/v1/license", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

POST /api/v1/license

This endpoint facilitates requests to store a new active Glasswall License. It’s important to note that only a single license can be saved at any given time, and uploading a new license will overwrite the existing one.

The submitted license undergoes validation before being distributed through the system. Currently, the validation process includes checking the license signature and verifying the expiry date. In case either of these checks fails, the specific failure is reported in the response.

Body parameter

"-----BEGIN LICENSE FILE-----\n  eyJlbmMiOiJleUprWVhSaElqcDdJbWxrSWpvaU1EYzFZV05sT1RFdFlUaGtP\n  UzAwTVdObUxXRmtNMk10TTJJd01EWXpOakF5WTJRMUlpd2lkSGx3WlNJNklt\n...\nYithdmN6WmVTMitrZGxrKzNwZ0RGTXhueHVpWkNYQUI3RlRrYnB5MkRRPT0i\nLCJhbGciOiJiYXNlNjQrZWQyNTUxOSJ9\n-----END LICENSE FILE-----\n"

Parameters

Name In Type Required Description
body body LicenseFileBody true The request payload contains the issued License File Certificate.

Example responses

200 Response

{
"licenseId": "be894337-ec7c-4bdc-ac72-f939e31237ae",
"licenseName": "license_inc:001",
"productId": "dcd53ddb-8104-4e48-8cc0-5df1088c6113",
"licenseHolder": "license_inc",
"daysLeft": 0,
"startDate": "2019-08-24",
"expirationDate": "2019-08-24",
"status": "active",
"entitlements": [
"haloProcessingFileLimit",
"haloProcessingDataLimit"
],
"entitlementLimits": {
"haloProcessingFileLimit": "12k",
"haloSomeFutureLimitThatDoesNotExistYet": "Unlimited"
}
}

400 Response

[
"Invalid license content"
]

401 Response

[
"Unauthorised request"
]

5XX Response

[
"System error processing request"
]

Responses

Status Meaning Description Schema
200 OK License successfully added LicenseDetails
400 Bad Request Bad License Content ErrorResponse
401 Unauthorized Unauthorised Request ErrorResponse
403 Forbidden Forbidden Request ErrorCodeResponse
5XX Unknown Processing Error ErrorResponse

Response Headers

Status Header Type Format Description
200 Cache-Control string Prevent sensitive information from being cached.
200 ContentTypeHeader string Indicates the response content type
200 ContentTypeOptionsHeader string To prevent browsers from performing MIME sniffing, and inappropriately interpreting responses as HTML.
200 FrameOptionsHeader string To protect against drag-and-drop style clickjacking attacks.
200 ContentSecurityPolicyHeader string To protect against drag-and-drop style clickjacking attacks.
200 StrictTransportSecurityHeader string Uses a week long max-age to prevent any communications from being sent to this domain over HTTP

Returns a description of the currently installed license.

Code samples

# You can also use wget
curl -X GET /api/v1/license \
-H 'Accept: application/json'
GET /api/v1/license HTTP/1.1

Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('/api/v1/license',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get '/api/v1/license',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('/api/v1/license', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','/api/v1/license', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("/api/v1/license");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/api/v1/license", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v1/license

This endpoint facilitates requests to retrieve the up-to-date active Glasswall license from Glasswall Halo. The response body comprises a summary that includes essential details about the license, such as the remaining number of days and a list of the associated software entitlements.

Example responses

200 Response

{
"licenseId": "be894337-ec7c-4bdc-ac72-f939e31237ae",
"licenseName": "license_inc:001",
"productId": "dcd53ddb-8104-4e48-8cc0-5df1088c6113",
"licenseHolder": "license_inc",
"daysLeft": 0,
"startDate": "2019-08-24",
"expirationDate": "2019-08-24",
"status": "active",
"entitlements": [
"haloProcessingFileLimit",
"haloProcessingDataLimit"
],
"entitlementLimits": {
"haloProcessingFileLimit": "12k",
"haloSomeFutureLimitThatDoesNotExistYet": "Unlimited"
}
}

401 Response

[
"Unauthorised request"
]

404 Response

[
"License not found"
]

5XX Response

[
"System error processing request"
]

Responses

Status Meaning Description Schema
200 OK License description LicenseDetails
401 Unauthorized Unauthorised Request ErrorResponse
404 Not Found License not found ErrorResponse
5XX Unknown Processing Error ErrorResponse

Response Headers

Status Header Type Format Description
200 Cache-Control string Prevent sensitive information from being cached.
200 ContentTypeHeader string Indicates the response content type
200 ContentTypeOptionsHeader string To prevent browsers from performing MIME sniffing, and inappropriately interpreting responses as HTML.
200 FrameOptionsHeader string To protect against drag-and-drop style clickjacking attacks.
200 ContentSecurityPolicyHeader string To protect against drag-and-drop style clickjacking attacks.
200 StrictTransportSecurityHeader string Uses a week long max-age to prevent any communications from being sent to this domain over HTTP

Enables the currently installed license to be deleted

Code samples

# You can also use wget
curl -X DELETE /api/v1/license \
-H 'Accept: application/json'
DELETE /api/v1/license HTTP/1.1

Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('/api/v1/license',
{
method: 'DELETE',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.delete '/api/v1/license',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.delete('/api/v1/license', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('DELETE','/api/v1/license', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("/api/v1/license");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "/api/v1/license", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

DELETE /api/v1/license

This endpoint facilitates a request to remove the active license from the Glasswall Halo. If the license is successfully deleted a response is returned confirming deletion. The changes will propagate throughout the system within a few seconds. However the processing of in-flight transactions will be completed.

Example responses

401 Response

[
"Unauthorised request"
]

403 Response

{
"errors": [
{
"errorCode": 4033,
"errorDescription": "Access denied, Admin role is required"
}
]
}

5XX Response

[
"System error processing request"
]

Responses

Status Meaning Description Schema
200 OK License Deleted None
401 Unauthorized Unauthorised Request ErrorResponse
403 Forbidden Forbidden Request ErrorCodeResponse
5XX Unknown Processing Error ErrorResponse

Returns list of available licenses

Code samples

# You can also use wget
curl -X GET /api/v1/license-usage \
-H 'Accept: application/json'
GET /api/v1/license-usage HTTP/1.1

Accept: application/json

const headers = {
'Accept':'application/json'
};

fetch('/api/v1/license-usage',
{
method: 'GET',

headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'

headers = {
'Accept' => 'application/json'
}

result = RestClient.get '/api/v1/license-usage',
params: {
}, headers: headers

p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}

r = requests.get('/api/v1/license-usage', headers = headers)

print(r.json())
<?php

require 'vendor/autoload.php';

$headers = array(
'Accept' => 'application/json',
);

$client = new \GuzzleHttp\Client();

// Define array of request body.
$request_body = array();

try {
$response = $client->request('GET','/api/v1/license-usage', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}

// ...
URL obj = new URL("/api/v1/license-usage");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main

import (
"bytes"
"net/http"
)

func main() {

headers := map[string][]string{
"Accept": []string{"application/json"},
}

data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "/api/v1/license-usage", data)
req.Header = headers

client := &http.Client{}
resp, err := client.Do(req)
// ...
}

GET /api/v1/license-usage

Returns a list of currently active and previous licenses. If none are available, an empty list is returned.

Example responses

200 Response

[
{
"licenseId": "be894337-ec7c-4bdc-ac72-f939e31237ae",
"licenseName": "license_inc:001",
"active": true
}
]

401 Response

[
"Unauthorised request"
]

5XX Response

[
"System error processing request"
]

Responses

Status Meaning Description Schema
200 OK List of available licenses LicenseUsageAvailabilityList
401 Unauthorized Unauthorised Request ErrorResponse
5XX Unknown Processing Error ErrorResponse

Response Headers

Status Header Type Format Description
200 Cache-Control string Prevent sensitive information from being cached.
200 ContentTypeHeader string Indicates the response content type
200 ContentTypeOptionsHeader string To prevent browsers from performing MIME sniffing, and inappropriately interpreting responses as HTML.
200 FrameOptionsHeader string To protect against drag-and-drop style clickjacking attacks.
200 ContentSecurityPolicyHeader string To protect against drag-and-drop style clickjacking attacks.
200 StrictTransportSecurityHeader string Uses a week long max-age to prevent any communications from being sent to this domain over HTTP

Schemas

LicenseId

"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Properties

Name Type Required Restrictions Description
anonymous string(uuid) false none none

LicenseName

"license_inc:001"

Properties

Name Type Required Restrictions Description
anonymous string false none none

LicenseActiveState

true

Identifies whether the specified License is the currently active license, or not.

Properties

Name Type Required Restrictions Description
anonymous boolean false none Identifies whether the specified License is the currently active license, or not.

ProductId

"497f6eca-6276-4993-bfeb-53cbbbba6f08"

Properties

Name Type Required Restrictions Description
anonymous string(uuid) false none none

LicenseHolder

"license_inc"

Properties

Name Type Required Restrictions Description
anonymous string false none none

LicenseDayCount

0

Properties

Name Type Required Restrictions Description
anonymous integer false none none

LicenseDate

"2019-08-24"

Properties

Name Type Required Restrictions Description
anonymous string(date) false none none

LicenseStatus

"active"

Properties

Name Type Required Restrictions Description
anonymous string false none none

Enumerated Values

Property Value
anonymous active
anonymous expired

LicenseEntitlementName

"processingFeature"

Properties

Name Type Required Restrictions Description
anonymous string false none none

LicenseEntitlementList

[
"haloProcessingFileLimit",
"haloProcessingDataLimit"
]

Properties

Name Type Required Restrictions Description
anonymous [LicenseEntitlementName] false none none

LicenseEntitlementLimitItem

"string"

Properties

Name Type Required Restrictions Description
anonymous string false none none

LicenseEntitlementLimitList

{
"haloProcessingFileLimit": "12k",
"haloSomeFutureLimitThatDoesNotExistYet": "Unlimited"
}

Each License Entitlement Limit consists of a unique name and an associated threshold value.

Properties

Name Type Required Restrictions Description
additionalProperties LicenseEntitlementLimitItem false none none

LicenseUsageAvailabilityList

[
{
"licenseId": "be894337-ec7c-4bdc-ac72-f939e31237ae",
"licenseName": "license_inc:001",
"active": true
}
]

Properties

Name Type Required Restrictions Description
licenseId LicenseId true none none
licenseName LicenseName true none none
active LicenseActiveState true none Identifies whether the specified License is the currently active license, or not.

LicenseUsageReportDetails

{
"licenseId": "be894337-ec7c-4bdc-ac72-f939e31237ae",
"licenseName": "license_inc:001",
"entitlementLimits": {
"haloProcessingFileLimit": "12k",
"haloSomeFutureLimitThatDoesNotExistYet": "Unlimited"
}
}

Summary of license and its entitlement limits

Properties

Name Type Required Restrictions Description
licenseId LicenseId false none none
licenseName LicenseName false none none
entitlementLimits LicenseEntitlementLimitList false none Each License Entitlement Limit consists of a unique name and an associated threshold value.

LicenseDetails

{
"licenseId": "be894337-ec7c-4bdc-ac72-f939e31237ae",
"licenseName": "license_inc:001",
"productId": "dcd53ddb-8104-4e48-8cc0-5df1088c6113",
"licenseHolder": "license_inc",
"daysLeft": 0,
"startDate": "2019-08-24",
"expirationDate": "2019-08-24",
"status": "active",
"entitlements": [
"haloProcessingFileLimit",
"haloProcessingDataLimit"
],
"entitlementLimits": {
"haloProcessingFileLimit": "12k",
"haloSomeFutureLimitThatDoesNotExistYet": "Unlimited"
}
}

Provides detailed information of the license contents

Properties

Name Type Required Restrictions Description
licenseId LicenseId true none none
licenseName LicenseName true none none
productId ProductId true none none
licenseHolder LicenseHolder true none none
daysLeft LicenseDayCount true none none
startDate LicenseDate true none none
expirationDate LicenseDate true none none
status LicenseStatus true none none
entitlements LicenseEntitlementList true none none
entitlementLimits LicenseEntitlementLimitList true none Each License Entitlement Limit consists of a unique name and an associated threshold value.

ErrorCodeResponse

{
"errors": [
{
"errorCode": 4033,
"errorDescription": "Access denied, Admin role is required"
}
]
}

Properties

Name Type Required Restrictions Description
errors [object] false none none
» errorCode number false none none
» errorDescription string false none none

ErrorResponse

[
"string"
]

Properties

None

LicenseFileBody

"-----BEGIN LICENSE FILE-----\n  eyJlbmMiOiJleUprWVhSaElqcDdJbWxrSWpvaU1EYzFZV05sT1RFdFlUaGtP\n  UzAwTVdObUxXRmtNMk10TTJJd01EWXpOakF5WTJRMUlpd2lkSGx3WlNJNklt\n...\nYithdmN6WmVTMitrZGxrKzNwZ0RGTXhueHVpWkNYQUI3RlRrYnB5MkRRPT0i\nLCJhbGciOiJiYXNlNjQrZWQyNTUxOSJ9\n-----END LICENSE FILE-----\n"

Supplied License Certificate File

Properties

Name Type Required Restrictions Description
anonymous string false none Supplied License Certificate File

EntitlementLimitName

"string"

Properties

Name Type Required Restrictions Description
anonymous string false none none

LicenseMetadataList

{
"haloProcessingFileLimit": "12k",
"haloSomeFutureLimitThatDoesNotExistYet": "Unlimited"
}

Properties

None