OVERVIEW
Representational State Transfer (REST) is a method by which to create web based services. As part of the networking core, Limelight XE™ supports a RESTful interface to allow other Limelight XE servers to exchange information or for users to build custom web based client applications. The interface is configured in the Network Services / HTTP Server object found in the Component Tab of the Limelight XE console. The default port for REST services is 3030 and defaults to Digest Authentication. It can also run with basic (clear text) authentication for faster access when in a trusted network or when using Secure Socket Layer encryption (requires a certificate to be properly installed in the server). The port can be changed and may be the same as the HTTP port number as well (which defaults to 8080 or 443 for secure connections). The HTTP server must be enabled for the REST interface to function. See the HTTP Server object for details as well as associated documents at the end of this reference for more information.
REST interfaces use a method verb embedded in the HTTP header (see Access-Control-Request-Method). The default method for most web accesses is GET, however REST interfaces use other methods such as PUT or POST. Here is a brief description of each method.
- GET - This method is the default for most web accesses using HTTP. It is equivalent to a "read" or "request" command.
- POST - This is equivalent to a "new" or "create" command and if used primarily for objects, accounts and tokens.
- DELETE - The method does what it implies - it deletes or removes an object from the system.
- PUT - The "put" verb is used to update or replace an existing object in the system.
- OPTIONS - This method can be used to investigate what methods are allowed on a particular command.
The responses are always in JSON (RFC 8259) format and have the following structure.
{
"Revision": [String - software Revision of server],
"AccountGUID": [String - user's account GUID (all zeros if security set to anonymous)],
"ServerGUID": [String- the server GUID],
"ServerName": [String - the name of the server],
"ResultCode": [integer - result code for the requested operation (see below for details)],
"ResultString": [String - human readable version of the result code],
"ResultReference": [String - the link to the documentation where this information can be found],
"Result": {
[JSON structure based on the request]
}
}
See Global Result Codes for details on "ResultCode" above.
Example result of GET method for "/status" resource
{
"Revision":"2.6.3.1",
"AccountGUID": "{00000000-0000-0000-0000-000000000000}",
"ServerGUID":"{0DB7912C-0086-4766-AA20-B29E3ACE2427}",
"ServerName":"Smithville Hanson Main Server",
"ResultCode":0,
"ResultString":"Operation completed",
"ResultReference":"https://strasis.com/documentation/limelight-xe/reference/rest-api/global-result-codes#0",
"Result":{
"ServerGUID":"{0DB7912C-0086-4766-AA20-B29E3ACE2427}",
"ServerName":"Smithville Hanson Main Server",
"Status":20,
"Latitude":35.960426,
"Longitude":-85.813839,
"Altitude":6.0,
"Heading":0,
"Speed":0
}
}
SUMMARY
Resource | Supported Methods | Description |
---|---|---|
/alarms | GET, POST, OPTIONS | Used to retrieve from or post alarms to a Limelight XE server from other applications or servers |
/alarms/statistics | GET, OPTIONS | Used to retrieve alarm statistics from a Limelight XE server for historical information |
/logs | GET, POST, OPTIONS | Read or create log entries - often used for inter-server manegement |
/objects | GET, POST, DELETE, PUT, OPTIONS | Read, create, delete or update any Limelight XE server object |
/objects/nodes | GET, OPTIONS | Read object node structure of a Limelight XE server |
/objects/tracking | GET, PUT, OPTIONS | Read or update (create if missing) any trackable object |
/status | GET, PUT, OPTIONS | Read or update the status of a Limelight XE server |
DETAILED DESCRIPTIONS
Description
This resource requests or updates a server's status. It has no URL parameters.
Supported Methods
- GET: Request the current status from a Limelight XE server. This is the most common use by clients
- PUT: Update a master Limelight XE server from another Limelight XE (or other) server.
- OPTIONS: Returns the available options for this command (GET, PUT and OPTIONS).
URL Structure
- /status
URL Parameters
- GET or PUT: (none)
Data Parameters (body)
- GET: (none)
- PUT:
- Server GUID [String] - The server GUID sending the update (this is provided by the license server during registration)
- Server Name [String] - The name of the server sending the update (the Server Name property of the Limelight XE server)
- Status [Integer] - The status indicator of the server
- 0 = Offline: Server has been taken off-line or the service has not started
- 1 = Online: Normal state
- 2 = Error: Server has errors due to configuration or failure
- 3 = Disabled: Server has detected tampering (e.g. license file) and is disabled
- 4 = Communications Error: Some or all of the communications are in error (data integrity errors)
- 5 = Unknown: Status of server is unknown
- Latitude [Float, Double] - Latitude of the server in degrees
- Longitude [Float, Double] - Longitude of the server in degrees
- Altitude [Float, Double] - Altitude in feet
- Heading [Float, Double] - Heading in degrees
- Speed [Float, Double] - Speed in MPH
Result
- GET:
- ServerGUID [String] - The GUID of the target server
- ServerName [String] - The name of the target server
- Status [Integer] - the status code of the server (see above)
- Latitude [Float, Double] - The decimal latitude of the server (used for both stationary and mobile installations)
- Longitude [Float, Double] - The decimal longitude of the server (used for both stationary and mobile installations)
- Altitude [Float, Double] - The decimal altitude in feet of the server (used for both stationary and mobile installations)
- Heading [Float, Double] - The decimal heading in degrees of the server (used only for mobile installations)
- Speed [Float, Double] - The decimal speed in miles per hour (MPH) of the server (used only for mobile installations)
- PUT (none - only the header is returned)
Example result (GET result)
{
"Revision":"2.6.3.1",
"AccountGUID": "{00000000-0000-0000-0000-000000000000}",
"ServerGUID":"{0DB7912C-0086-4766-AA20-B29E3ACE2427}",
"ServerName":"Smithville Hanson Main Server",
"ResultCode":0,
"ResultString":"Operation completed",
"ResultReference":"https://strasis.com/documentation/limelight-xe/reference/rest-api/global-result-codes#0",
"Result":{
"ServerGUID":"{0DB7912C-0086-4766-AA20-B29E3ACE2427}",
"ServerName":"Smithville Hanson Main Server",
"Status":20,
"Latitude":35.960426,
"Longitude":-85.813839,
"Altitude":19.69,
"Heading":0,
"Speed":0
}
}
Example data parameters (PUT body data)
{
"ServerGUID":"{0DB7912C-0086-4766-AA20-B29E3ACE2427}",
"ServerName":"Smithville Hanson Main Server",
"Status":20,
"Latitude":35.960426,
"Longitude":-85.813839,
"Altitude":6,
"Heading":0,
"Speed":0
}
Description
This resource provides access to all system objects and their properties.
Supported Methods
- GET: Requests an object or information about an object
- POST: Creates a new object if the target object has the option and the user has the authority
- DELETE: Deletes an object if the target object has the option and the user has the authority
- PUT: Updates an object (property) if the property is R/W and the user has the authority
- OPTIONS: Returns a list of the available methods (as above)
URL Structure
- /objects?ServerGUID=[GUID of target server]&ObjectGUID=[GUID of target object]
URL Parameters
- GET, POST, DELETE or PUT
- ServerGUID - The target server GUID (optional - defaults to the target server)
- ObjectGUID - The GUID of the target object (required)
Example result for GET (e.g. http://172.31.41.49:3030/rest/objects?ObjectGUID={759161EB-0000-0000-0000-000000000000})
{
"Revision":"2.6.3.1",
"AccountGUID": "{00000000-0000-0000-0000-000000000000}",
"ServerGUID":"{0DB7912C-0086-4766-AA20-B29E3ACE2427}",
"ServerName":"Smithville Hanson Main Server",
"ResultCode":0,
"ResultString":"Operation completed",
"ResultReference":"https://strasis.com/documentation/limelight-xe/reference/rest-api/global-result-codes#0",
"Result":{
"ServerGUID":"{0DB7912C-0086-4766-AA20-B29E3ACE2427}",
"ObjectGUID":"{759161EB-0000-0000-0000-000000000000}",
"Properties":[
{
"Path":"",
"Name":"HostName",
"Value":"EC2AMAZ-VIEDFEH",
"DefValue":0,
"Type":"String",
"Kind":5,
"Options":[
],
"ReadOnly":"1",
"Attributes":2147483648
},
{
"Path":"",
"Name":"ServerName",
"Value":"Smithville Hanson Main Server",
"DefValue":0,
"Type":"String",
"Kind":5,
"Options":[
],
"ReadOnly":"1",
"Attributes":2147483648
},
{
"Path":"",
"Name":"ServerVersion",
"Value":"2.2.1.1",
"DefValue":0,
"Type":"String",
"Kind":5,
"Options":[
],
"ReadOnly":"1",
"Attributes":2147483648
},
{
"Path":"",
"Name":"ServerGUID",
"Value":"{0DB7912C-0086-4766-AA20-B29E3ACE2427}",
"DefValue":0,
"Type":"String",
"Kind":5,
"Options":[
],
"ReadOnly":"1",
"Attributes":2147483648
},
{
"Path":"",
"Name":"IPAddress",
"Value":"172.31.41.49",
"DefValue":0,
"Type":"String",
"Kind":5,
"Options":[
],
"ReadOnly":"1",
"Attributes":2147483648
},
{
"Path":"",
"Name":"LicenseState",
"Value":"Active",
"DefValue":0,
"Type":"String",
"Kind":5,
"Options":[
],
"ReadOnly":"1",
"Attributes":2147483648
},
{
"Path":"",
"Name":"ClientAccessPort",
"Value":"41114",
"DefValue":0,
"Type":"String",
"Kind":5,
"Options":[
],
"ReadOnly":"1",
"Attributes":2147483648
},
{
"Path":"",
"Name":"InterserverBroadcastPort",
"Value":"41113",
"DefValue":0,
"Type":"Integer",
"Kind":1,
"Options":[
],
"ReadOnly":"1",
"Attributes":2147483648
},
{
"Path":"",
"Name":"HTTP_AccessPort",
"Value":"8080",
"DefValue":0,
"Type":"Integer",
"Kind":1,
"Options":[
],
"ReadOnly":"1",
"Attributes":2147483648
},
{
"Path":"",
"Name":"HTTPS_AccessPort",
"Value":"443",
"DefValue":0,
"Type":"Integer",
"Kind":1,
"Options":[
],
"ReadOnly":"1",
"Attributes":2147483648
}
]
}
}
Description
This resource provides a means to request the available object's structural nodes similar the component's view in the Limelight XE™ Console. It can provide the entire structure or only a sub-tree based on credentials. It supports only GET as the structure is maintained by the system module.
Supported Methods
- GET: Requests all object nodes that that descend from the provided object GUID (or the root if no GUID is supplied)
URL Structure
- /objects/nodes?ObjectGUID=[GUID, starting node (optional)]
URL Parameters
- GET
- ObjectGUID [GUID] - GUID of the starting object. All child objects are returned.
Example GET result (http://192.168.1.10:3030/rest/objects/nodes?ObjectGUID={759161EB-1005-0000-0000-000000000000}
{
"Revision": "2.6.3.1",
"AccountGUID": "{00000000-0000-0000-0000-000000000000}",
"ServerGUID": "{D514B047-F15A-4515-91A3-F8F0EF2AEBA4}",
"ServerName": "Limelight XE Development Server",
"ResultCode": 0,
"ResultString": "Operation completed",
"ResultReference": "https://strasis.com/documentation/limelight-xe/reference/rest-api/global-result-codes#0",
"Result": {
"ServerGUID": "{D514B047-F15A-4515-91A3-F8F0EF2AEBA4}",
"ObjectGUID": "{759161EB-1005-0000-0000-000000000000}",
"Objects": [{
"GUID": "{759161EB-1005-0000-0000-000000000000}",
"GUID_Icon": "{759161EB-1005-0000-0000-000000000000}",
"Title": "User Defined Variables",
"Hint": "Used by the system to track user defined values",
"State": 0,
"ChildObjects": [{
"GUID": "{759161EB-1005-0010-0000-000000000000}",
"GUID_Icon": "{759161EB-1005-0000-0000-000000000000}",
"Title": "Global Variables",
"Hint": "Global variables are visible and alterable by all users",
"State": 0,
"ChildObjects": [{
"GUID": "{759161EB-1005-0010-0000-000000000001}",
"GUID_Icon": "{759161EB-1005-0000-0000-000000000000}",
"Title": "TestVar1",
"Hint": "New user defined variable",
"State": 0,
"ChildObjects": []
},
{
"GUID": "{759161EB-1005-0010-0000-000000000002}",
"GUID_Icon": "{759161EB-1005-0000-0000-000000000000}",
"Title": "TestVar2",
"Hint": "New user defined variable",
"State": 0,
"ChildObjects": []
}
]
},
{
"GUID": "{759161EB-1005-0020-0000-000000000000}",
"GUID_Icon": "{759161EB-1005-0000-0000-000000000000}",
"Title": "Local Variables",
"Hint": "Local variable values are unique to a user",
"State": 0,
"ChildObjects": [{
"GUID": "{759161EB-1005-0020-0000-000000000001}",
"GUID_Icon": "{759161EB-1005-0000-0000-000000000000}",
"Title": "LocalVariable2",
"Hint": "Another local variable tied to the current account",
"State": 0,
"ChildObjects": []
},
{
"GUID": "{759161EB-1005-0020-0000-000000000002}",
"GUID_Icon": "{759161EB-1005-0000-0000-000000000000}",
"Title": "LocalVariable1",
"Hint": "An additional local variable tied to the current account",
"State": 0,
"ChildObjects": []
}
]
}
]
}]
}
}
Description
This resource provides access to all trackable objects stored in the limelight system. It can access objects by region or time, limit the resulting records by numbers or classification (e.g. aircraft - heavy jets). It supports the GET and PUT methods. The PUT method is used to update an existing object such as a vehicle location, heading and speed. If the object is not present (not found in the tracking database), the system creates a new entry. A unique ID is required for each object and is classification dependent.
Additionally, single objects can be accessed using a search type and search value. This will return a single trackable object such as a land vehicle, ship or aircraft. It can also access fixed objects and devices that are in the tracking database.
Supported Methods
- GET: Requests all objects that meet location criteria and options or a specific object based on search criteria
- PUT: Updates (or creates) new objects with classification and location
URL Structure (Area Window)
- /objects/tracking[/accounts | /assets | /database | /external | /network]?Latitude1=[double, lat1]&Longitude1=[double, long1]&Latitude2=[double, lat2]&Longitude2=[double, long2]&DateBegin=[date, last update start date]&DateEnd=[date, last update end date]&ClassifierMask=[dword, classification mask]&Limit=[integer, maximum returned records]&Options=[dword, option flags]
URL Structure (Specific Trackable Objects)
- /objects/tracking[/accounts | /assets | /database | /external | /network]?[SearchType=[enum, st]]&Search=[string, sv]&[Limit=[int, limit]]
URL Parameters
- GET (Area Window)
- Latitude1 [Double Floating Point] - Latitude of corner 1 of the requested region
- Longitude1 [Double Floating Point] - Longitude of corner 1 of the requested region
- Latitude2 [Double Floating Point] - Latitude of corner 2 of the requested region (double floating point)
- Longitude2 [Double Floating Point] - Longitude of corner 2 of the requested region (double floating point)
- DateBegin [Date] - Start date to bound the last updates from trackable objects (format: MM/DD/YYYY)
- DateEnd [Date] - End date to bound the last updates from trackable objects (format: MM/DD/YYYY)
- ClassifierMask [DWORD] - Optional bit-wise mask applied (AND function) to the object classification during the search (see Object Classifiers at the bottom of this page for more information).
- Limit [Integer] - Optional value to limit the returned results. If zero (0) or missing, records are unlimited
- Options [DWORD] - Optional value to set options on the search
- Bit 0 - when set only returns object that have been updated since the last request.
- Bit 1 - (reserved)
- Bit 2 - (reserved)
- Bit 3 - (reserved)
- Bit 4 = Floating point value (double) of number of days since 12/30/1899, 1=ISO 8601 Time Format (string) for all dates / times
- Bits 5-31 - (reserved)
- GET (Specific Trackable Object)
- SearchType [Enumeration, "Identifier" (default if SearchType is missing), "Name", "ObjectGUID", "Description" (can be a partial value using wild cards), "OtherData" (one or more value pairs or value identifiers)] - Optional value which selects the correct database indexes for the search.
- Search [String] - Search value used to match the critera. It is possible to find more than a single match so the resulting array may have more than a single entry.
- Limit [Integer] - Optional value to limit the returned results. If zero (0) or missing, records are unlimited
- PUT (none - see Data Parameters below)
Data Parameters (Body)
- GET (none)
- PUT
- ServerGUID [String] - Optional GUID of the server that hosts the tracking database (if missing the target server GUID is used)
- ObjectGUID [String] - Optional GUID of the object being tracked (if missing the Object Identifier is used to find the object)
- ObjectName [String] - Optional name of the object being tracked or updated
- ObjectIdentifier [String] - Optional ID of the object being tracked or updated (string). For aircraft, this is the ICAO 24 bit identifier (See Aviation Transponder Interrogation Modes).
- ObjectDescription [String] - The description of the object being tracked or updated
- Classification [DWORD] - The classifier code for the object
- Latitude [Double Floating Point] - Required latitude of the object (units: degrees)
- Longitude [Double Floating Point] - Required longitude of the object (units: degrees)
- Altitude [Double Floating Point] - Optional altitude of the object (units: feet)
- AltitudeRate [Double Floating Point] - Optional rate of change of the altitude (units: feet per second)
- Heading [Double Floating Point] - Optional heading of the object (units: degrees)
- HeadingRate [Double Floating Point] - Optional rate of change of the object's heading (units: degrees per second)
- Speed [Double Floating Point] - Optional speed of object (units: MPH)
- Acceleration [Double Floating Point] - Optional acceleration of object (units: feet per second / second)
- Flags [DWORD] - Optional reporting flags - see Object Classifiers at the bottom of this page for definitions of this field
- Timestamp [DateTime] - Optional timestamp when the position was accurately known (format: MM/DD/YYYY HH:MM:SS). This is used for higher accuracy or to span timezones (report in UTC) for time / positional estimation calculations
Example GET result (http://192.168.1.10:3030/rest/objects/tracking?Latitude1=29.314922&Longitude1=-82.361859&Latitude2=27.853433&Longitude2=-80.222228&Options=1)
{
"Revision":"2.6.3.1",
"AccountGUID": "{00000000-0000-0000-0000-000000000000}",
"ServerGUID":"{16C12200-5245-4879-80ED-57827A0DBE7C}",
"ServerName":"Lab Server",
"ResultCode":0,
"ResultString":"Operation completed",
"ResultReference":"https://strasis.com/documentation/limelight-xe/reference/rest-api/global-result-codes#0",
"Result":{
"ServerGUID":"{16C12200-5245-4879-80ED-57827A0DBE7C}",
"Latitude1":29.314922,
"Longitude1":-82.361859,
"Latitude2":27.853433,
"Longitude2":-80.222228,
"Objects":[
{
"ServerGUID":"{16C12200-5245-4879-80ED-57827A0DBE7C}",
"ObjectGUID":"{00000000-0000-0000-0000-000000000000}",
"ObjectName":"SWG421",
"ObjectIdentifier":"A357BB",
"ObjectDescription":"",
"Classification":1073741824,
"Latitude":27.8887939453125,
"Longitude":-80.613219063237,
"Altitude":5791.2,
"AltitudeRate":-1.30048,
"Heading":157.499896130665,
"HeadingRate":0,
"Speed":817.873478968477,
"Acceleration":0,
"Timestamp":43687.6388978009,
"LastPositionUpdate":43687.7268844213
},
{
"ServerGUID":"{16C12200-5245-4879-80ED-57827A0DBE7C}",
"ObjectGUID":"{00000000-0000-0000-0000-000000000000}",
"ObjectName":"AAL1177 (LG)",
"ObjectIdentifier":"AC79A3",
"ObjectDescription":"",
"Classification":1073741824,
"Latitude":27.9130554199219,
"Longitude":-80.5694810399469,
"Altitude":8199.12,
"AltitudeRate":-4.8768,
"Heading":162.989238495324,
"HeadingRate":0,
"Speed":848.288782903558,
"Acceleration":0,
"Timestamp":43680.0490419907,
"LastPositionUpdate":43690.4950813194
},
{
"ServerGUID":"{16C12200-5245-4879-80ED-57827A0DBE7C}",
"ObjectGUID":"{00000000-0000-0000-0000-000000000000}",
"ObjectName":"AAL2344",
"ObjectIdentifier":"AC7581",
"ObjectDescription":"",
"Classification":1073741824,
"Latitude":27.9598388671875,
"Longitude":-80.5856675368089,
"Altitude":10355.58,
"AltitudeRate":-1.30048,
"Heading":163.208175310101,
"HeadingRate":0,
"Speed":878.25620466923,
"Acceleration":0,
"Timestamp":43685.4691268634,
"LastPositionUpdate":43692.5443242477
},
{
"ServerGUID":"{16C12200-5245-4879-80ED-57827A0DBE7C}",
"ObjectGUID":"{00000000-0000-0000-0000-000000000000}",
"ObjectName":"NKS970",
"ObjectIdentifier":"A68414",
"ObjectDescription":"",
"Classification":1073741824,
"Latitude":27.9735190181409,
"Longitude":-80.4291310029871,
"Altitude":10614.66,
"AltitudeRate":0,
"Heading":143.778434298972,
"HeadingRate":0,
"Speed":883.83098276537,
"Acceleration":0,
"Timestamp":43649.6727324306,
"LastPositionUpdate":43693.3538621991
},
{
"ServerGUID":"{16C12200-5245-4879-80ED-57827A0DBE7C}",
"ObjectGUID":"{00000000-0000-0000-0000-000000000000}",
"ObjectName":"",
"ObjectIdentifier":"A80924",
"ObjectDescription":"",
"Classification":1073741824,
"Latitude":27.9914703369141,
"Longitude":-80.4552577092097,
"Altitude":13716,
"AltitudeRate":0,
"Heading":0,
"HeadingRate":0,
"Speed":0,
"Acceleration":0,
"Timestamp":43680.5514020602,
"LastPositionUpdate":43680.5514020602
}
]
}
}
Example PUT data parameters for an aircraft (United Airlines flight UAL2374 - aircraft AB1B3E)
{
"ObjectName":"UAL2374 (LG)",
"ObjectIdentifier":"AB1B3E",
"Classification":1073741824,
"Latitude":29.0531585176112,
"Longitude":-81.3679235121783,
"Altitude":6408.42,
"AltitudeRate":7.47776,
"Heading":346.157431668822,
"Speed":797.291915192924,
"Flags":2
}
Description
This resource provides access to the logs database. It supports both the GET (read a log) and POST (enter a new log entry) methods. Logs perform two functions; the first is to store events that occur system wide and the second is to trip alarms when a particular event occurs - once or multiple times. For the GET method, the scope of the search can be restricted by adding various parameters (see below).
Supported Methods
- GET: Requests entries from one or more logs.
- POST: Add a log entry to a log.
- OPTIONS: Returns the available options for this command (GET, POST and OPTIONS).
URL Structure
- /logs
- /logs?ServerGUID=[GUID of target server, optional]&LogGUID=[GUID of the log, optional]&AccountGUID=[GUID of account, optional]&ObjectGUID=[GUID of object in log entry, optional]&EntryType=[Entry type (see below), optional]&NotificationCode=[Notification code of log entry, optional]&Limit=[integer, max entries returned]
URL Parameters
- GET:
- ServerGUID [String] - The GUID of the server managing the log database table (optional, if missing uses the target server).
- LogGUID [String] - The GUID of the log being requested (optional, if missing all logs are accessed).
- AcountGUID [String] - The GUID of an account (optional, if missing all accounts are included in the results).
- ObjectGUID [String] - The GUID of an object (optional, if missing all objects are included in the results).
- EntryType [Integer] - The entry type of the log entry
- -1 = all entry types
- 0 = Informational
- 1 = Warnings
- 2 = Errors
- 3 = Alarms (these also trigger an alarm if they meet the alarm code criteria)
- NotificationCode [Int64] - The notification code of the log entry (optional, if missing all codes are included in the results). See Notification Codes at the end of this document
- Limit [Integer] - The maximum number of entries returned (optional, if missing all log entries are returned. Note: this might take time based on network and server performance).
- POST: (none)
Data Parameters (body)
- GET: (none)
- POST:
- EntryType [Integer] - The type of log entry (see GET above).
- NotificationCode [int64] - The notification cod for the log entry. See Notification Codes at the end of this document.
- ServerGUID [String] - The server GUID that is registering the log entry.
- LogGUID [String] - The GUID of the log that should receive this entry.
- AcctGUID [String] - The GUID of the account that is associated with this log entry (if any).
- IconGUID [String] - The GUID of the icon associated with this entry (is displayed in the log viewers and is optional).
- ModuleGUID [String] - The GUID of the module that is associated with this log entry. Modules are code components within the system, but technically could be any valid GUID.
- ObjectGUID [String] - The GUID of the associated object for this entry. Typically it is the object that caused the log entry or in some other manner is connected to this entry. Providing an object GUID allows the system to look up what caused the entry and / or alarm that was associated with this entry.
- ModuleName [String] - The name of the module associated with this entry.
- Text [String] - The main text notification for the log entry.
- TextOther [String] - Secondary text associated with this log entry.
Results
Example GET (http://10.251.0.4:3030/rest/logs?Limit=1)
{
"Revision":"2.6.3.1",
"AccountGUID": "{00000000-0000-0000-0000-000000000000}",
"ServerGUID":"{16C12200-5245-4879-80ED-57827A0DBE7C}",
"ServerName":"Lab Server",
"ResultCode":0,
"ResultString":"Operation completed",
"ResultReference":"https://strasis.com/documentation/limelight-xe/reference/rest-api/global-result-codes#0",
"Result":{
"ServerGUID":"{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}",
"AccountGUID":"{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}",
"ObjectGUID":"{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}",
"LogGUID":"{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}",
"EntryType":-1,
"NotificationCode":0,
"LogEntries":[
{
"ID":20514,
"TimeStamp":"2019-11-18T17:56:07.720Z",
"EntryType":0,
"NotificationCode":67408,
"Account":"{8595B705-2648-41FA-8908-2E92DCB951BC}",
"IconGUID":"{759161EB-0000-0000-0000-000000000000}",
"ModuleGUID":"{759161EB-0000-0000-0000-000000000000}",
"ObjectGUID":"{759161EB-1010-0000-0000-000000000000}",
"Module":"Client Access Server",
"Text":"User login success",
"TextOther":"IP:192.168.0.45:60689; Session:7975",
"ServerGUID":"{16C12200-5245-4879-80ED-57827A0DBE7C}"
}
]
}
}
Example POST parameters (body)
{
"EntryType": 0,
"NotificationCode": 66816,
"Account": "{8595B705-2648-41FA-8908-2E92DCB951BC}",
"IconGUID": "{00000000-0000-0000-0000-000000000000}",
"ModuleGUID": "{00000000-0000-0000-0000-000000000000}",
"ObjectGUID": "{00000000-0000-0000-0000-000000000000}",
"Module": "Some Module / Service",
"Text": "My log entry",
"TextOther": "Some additional log information",
"ServerGUID": "{16C12200-5245-4879-80ED-57827A0DBE7C}"
}
Description
This resource provides access to the alarm manager and database.
Supported Methods
- GET: Requests alarms from the database based on criteria.
- POST: Add a new alarm to the database (will trigger an alarm event in the server).
- PUT: Updates an existing alarm state or information.
- OPTIONS: Returns the available methods for this resource (GET, POST, PUT and OPTIONS)
URL Structure
- /alarms?alarmid=[integer, ID of the alarm to retrieve]
- /alarms?alarmstate=[state of alarm, integer]&Limit=[integer, max entries returned]
URL Parameters
- GET
- AccountGUID [String] - The GUID of the account tied to an alarm (optional, if missing will return all accounts)
- PUT (none)
Result
- GET
- AlarmID [Int64]
- TimeStamp [String] - Time stamp of the alarm (ISO 8601 format)
- Priority [Integer] - Alarm priority code
- 0 - Advisory - information only
- 1 - Low - something is out of spec, etc.
- 2 - Medium - something out of spec and getting worse, etc.
- 3 - High - beyond out of spec and continuing to get worse, etc.
- 4 - Urgent - something really bad is happening
- 5 - Critical - fix it now or else really bad things are going to happen
- State [Integer] - Alarm state
- 0 - Alarm is waiting for multiple occurrences before pending
- 1 - Alarm is pending operator attention
- 2 - Alarm has been acknowledged and an operator is in control of any procedure assigned
- 3 - Alarm is suppressed which prevents further alarms from the same object with the same notification code
- 4 - Alarm is shelved which will automatically re-alarm after a fixed period
- 5-8 - (Reserved)
- 9 - Alarm has been resolved (procedure has been followed / executed)
- NotificationCode [Int64] - Code indicating type of alarm (see Notification Codes at the bottom of this document)
- Notification [String] - String representation of the notification code
- Location [String] - Location of the alarm (uses object title and description)
- Details [String] - Details of alarms. Multiple details are separated by a colon (;)
- Latitude [Float, Double] - Latitude of the alarm (if known, else 0)
- Longitude [Float, Double] - Longitude of the alarm (if known, else 0)
- Altitude [Float, Double] - Altitude in feet of the alarm (if known, else 0)
- OccurrenceCount [Integer] - how many times the alarm has occurred so far (only updated if Alarm Consolidation is enabled in System / Alarm Manager in the components tab of the console)
- ProcedureID [Int64] - ID of any assigned procedure
- TimeResolved [String] - The date and time the alarm was resolved (ISO 8601 format)
- TimeShelved [String] - The date and time the alarm was shelved (ISO 8601 format)
- Options [DWord] - Various option bits for the alarm (used internally only)
- AccountGUID [String] - The GUID of the account associated with the alarm (e.g. failed password on an account)
- ClientGUID [String] - The GUID of the client associated with the alarm (not really sure what this is for...)
- ObjectGUID [String] - The GUID of the object associated with the alarm (e.g. a device that is in alarm)
- OwnerGUID [String] - The GUID of the operator currently working the alarm (or the system GUID if not acknowledged)
- ServerGUID [String] - The GUID of the server that holds the above associations
- PUT (none - only the header is returned)
Example GET (http://192.168.0.123:3030/rest/alarms?Limit=1). Note: this returns the latest (newest) alarm.
{
"Revision":"2.6.3.1",
"AccountGUID": "{00000000-0000-0000-0000-000000000000}",
"ServerGUID":"{16C12200-5245-4879-80ED-57827A0DBE7C}",
"ServerName":"Lab Server",
"ResultCode":0,
"ResultString":"Operation completed",
"ResultReference":"https://strasis.com/documentation/limelight-xe/reference/rest-api/global-result-codes#0",
"Result":{
"ServerGUID":"{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}",
"AlarmEntries":[
{
"AlarmID":909,
"TimeStamp":"2019-11-19T17:19:54.944Z",
"Priority":3,
"State":9,
"NotificationCode":66912,
"Notification":"HTTP Server - SSL failed to connect",
"Location":"HTTP Server (Manage HTTP server properties)",
"Details":"SSL Connection Error;Error accepting connection with SSL;ErrorCode:1407609C:SSL routines:SSL23_GET_CLIENT_HELLO:http request",
"Latitude":28.7992566666667,
"Longitude":-81.397955,
"Altitude":23.4,
"OccurrenceCount":12,
"ProcedureID":0,
"TimeResolved":"2019-11-19T17:20:59.180Z",
"TimeShelved":"2019-11-19T17:19:54.944Z",
"Options":0,
"AccountGUID":"{759161EB-1000-0000-0000-000000000000}",
"ClientGUID":"{759161EB-1000-0000-0000-000000000000}",
"ObjectGUID":"{759161EB-1220-0000-0000-000000000000}",
"OwnerGUID":"{8595B705-2648-41FA-8908-2E92DCB951BC}",
"ServerGUID":"{16C12200-5245-4879-80ED-57827A0DBE7C}"
}
]
}
}
Description
This resource provides access to historical alarm statistics
Supported Methods
- GET: Requests historical data from the alarm database.
- OPTIONS: Returns the available methods for this resource (GET and OPTIONS)
URL Structure
- /alarms/statistics?Resolution=[integer, 0=days, 1=hours, 2=minutes]&Limit=[integer, max entries returned]&DateTime=[DateTime, end date / time of last entries]
URL Parameters
- GET
- ServerGUID [String] - The GUID of the server (optional). If missing, all servers will be used in gathering statistics. The GUID must take the form "{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}" (no quotes) where "X" is a hexidecimal value (0..9, A..F).
- Resolution [Integer] - Sets the resolution of the statistics gathered by the request (0=days, 1=hours, 2=minutes). Parameter is optional - if missing the resolution defaults to hours.
- Limit [Integer] - Sets the maximum number of items returned.
- DateTime [String] - Set the ending date for the statistics. It has the form MM/DD/YY hh:mm:ss where MM = 2 digit month, DD = 2 digit day, YY = 2 digit year, hh = 2 digit hour, mm = 2 digit minutes and ss = 2 digit seconds (all times are in UTC). This is optional - if missing, it defaults to the current time within the current minute (e.g. seconds = 0).
Result
- GET
- P1 (Integer) - Priority 1 - Advisory count in that period
- P2 (Integer) - Priority 2 - Low level alarm count in that period
- P3 (Integer) - Priority 3 - Medium level alarm count in that period
- P4 (Integer) - Priority 4 - High level alarm count in that period
- P5 (Integer) - Priority 5 - Urgent level alarm count in that period
- P6 (Integer) - Priority 6 - Critical level alarm count in that period
- PT (Integer) - Total alarm count in that period
Note that each array entry represents a slice in time based on the resolution starting with the oldest entries and ending with the entry that aligns with the requested date / time (or the present if no date / time is provided). The resolution setting will also affect the default limit which is 60 for minutes, 24 for hours and 30 for days. The example below shows 24 hours of 1 hour resolution slices. The last entry aligns with 4/19/21 at 11:00:00 PM GMT (11:00:00 UTC).
Example GET (http://192.168.0.123:3030/rest/alarms/statistics). Note: this returns the last 24 hours of alarms in 1 hours slices (24 entries in the array) starting at 11:00 PM (going backward to 11:00 PM of the previous day - note UTC time) for all servers.
{
"Revision": "2.6.3.1",
"AccountGUID": "{00000000-0000-0000-0000-000000000000}",
"ServerGUID": "{759161EB-1000-0000-80C2-0FD40D8DF645}",
"ServerName": "Main LXE Server",
"ResultCode": 0,
"ResultString": "Operation completed",
"ResultReference": "https://strasis.com/documentation/limelight-xe/reference/rest-api/global-result-codes#0",
"Result": {
"ServerGUID": "{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}",
"Count": 24,
"DateTime": "4/19/2021 11:00:00 PM",
"Resolution": 1,
"AlarmStatistics": [
{
"P1": 1, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 1
},
{
"P1": 0, "P2": 4, "P3": 1, "P4": 0, "P5": 0, "P6": 0, "PT": 5
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 2, "P6": 0, "PT": 2
},
{
"P1": 1, "P2": 2, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 3
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 0, "P2": 0, "P3": 1, "P4": 0, "P5": 0, "P6": 0, "PT": 1
},
{
"P1": 0, "P2": 1, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 1
},
{
"P1": 2, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 2
},
{
"P1": 0, "P2": 0, "P3": 1, "P4": 0, "P5": 0, "P6": 0, "PT": 1
},
{
"P1": 0, "P2": 0, "P3": 0, "P4": 0, "P5": 0, "P6": 0, "PT": 0
},
{
"P1": 1, "P2": 0, "P3": 0, "P4": 1, "P5": 0, "P6": 0, "PT": 2
},
{
"P1": 0, "P2": 0, "P3": 7, "P4": 0, "P5": 0, "P6": 0, "PT": 7
}
] }
}