openapi: 3.2.0
info:
title: Live Objects REST API Guide Event processing - Firing API
description: API description for Live Objects service
contact:
name: Live Objects Support
url: https://liveobjects.orange-business.com/#/cms/support
version: 2026.7.0
servers:
- url: https://liveobjects.orange-business.com
security:
- X-API-KEY: []
OAuth2.0: []
tags:
- name: Event processing - Firing
description: FiringRules and FiringGuards management
paths:
/api/v0/eventprocessing/firing-rule/{firingRuleId}:
get:
tags:
- Event processing - Firing
summary: Retrieve a FiringRule
description: 'A FiringRule applies to the matches triggered by one or many matching rules and defines when fired events must be generated.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getFiringRule
parameters:
- name: firingRuleId
in: path
description: id of the FiringRule to retrieve
required: true
schema:
type: string
responses:
'200':
description: FiringRule
content:
application/json:
schema:
$ref: '#/components/schemas/FiringRule'
put:
tags:
- Event processing - Firing
summary: Update a FiringRule
description: 'A FiringRule applies to the matches triggered by one or many matching rules and defines when fired events must be generated.
Usage of this API will be reported in your access log under ''alarming'' category.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: updateFiringRule
parameters:
- name: firingRuleId
in: path
description: id of the FiringRule to update
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FiringRule'
required: true
responses:
'204':
description: The FiringRule has been updated
delete:
tags:
- Event processing - Firing
summary: Delete a FiringRule
description: 'A FiringRule applies to the matches triggered by one or many matching rules and defines when fired events must be generated.
Usage of this API will be reported in your access log under ''alarming'' category.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: deleteFiringRule
parameters:
- name: firingRuleId
in: path
description: id of the FiringRule to delete
required: true
schema:
type: string
responses:
'204':
description: Delete request has been accepted. Return true if the FiringRule did exist, false else.
/api/v0/eventprocessing/firing-rule:
get:
tags:
- Event processing - Firing
summary: Retrieve the list of all the FiringRules or get a FiringRule by its name
description: 'A FiringRule applies to the matches triggered by one or many matching rules and defines when fired events must be generated.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: listFiringRules
parameters:
- name: name
in: query
description: name of the FiringRule to retrieve
required: false
schema:
type: string
responses:
'200':
description: list of FiringRules
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FiringRule'
post:
tags:
- Event processing - Firing
summary: Create a FiringRule
description: 'A FiringRule applies to the matches triggered by one or many matching rules and defines when fired events must be generated. Total number of FiringRules is limited. Contact the commercial team or see developer guide to get more information.
Usage of this API will be reported in your access log under ''alarming'' category.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: createFiringRule
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FiringRule'
required: true
responses:
'201':
description: FiringRule stored
content:
application/json:
schema:
$ref: '#/components/schemas/FiringRule'
/api/v0/eventprocessing/firing-guard/search:
post:
tags:
- Event processing - Firing
summary: Get FiringGuards linked to a FiringRule, and where FiringGuards selection criteria match.
description: 'A FiringGuard keeps a FiringRule with an already ''fired'' context from re-firing again. It applies only for ''ONCE'' and ''SLEEP'' types of FiringRule; and take into account the aggregationKeys values of data messages that triggered the previous event.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getFiringGuards
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FiringGuardMatchRequest'
required: true
responses:
'200':
description: FiringGuards that match the criteria.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FiringGuard'
/api/v0/eventprocessing/firing-guard/{firingGuardId}:
get:
tags:
- Event processing - Firing
summary: Get a FiringGuard
description: 'A FiringGuard keeps a FiringRule with an already ''fired'' context from re-firing again. It applies only for ''ONCE'' and ''SLEEP'' types of FiringRule; and take into account the aggregationKeys values of data messages that triggered the previous event.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getFiringGuard
parameters:
- name: firingGuardId
in: path
description: id of the FiringGuard
required: true
schema:
type: string
responses:
'200':
description: FiringGuard
content:
application/json:
schema:
$ref: '#/components/schemas/FiringGuard'
delete:
tags:
- Event processing - Firing
summary: Remove a FiringGuard
description: 'A FiringGuard keeps a FiringRule with an already ''fired'' context from re-firing again. It applies only for ''ONCE'' and ''SLEEP'' types of FiringRule; and take into account the aggregationKeys values of data messages that triggered the previous event.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: removeFiringGuard
parameters:
- name: firingGuardId
in: path
description: id of the FiringGuard to remove
required: true
schema:
type: string
responses:
'204':
description: FiringGuard has been reset.
/api/v0/eventprocessing/firing-guard:
delete:
tags:
- Event processing - Firing
summary: Remove the FiringGuards linked to FiringRule, and where FiringGuards selection criteria match.
description: 'A FiringGuard keeps a FiringRule with an already ''fired'' context from re-firing again. It applies only for ''ONCE'' and ''SLEEP'' types of FiringRule; and take into account the aggregationKeys values of data messages that triggered the previous event.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: removeFiringGuards
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FiringGuardMatchRequest'
required: true
responses:
'200':
description: FiringGuards have been removed. Return actual number of removed FiringGuards.
content:
application/json:
schema:
type: integer
format: int32
components:
schemas:
FiringGuard:
type: object
description: Hold a FiringRule from triggering a FiredEvent if it has already been sent for the same aggregationKeys. Will exist only for FiringRule of type ONCE or SLEEP.
properties:
id:
type: string
description: id of the FiringGuard.
firingRuleId:
type: string
description: id of the FiringRule linked to this FiringGuard.
tenantId:
type: string
description: identifier of tenant account this FiringRule belongs to .
matchingContext:
$ref: '#/components/schemas/MatchingContext'
description: matchingContext that triggered this FringGuard.
guardCriteria:
type: array
description: pairs of aggregationKey/value that are hold by this FiringGuard
items:
$ref: '#/components/schemas/SelectionCriteria'
created:
type: string
format: date-time
description: creation of this FiringGuard
expireAt:
type: string
format: date-time
description: expiration of this FiringGuard
required:
- created
- firingRuleId
- guardCriteria
- id
- matchingContext
- tenantId
MatchingContext:
type: object
description: 'hold the Matching context : data, MatchingRule and timestamp of the match'
properties:
tenantId:
type: string
timestamp:
type: string
matchingRule:
$ref: '#/components/schemas/MatchingRule'
description: MatchingRule with dataPredicate that match the data
data:
$ref: '#/components/schemas/NewData'
description: data that triggered the match
required:
- data
- matchingRule
MatchingRule:
type: object
description: Defines the dataPredicate that will be applied to all new data. When it matches, then it may trigger a FiredEvent based on linked FiringRules defined.
properties:
id:
type: string
description: id of the MatchingRule. Should be null when used for POST, and set for PUT.
readOnly: true
name:
type: string
description: name of the MatchingRule. Must be unique.
enabled:
type: boolean
description: activate or not the MatchingRule. Default is false.
dataPredicate:
description: the JsonLogic (http://jsonlogic.com/) pattern matching that will trigger an event for each new data that match this predicate. The JsonLogic predicate needs to return a boolean. In addition to the existing JsonLogic operators (logic and boolean, numeric, string, array), Live Objects provides geographic operators (distance, inside, insideindex, closeto, closetoindex), context operator (ctx) to retrieve data stored via the Context APIs and miscellaneous operators ('get' to retrieve an element from an array)...e.g. '{">":[{"var":"value.temp"},{"ctx":"temperature.threshold"}]}'.
required:
- dataPredicate
- name
Location:
type: object
description: geographic location
properties:
lat:
type: number
format: double
description: Latitude value
example: 45.000009
lon:
type: number
format: double
description: Longitude value
example: -30.00001
alt:
type: number
format: double
description: Altitude value
example: 5.00001
accuracy:
type: number
format: double
description: Accuracy value
example: 10.0
provider:
type: string
description: Provider of the location
example: GPS
required:
- lat
- lon
NewData:
type: object
properties:
streamId:
type: string
timestamp:
type: string
location:
$ref: '#/components/schemas/Location'
model:
type: string
value: {}
tags:
type: array
items:
type: string
extra:
type: object
additionalProperties:
type: string
metadata: {}
created:
type: string
required:
- streamId
- timestamp
FiringRule:
type: object
description: Defines if and how the matched data from MatchingRules will fire an event. You can restrict it for instance to trigger maximum 1 event per hour, or only once until you use the FiringGuard API to re-allow it. Associated to aggregationKeys, it will apply the firing type (eg 1 per hour) based on the value of these keys (eg 'streamId').
properties:
id:
type: string
description: id of the FiringRule. Should be null when used for POST, and set for PUT.
readOnly: true
name:
type: string
description: name of the FiringRule. Must be unique.
enabled:
type: boolean
description: activate or not the FiringRule. Default is false.
matchingRuleIds:
type: array
description: the list of MatchingRule ids that will be handeld by this FiringRule.
items:
type: string
aggregationKeys:
type: array
description: the list of jsonPath in the Data that will define on which group of data this FiringRule should be set. For instance 'streamId', 'metadata.source', 'value.type'. This field has no use in 'ALWAYS' firingType. For 'ONCE' or 'SLEEP' firingType, the rule will be triggerred based on the value of these keys. For instance, if aggregationKeys is set to ['streamId'] and firingType is set to 'ONCE', then only 1 event will be fired per distinct streamId.
items:
type: string
firingType:
type: string
description: 'Defines the type of firing mechanism : ONCE, SLEEP, or ALWAYS. If the frequency of the firing rule is defined as ONCE or SLEEP then firing guards are created in the system to prevent new generation of fired events for a given firing context, built by the aggregationKeys parameter. You can then manage these FiringGuards through dedicated APIs. SLEEP mode will automatically remove the linked FiringGuard after the duration defined by the ''sleepDuration'' parameter.'
enum:
- ALWAYS
- ONCE
- SLEEP
sleepDuration:
type: string
description: 'sleep duration of the FiringRule. Is defined as a ISO-8601 Period string, restricted to days, hours, minutes and seconds. 1 day will always be equivalent to 24H, regardless of daylight saving time. eg. : ''P1D'', ''PT30M''. Must be set only for ''SLEEP'' FiringType.'
required:
- firingType
- name
FiringGuardMatchRequest:
type: object
description: search parameters to select FiringGuard to remove
properties:
firingRuleId:
type: string
description: firingRuleId linked to the FiringGuard to reset
minLength: 1
selectionCriteria:
type: array
description: criteria that should match the FiringGuard to reset
items:
$ref: '#/components/schemas/SelectionCriteria'
required:
- firingRuleId
SelectionCriteria:
type: object
properties:
keyPath:
type: string
description: json path of the field to select, defined by the FiringRule's aggregationKeys. e.g. 'streamId', 'metadata.connector'...
value:
description: value of the aggregationKey to match. e.g. 'urn:lo:mqtt:device001', 'lwm2m', ...
required:
- keyPath
- value
securitySchemes:
X-API-KEY:
type: apiKey
name: X-API-KEY
in: header
OAuth2.0:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://liveobjects.orange-business.com/api/v1/oauth2/authorize
tokenUrl: https://liveobjects.orange-business.com/api/v1/oauth2/token
refreshUrl: https://liveobjects.orange-business.com/api/v1/oauth2/token
scopes:
API_KEY_R: Read parameters and status of an API key.
API_KEY_W: Create, modify, disable an API key.
BOOTSTRAP_R: Read parameters and status of the LwM2M Bootstrap configurations and entries.
BOOTSTRAP_W: Create ans modify LwM2M Bootstrap configurations and entries.
BUS_CONFIG_R: Read config parameters of a FIFO queue.
BUS_CONFIG_W: Create, modify a FIFO queue.
BUS_R: Read data on the Live Objects bus. Minimum permission for the API key of an application collecting data on Live Objects in MQTT(s).
BUS_W: Publish data on the Live Objects bus.
CAMPAIGN_R: Read parameters and status of a massive deployment campaign on your Device Fleet.
CAMPAIGN_W: Create, modify a campaign on your Device Fleet.
CONNECTOR_ACCESS: Role to set on a external connector API key to allow only MQTT external connector mode
DATA_PROCESSING_R: Read parameters and status of an event processing rule or a Data decoder.
DATA_PROCESSING_W: Create, modify, disable an event processing rule or a Data decoder.
DATA_R: Read the data collected by the Store Service or search into this data using the Search Service.
DATA_W: Insert a data record to the Store Service. Minimum permission required for the API key of a device pushing data to Live Objects in HTTPS.
DEVICE_ACCESS: Role to set on a Device API key to allow only MQTT Device mode
DEVICE_R: Read parameters and status of a Device management.
DEVICE_W: Create, modify, disable a Device management, send command, modify config, update resource of a Device.
LOGS_R: Read the logs collected by the Audit Log service. This right allows users to use the Audit Log service as debugging tool.
SETTINGS_R: Read the tenant account custom settings.
SETTINGS_W: Create, modify tenant account custom settings.
USER_R: Read parameters and status of a user.
USER_W: Create, modify, disable a user.
externalDocs:
description: Live Objects Developer Guide
url: https://liveobjects.orange-business.com/doc/html/lo_manual_v2.html
x-examples: ''