openapi: 3.2.0 info: title: Live Objects REST API Guide Triggers and Actions 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: Triggers and Actions description: Action policies on event and messages paths: /api/v1/event2action/diagnostics/actionPolicies/{policyId}/actions/{actionId}/suspended: put: tags: - Triggers and Actions summary: Resume a suspended action description: 'Diagnostic of an ActionPolicy will indicate if the actions are suspended or not, and the reason why.
When the action leads to too many failures (for example Http Push with 5xx responses, FIFO never subbed...) the platform will automatically suspend the action.
Once suspended, you can use the resume API to re-enable the action. Please note that if the underlying issue is not fixed, the action will be suspended again.
Usage of this API will be reported in your access log under ''routing'' category.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: updateActionSuspension
parameters:
- name: policyId
in: path
required: true
schema:
type: string
minLength: 1
- name: actionId
in: path
required: true
schema:
type: string
minLength: 1
requestBody:
content:
application/json:
schema:
type: boolean
examples:
Request body:
description: Use 'false' in the request body to resume a suspended action.
value: false
required: true
responses:
'204':
description: Action diagnostic successfully updated
'404':
description: 'Unknown Action diagnostic '
/api/v1/event2action/actionPolicies/{policyId}:
get:
tags:
- Triggers and Actions
summary: Retrieve an ActionPolicy
description: 'Triggers and Actions APIs allow you to create action policies that will automatically trigger actions (webhook, push to FIFO, SMS, email, push to an Azure Event Hub server) when specific events or datamessages (''triggers'') are received by the platform.
These triggers and actions endpoints are related to the routing & alarming notification feature.
Please see the dedicated sections in our developer guide for more details.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getActionPolicyV1
parameters:
- name: policyId
in: path
description: id of the ActionPolicy to retrieve
required: true
schema:
type: string
- name: showSensitiveInformation
in: query
description: whether or not to show sensitive information, such as HttpPush headers, Azure secrets
required: false
schema:
type: boolean
responses:
'200':
description: ActionPolicy Successfully retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
'404':
description: Unknown ActionPolicy
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
put:
tags:
- Triggers and Actions
summary: Create or update an ActionPolicy
description: 'Triggers and Actions APIs allow you to create action policies that will automatically trigger actions (webhook, push to FIFO, SMS, email, push to an Azure Event Hub server) when specific events or datamessages (''triggers'') are received by the platform.
These triggers and actions endpoints are related to the routing & alarming notification feature.
Please see the dedicated sections in our developer guide for more details.
Usage of this API will be reported in your access log under ''routing'' category.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: updateActionPolicyV1
parameters:
- name: policyId
in: path
description: id of the ActionPolicy to save. Max length is 100.
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
examples:
PUT with no actionIds:
description: This example will update an action policy with new actions (action ids not provided)
value:
id: 000000-0000-0000-0000-00000000
name: name-aea80c1d-5777-4e20-822c-5e6871f428e5
enabled: true
triggers:
deviceStatus:
version: 1
filter:
connectors:
- mqtt
groupPaths:
- path: /lyon
includeSubPath: true
actions:
emails:
- to:
- notification@orange.com
cc:
- cc@orange.com
cci:
- cci@orange.com
subjectTemplate: State change for {{stateKey}}
contentTemplate: '{{stateKey}} change from state {{previousState}} to state {{newState}} at {{timestamp}}'
sms:
- destinationPhoneNumbers:
- '+33601234567'
contentTemplate: '{{stateKey}} new state {{newState}} at {{timestamp}}'
required: true
responses:
'200':
description: ActionPolicy created or updated
'404':
description: Unknown ActionPolicy
delete:
tags:
- Triggers and Actions
summary: Delete an ActionPolicy
description: 'Triggers and Actions APIs allow you to create action policies that will automatically trigger actions (webhook, push to FIFO, SMS, email, push to an Azure Event Hub server) when specific events or datamessages (''triggers'') are received by the platform.
These triggers and actions endpoints are related to the routing & alarming notification feature.
Please see the dedicated sections in our developer guide for more details.
Usage of this API will be reported in your access log under ''routing'' category.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: deleteActionPolicyV1
parameters:
- name: policyId
in: path
description: id of the ActionPolicy to delete
required: true
schema:
type: string
responses:
'204':
description: ActionPolicy Successfully deleted
'404':
description: Unknown ActionPolicy
/api/v1/event2action/actionPolicies/{policyId}/enabled:
put:
tags:
- Triggers and Actions
summary: Enable or Disable an ActionPolicy
description: 'Triggers and Actions APIs allow you to create action policies that will automatically trigger actions (webhook, push to FIFO, SMS, email, push to an Azure Event Hub server) when specific events or datamessages (''triggers'') are received by the platform.
These triggers and actions endpoints are related to the routing & alarming notification feature.
Please see the dedicated sections in our developer guide for more details.You can use this API to re-enabled a suspended policy.
Usage of this API will be reported in your access log under ''routing'' category.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: setEnabledField
parameters:
- name: policyId
in: path
description: id of the ActionPolicy to update
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
type: boolean
description: Use 'true' to enable and 'false' to disable.
required: true
responses:
'200':
description: ActionPolicy 'enabled' field updated
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
'404':
description: Unknown ActionPolicy
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
/api/v1/event2action/actionPolicies:
get:
tags:
- Triggers and Actions
summary: List ActionPolicies
description: 'Triggers and Actions APIs allow you to create action policies that will automatically trigger actions (webhook, push to FIFO, SMS, email, push to an Azure Event Hub server) when specific events or datamessages (''triggers'') are received by the platform.
These triggers and actions endpoints are related to the routing & alarming notification feature.
Please see the dedicated sections in our developer guide for more details.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: listActionPoliciesV1
parameters:
- name: triggerType
in: query
description: Filter on action policy trigger type.
required: false
schema:
type: string
enum:
- dataMessage
- stateChange
- deviceActivity
- matchingFired
- deviceStatus
- commandStatus
- deviceCreated
- deviceDeleted
- loraNetwork
- loraGatewayStatus
- connectivityManagementPlatformEvent
- alarmEvent
responses:
'200':
description: ActionPolicies Successfully retrieved
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActionPolicy'
post:
tags:
- Triggers and Actions
summary: Create an ActionPolicy
description: 'Triggers and Actions APIs allow you to create action policies that will automatically trigger actions (webhook, push to FIFO, SMS, email, push to an Azure Event Hub server) when specific events or datamessages (''triggers'') are received by the platform.
These triggers and actions endpoints are related to the routing & alarming notification feature.
Please see the dedicated sections in our developer guide for more details.
Usage of this API will be reported in your access log under ''routing'' category.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.'
operationId: createActionPolicyV1
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
examples:
POST ActionPolicy:
description: This example will create a new action policy (action ids not provided)
value:
name: name-aea80c1d-5777-4e20-822c-5e6871f428e5
enabled: true
triggers:
deviceStatus:
version: 1
filter:
connectors:
- mqtt
groupPaths:
- path: /lyon
includeSubPath: true
actions:
emails:
- to:
- notification@orange.com
cc:
- cc@orange.com
cci:
- cci@orange.com
subjectTemplate: State change for {{stateKey}}
contentTemplate: '{{stateKey}} change from state {{previousState}} to state {{newState}} at {{timestamp}}'
sms:
- destinationPhoneNumbers:
- '+33601234567'
contentTemplate: '{{stateKey}} new state {{newState}} at {{timestamp}}'
required: true
responses:
'200':
description: ActionPolicy created
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicy'
/api/v1/event2action/metrics/actionPolicies/{policyId}/actions/{actionId}:
get:
tags:
- Triggers and Actions
summary: Retrieve the metrics of an action. BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.
description: 'Metrics of an ActionPolicy (success, failures, supervision, response time...), hourly or daily based.
Not all types of action have metrics. Metrics are not in real time, updated several times a day, and are estimated.
All days and hours are UTC. A maximum period of 31 days is allowed. When ''hourly'' parameter is true, then the maximum period allowed is 7 days.
You can retrieve additional information on errors in your Activity logs.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getMetricsByActionId
parameters:
- name: policyId
in: path
required: true
schema:
type: string
minLength: 1
- name: actionId
in: path
required: true
schema:
type: string
minLength: 1
- name: hourly
in: query
description: when true, also retrieve detailed hour by hour metrics. hourly metrics are limited to 7 days, else the limit is 1 month of metrics. Default value is false.
required: false
schema:
type: boolean
default: false
- name: fromDay
in: query
description: Day from which retrieve the metrics. yyyy-MM-dd format (e.g. '2024-01-01'). If not set, maximum of 1 month will be retrieved.
required: false
schema:
type: string
- name: toDay
in: query
description: Day until which retrieve the metrics. yyyy-MM-dd format (e.g. '2024-01-12'). If not set, today is used.
required: false
schema:
type: string
- name: timeZoneOffset
in: query
description: 'Time zone offset to apply, ISO-8601 format restricted to hours : ''±[hh]'' (e.g. ''+02'', ''-01''). Must be between [-18, +18]. Offset minutes, if any, will be ignored.Depending on your HTTP client, ''+'' character may have to be url encoded into ''%2B''.'
required: false
schema:
type: string
responses:
'200':
description: Action metrics successfully retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/ActionMetrics'
'404':
description: Unknown Action metrics
content:
application/json:
schema:
$ref: '#/components/schemas/ActionMetrics'
/api/v1/event2action/fifos:
get:
tags:
- Triggers and Actions
summary: Listing FIFO with their linked actions.
description: 'Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: listFifosWithActions
parameters:
- name: withStatus
in: query
description: when true, also retrieve fifo status
required: false
schema:
type: boolean
default: false
responses:
'200':
description: The FIFO status list
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/FifoWithActions'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/WebErrorResponse'
'403':
description: Request forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/WebErrorResponse'
'429':
description: Too Many Request
content:
application/json:
schema:
$ref: '#/components/schemas/WebErrorResponse'
/api/v1/event2action/fifos/{fifoName}:
get:
tags:
- Triggers and Actions
summary: Getting a FIFO with linked actions
description: 'Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getFifoWithActions
parameters:
- name: fifoName
in: path
description: name of the fifo. Fifo name must respect the following regular expression [A-Za-z\d\-_~]+ (max 255 characters)
required: true
schema:
type: string
- name: withStatus
in: query
description: when true, also retrieve fifo status
required: false
schema:
type: boolean
default: false
responses:
'200':
description: A FIFO
content:
application/json:
schema:
$ref: '#/components/schemas/FifoWithActions'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/WebErrorResponse'
'403':
description: Request forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/WebErrorResponse'
'404':
description: FIFO not found
content:
application/json:
schema:
$ref: '#/components/schemas/WebErrorResponse'
/api/v1/event2action/diagnostics/actionPolicies:
get:
tags:
- Triggers and Actions
summary: Retrieve action diagnostics
description: 'Diagnostic of an ActionPolicy will indicate if the actions are suspended or not, and the reason why.
When the action leads to too many failures (for example Http Push with 5xx responses, FIFO never subbed...) the platform will automatically suspend the action.
Once suspended, you can use the resume API to re-enable the action. Please note that if the underlying issue is not fixed, the action will be suspended again.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getAllDiagnosticsForTenant
responses:
'200':
description: Action diagnostics successfully retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/ActionPolicyDiagnosticsList'
/api/v1/event2action/diagnostics/actionPolicies/{policyId}:
get:
tags:
- Triggers and Actions
summary: Retrieve all action diagnostics of an action policy
description: 'Diagnostic of an ActionPolicy will indicate if the actions are suspended or not, and the reason why.
When the action leads to too many failures (for example Http Push with 5xx responses, FIFO never subbed...) the platform will automatically suspend the action.
Once suspended, you can use the resume API to re-enable the action. Please note that if the underlying issue is not fixed, the action will be suspended again.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getDiagnosticsByPolicyId
parameters:
- name: policyId
in: path
required: true
schema:
type: string
minLength: 1
responses:
'200':
description: Action diagnostics successfully retrieved
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ActionDiagnostic'
/api/v1/event2action/diagnostics/actionPolicies/{policyId}/actions/{actionId}:
get:
tags:
- Triggers and Actions
summary: Retrieve an action diagnostic
description: 'Diagnostic of an ActionPolicy will indicate if the actions are suspended or not, and the reason why.
When the action leads to too many failures (for example Http Push with 5xx responses, FIFO never subbed...) the platform will automatically suspend the action.
Once suspended, you can use the resume API to re-enable the action. Please note that if the underlying issue is not fixed, the action will be suspended again.
Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.'
operationId: getDiagnosticByActionId
parameters:
- name: policyId
in: path
required: true
schema:
type: string
minLength: 1
- name: actionId
in: path
required: true
schema:
type: string
minLength: 1
responses:
'200':
description: Action diagnostic successfully retrieved
content:
application/json:
schema:
$ref: '#/components/schemas/ActionDiagnostic'
'404':
description: 'Unknown Action diagnostic '
content:
application/json:
schema:
$ref: '#/components/schemas/ActionDiagnostic'
components:
schemas:
FifoMessageCounters:
type: object
properties:
daily:
type: array
items:
$ref: '#/components/schemas/DailyFifoMessageDeliveryCounters'
hourly:
type: array
items:
$ref: '#/components/schemas/HourlyFifoMessageDeliveryCounters'
DeviceStatusTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/DeviceStatusFilter'
description: Filtering criterias. AND operator is used between filter criterias. OR operator is used in the list in each filter criteria.
required:
- version
ActionReference:
type: object
properties:
actionPolicy:
$ref: '#/components/schemas/ActionPolicyReference'
description: Information about the action policy that contains this action
actionId:
type: string
description: Identifier of the action
HttpDeliveryCounters:
type: object
properties:
daily:
type: array
items:
$ref: '#/components/schemas/DailyHttpDeliveryCounters'
hourly:
type: array
items:
$ref: '#/components/schemas/HourlyHttpDeliveryCounters'
MatchingFiredTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/MatchingFiredFilter'
description: Filtering criterias. AND operator is used between filter criterias. OR operator is used in the list in each filter criteria.
required:
- version
HourlyHttpDeliveryCounters:
type: object
properties:
day:
type: string
description: day of the counters, with yyyy-MM-dd format
example: '2024-01-01'
processed:
type: integer
format: int32
description: total number of messages that have been processed
delivered:
type: integer
format: int32
description: number of messages that have been successfully delivered on first try
deliveredWithRetry:
type: integer
format: int32
description: number of messages that have been successfully delivered but needed at least a retry
expired:
type: integer
format: int32
description: number of messages that have not been delivered because retry is disabled or max retry count has been reached (after 5xx, timeout...)
failed:
type: integer
format: int32
description: number of messages that have not been delivered due to a 4xx or 3xx
overflow:
type: integer
format: int32
description: number of messages that have been dropped due to queue overflow (maximum number of waiting messages reached)
canceled:
type: integer
format: int32
description: number of messages that have been canceled (e.g. action policy deleted)
meanDeliveryTimeMs:
type: integer
format: int64
description: mean delivery time of successfully delivered messages. Start time is set when the original message has been handled in LO.
hour:
type: integer
format: int32
description: hour of the counters (0-23)
example: 23
HourlyHttpRequestCounters:
type: object
properties:
day:
type: string
description: day of the counters, with yyyy-MM-dd format
example: '2024-01-01'
requests:
type: integer
format: int32
description: number of Http requests sent
success:
type: integer
format: int32
description: number of 2xx responses for the Http requests
clientErrors:
type: integer
format: int32
description: number of 4xx responses for the Http requests
serverErrors:
type: integer
format: int32
description: number of 5xx responses for the Http requests
networkErrors:
type: integer
format: int32
description: number of network errors (timeout, SSL...) for the Http requests
otherErrors:
type: integer
format: int32
description: number of other errors (3xx...) for the Http requests
meanSuccessResponseTimeMs:
type: integer
format: int64
description: mean response time of 2xx requests
hour:
type: integer
format: int32
description: hour of the metrics (0-23)
example: 5
ActionMetrics:
type: object
properties:
updated:
type: string
format: date-time
description: timestamp of the last update of these metrics
httpPush:
$ref: '#/components/schemas/HttpPushMetrics'
azureEventHub:
$ref: '#/components/schemas/HttpPushMetrics'
fifo:
$ref: '#/components/schemas/FifoMetrics'
HourlyFifoSupervision:
type: object
properties:
day:
type: string
description: day of the counters, with yyyy-MM-dd format
example: '2024-01-01'
hour:
type: integer
format: int32
description: hour of the metrics (0-23)
example: 5
fillRatioPercent:
type: number
format: float
description: fillRatio percent sampled at this hour
subscribed:
type: boolean
description: true if the FIFO has been connected through MQTT SUB at least once during this hour
incoming:
type: integer
format: int32
description: number of messages pushed to FIFO during this hour
subMessageCount:
type: integer
format: int32
description: number of messages published to remote application through a MQTT SUB connection during this hour
DataMessageFilter:
type: object
properties:
connectors:
type: array
description: List of filtered connectors ('mqtt', 'lora', 'lwm2m', 'sms', 'x-connector', 'http'). Null or empty to accept all connectors.
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
deviceIds:
type: array
description: List of filtered deviceIds. Null or empty to accept all devices
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
groupPaths:
type: array
description: List of filtered group paths. Null or empty to accept all group paths
items:
$ref: '#/components/schemas/GroupPath'
maxItems: 20
minItems: 0
uniqueItems: true
tags:
type: array
description: List of groups of tags that should be contained in message tags. There is a match if at least one group of tags is a match. A group of tags is a match if the tags of the message contains all elements of this group.
e.g. [["ALERT"]] will match all messages containing tag 'ALERT'.
e.g. [["HIGH", "ALERT"],["PROD"]] will match messages with either tag 'PROD' or both tags 'ALERT' and 'HIGH'.
example:
- - ALERT
items:
type: array
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
maxItems: 20
minItems: 0
uniqueItems: true
DeviceActivityFilter:
type: object
properties:
deviceIds:
type: array
description: List of filtered deviceIds. Null or empty to accept all devices
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
ruleIds:
type: array
description: List of filtered rule Ids. Null or empty to accept all rule Ids
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
HttpPushAction:
type: object
description: Action that will push the message to a Web Server
properties:
id:
type: string
description: An action id. Set by Live Objects.
readOnly: true
type:
type: string
description: 'Action type: httpPush, set by Live Objects'
readOnly: true
webhookUrl:
type: string
description: The url of the target service webhook (only ports 80, 443, 8080, 8443 and 9243 are allowed).
headers:
type: object
additionalProperties:
type: array
items:
type: string
description: A map of headers to be passed in the http POST headers
signingSecret:
type: string
description: The secret used to compute the HMAC signature of the HTTP push request. The signature is then added as a header to the request, allowing the receiving server to verify its authenticity and integrity.
maxLength: 128
minLength: 20
signingSecretUpdated:
type: string
format: date-time
description: Secret update timestamp, automaticaly set by LiveObjects
readOnly: true
jsonPath:
type: string
description: The json path to extract from the considered message (or event), it will be taken as the root datacontext object when combined with a mustache template in content. e.g. 'value', 'data.metadata'.
content:
type: string
description: A raw string or a mustache (https://mustache.github.io/mustache.5.html) template describing the webhook body. If empty, the raw event will be used.
retryOnFailure:
type: boolean
description: Indicate if a retry policy should be set up in case of a http push delivery failure. Default is false.
required:
- webhookUrl
DeviceStatusFilter:
type: object
properties:
connectors:
type: array
description: List of filtered connectors ('mqtt', 'lora', 'lwm2m', 'sms', 'x-connector', 'http'). Null or empty to accept all connectors.
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
groupPaths:
type: array
description: List of filtered group paths. Null or empty to accept all group paths
items:
$ref: '#/components/schemas/GroupPath'
maxItems: 20
minItems: 0
uniqueItems: true
FifoPublishAction:
type: object
description: Action that will forward the message to a FIFO
properties:
id:
type: string
description: An action id. Set by Live Objects.
readOnly: true
type:
type: string
description: 'Action type: fifoPublish, set by Live Objects'
readOnly: true
fifoName:
type: string
description: Target fifo to publish into. Refer to Topics API for managing these fifos
noRetention:
type: boolean
description: if true, the messages will be discarded if not delivered immediately (i.e. no MQTT client is connected and subbing to the fifo). This field will be automatically set to true if the targeted fifo has its messageTtl set to 0. Default value is false.
required:
- fifoName
FifoWithActions:
type: object
description: body of FIFO status
properties:
name:
type: string
description: Topic name of the FIFO
example: MyFIFOName
status:
$ref: '#/components/schemas/Status'
description: Status of the FIFO
linkedActions:
type: array
description: Actions that target this FIFO
items:
$ref: '#/components/schemas/ActionReference'
LoraGatewayStatusTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
required:
- version
ConnectivityManagementPlatformFilter:
type: object
properties:
eventPayloadTypes:
type: array
description: List of filtered event types.
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
DeviceCreatedFilter:
type: object
properties:
connectors:
type: array
description: List of filtered connectors ('mqtt', 'lora', 'lwm2m', 'sms', 'x-connector', 'http'). Null or empty to accept all connectors.
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
tags:
type: array
description: List of groups of tags that should be contained in message tags. There is a match if at least one group of tags is a match. A group of tags is a match if the tags of the message contains all elements of this group.
e.g. [["ALERT"]] will match all messages containing tag 'ALERT'.
e.g. [["HIGH", "ALERT"],["PROD"]] will match messages with either tag 'PROD' or both tags 'ALERT' and 'HIGH'.
example:
- - ALERT
items:
type: array
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
maxItems: 20
minItems: 0
uniqueItems: true
groupPaths:
type: array
description: List of filtered group paths. Null or empty to accept all group paths
items:
$ref: '#/components/schemas/GroupPath'
maxItems: 20
minItems: 0
uniqueItems: true
DeviceDeletedFilter:
type: object
properties:
connectors:
type: array
description: List of filtered connectors ('mqtt', 'lora', 'lwm2m', 'sms', 'x-connector', 'http'). Null or empty to accept all connectors.
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
tags:
type: array
description: List of groups of tags that should be contained in message tags. There is a match if at least one group of tags is a match. A group of tags is a match if the tags of the message contains all elements of this group.
e.g. [["ALERT"]] will match all messages containing tag 'ALERT'.
e.g. [["HIGH", "ALERT"],["PROD"]] will match messages with either tag 'PROD' or both tags 'ALERT' and 'HIGH'.
example:
- - ALERT
items:
type: array
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
maxItems: 20
minItems: 0
uniqueItems: true
groupPaths:
type: array
description: List of filtered group paths. Null or empty to accept all group paths
items:
$ref: '#/components/schemas/GroupPath'
maxItems: 20
minItems: 0
uniqueItems: true
HttpPushMetrics:
type: object
properties:
httpRequestCounters:
$ref: '#/components/schemas/HttpRequestCounters'
description: counters of Http requests sent. 1 message delivery can trigger several http requests, in case of retry.
messageDeliveryCounters:
$ref: '#/components/schemas/HttpDeliveryCounters'
description: counters for message delivery. Day and hour refer to the date when the original message has been handled in LO.
AlarmEventTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/AlarmEventFilter'
description: Filter to apply on alarm events. If not specified, all alarm events will be targeted by the action policy
required:
- version
DeviceActivityTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/DeviceActivityFilter'
description: Filtering criterias. AND operator is used between filter criterias. OR operator is used in the list in each filter criteria.
required:
- version
CommandStatusFilter:
type: object
properties:
status:
type: array
description: List of command status devices. Null or empty to accept all status
items:
type: string
enum:
- PENDING
- PROCESSING
- PROCESSED
- CANCELED
- ERROR
- RETRYING
- EXPIRED
- UNKNOWN
maxItems: 20
minItems: 0
uniqueItems: true
FifoMetrics:
type: object
properties:
messageDeliveryCounters:
$ref: '#/components/schemas/FifoMessageCounters'
description: counters for Fifo messages (processed, delivered, overflow...). Day and hour refer to the date when the original message has been handled in LO.
supervision:
$ref: '#/components/schemas/FifoSupervision'
description: supervision information regarding Fifo
DeviceDeletedTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/DeviceDeletedFilter'
description: Filtering criterias. AND operator is used between filter criterias. OR operator is used in the list in each filter criteria.
required:
- version
ActionDiagnostic:
type: object
properties:
tenantId:
type: string
actionId:
type: string
actionPolicyId:
type: string
actionType:
type: string
minLength: 1
lastSuspension:
$ref: '#/components/schemas/Suspension'
lastResumption:
$ref: '#/components/schemas/Resumption'
updated:
type: string
format: date-time
lastActionMetricsUpdate:
type: string
format: date-time
suspended:
type: boolean
id:
type: string
required:
- actionType
Actions:
type: object
properties:
emails:
type: array
description: A collection of email actions
items:
$ref: '#/components/schemas/EmailAction'
sms:
type: array
description: A collection of sms actions
items:
$ref: '#/components/schemas/SMSAction'
httpPush:
type: array
description: A collection of webhook actions
items:
$ref: '#/components/schemas/HttpPushAction'
fifoPublish:
type: array
description: A collection of fifo publish actions
items:
$ref: '#/components/schemas/FifoPublishAction'
azureEventHubs:
type: array
description: A collection of Azure Event Hubs actions
items:
$ref: '#/components/schemas/AzureEventHubsAction'
LoraNetworkTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/LoraNetworkFilter'
description: Filtering criterias. AND operator is used between filter criterias. OR operator is used in the list in each filter criteria.
required:
- version
ActionPolicyDiagnostics:
type: object
properties:
actionPolicyId:
type: string
actions:
type: array
items:
$ref: '#/components/schemas/ActionDiagnostic'
ActionPolicyReference:
type: object
properties:
name:
type: string
description: Name of the action policy
id:
type: string
description: Identifier of the action policy
triggerTypes:
type: array
items:
type: string
description: Types of triggers configured in the action policy
enum:
- dataMessage
- stateChange
- deviceActivity
- matchingFired
- deviceStatus
- commandStatus
- deviceCreated
- deviceDeleted
- loraNetwork
- loraGatewayStatus
- connectivityManagementPlatformEvent
- alarmEvent
DailyFifoSupervision:
type: object
properties:
day:
type: string
description: day of the counters, with yyyy-MM-dd format
example: '2024-01-01'
maxFillRatioPercent:
type: number
format: float
description: maximum fillRatio percent reached for the day (among hourly samples)
subscribed:
type: boolean
description: true if the FIFO has been connected through MQTT SUB at least once during this day
incoming:
type: integer
format: int32
description: number of messages pushed to FIFO during this day
subMessageCount:
type: integer
format: int32
description: number of messages published to remote application through a MQTT SUB connection during this day
StateChangeTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/StateChangeFilter'
description: Filtering criterias. AND operator is used between filter criterias. OR operator is used in the list in each filter criteria.
required:
- version
DailyFifoMessageDeliveryCounters:
type: object
properties:
day:
type: string
description: day of the counters, with yyyy-MM-dd format
example: '2024-01-01'
processed:
type: integer
format: int32
description: number of messages pushed to FIFO, may or may have not been consumed through MQTT
delivered:
type: integer
format: int32
description: number of messages delivered through a MQTT SUB connection
overflow:
type: integer
format: int32
description: number of messages that were discarded due to max size of FIFO reached
expired:
type: integer
format: int32
description: number of messages which have expired - stayed too long in the FIFO
meanDeliveryTimeMs:
type: integer
format: int64
description: mean delivery time of successfully delivered messages. Start time is set when the original message has been handled in LO.
FifoSupervision:
type: object
properties:
daily:
type: array
items:
$ref: '#/components/schemas/DailyFifoSupervision'
hourly:
type: array
items:
$ref: '#/components/schemas/HourlyFifoSupervision'
Suspension:
type: object
properties:
reason:
type: string
time:
type: string
format: date-time
Status:
type: object
properties:
messages:
type: integer
format: int64
description: Number of messages stored
consumers:
type: integer
format: int64
description: Number of active consumers
ActionPolicyDiagnosticsList:
type: array
items:
$ref: '#/components/schemas/ActionPolicyDiagnostics'
properties:
empty:
type: boolean
HttpRequestCounters:
type: object
properties:
daily:
type: array
items:
$ref: '#/components/schemas/DailyHttpRequestCounters'
hourly:
type: array
items:
$ref: '#/components/schemas/HourlyHttpRequestCounters'
AzureEventHubsAction:
type: object
description: Action that will push the message to an Azure Event Hub instance using HTTP protocol
properties:
id:
type: string
description: An action id. Set by Live Objects.
readOnly: true
type:
type: string
description: 'Action type: azureEventHub, set by Live Objects'
readOnly: true
eventHubsNamespace:
type: string
description: the Event Hubs namespace where is located the targeted Event Hub.
eventHubName:
type: string
description: The name of the targeted Event Hub.
sharedAccessKeyName:
type: string
description: The name of the shared access key (also called shared access policy) from the targeted Event Hub.
sharedAccessKey:
type: string
description: The shared access key (also called shared access policy).
jsonPath:
type: string
description: The json path to extract from the considered message (or event), it will be taken as the root datacontext object when combined with a mustache template in content. e.g. 'value', 'data.metadata'
content:
type: string
description: A raw string or a mustache (https://mustache.github.io/mustache.5.html) template describing the webhook body. If empty, the raw event will be used.
retryOnFailure:
type: boolean
description: Indicate if a retry policy should be set up in case of a Event Hub delivery failure. Default value is false
required:
- eventHubName
- eventHubsNamespace
- sharedAccessKey
- sharedAccessKeyName
GroupPath:
type: object
description: defines targeted group path
properties:
path:
type: string
description: path of the group
example: /europe/france
includeSubPath:
type: boolean
description: 'if true, all sub-paths will be targeted by this ActivityRule '
required:
- includeSubPath
- path
DailyHttpRequestCounters:
type: object
properties:
day:
type: string
description: day of the counters, with yyyy-MM-dd format
example: '2024-01-01'
requests:
type: integer
format: int32
description: number of Http requests sent
success:
type: integer
format: int32
description: number of 2xx responses for the Http requests
clientErrors:
type: integer
format: int32
description: number of 4xx responses for the Http requests
serverErrors:
type: integer
format: int32
description: number of 5xx responses for the Http requests
networkErrors:
type: integer
format: int32
description: number of network errors (timeout, SSL...) for the Http requests
otherErrors:
type: integer
format: int32
description: number of other errors (3xx...) for the Http requests
meanSuccessResponseTimeMs:
type: integer
format: int64
description: mean response time of 2xx requests
WebErrorResponse:
type: object
description: Error response
properties:
id:
type: string
description: Unique identifier of this error instance
code:
type: string
description: Error code
message:
type: string
description: Short error description
details:
type: string
description: Detailed error description
required:
- code
- id
- message
HourlyFifoMessageDeliveryCounters:
type: object
properties:
day:
type: string
description: day of the counters, with yyyy-MM-dd format
example: '2024-01-01'
processed:
type: integer
format: int32
description: number of messages pushed to FIFO, may or may have not been consumed through MQTT
delivered:
type: integer
format: int32
description: number of messages delivered through a MQTT SUB connection
overflow:
type: integer
format: int32
description: number of messages that were discarded due to max size of FIFO reached
expired:
type: integer
format: int32
description: number of messages which have expired - stayed too long in the FIFO
meanDeliveryTimeMs:
type: integer
format: int64
description: mean delivery time of successfully delivered messages. Start time is set when the original message has been handled in LO.
hour:
type: integer
format: int32
description: hour of the metrics (0-23)
example: 5
StateChangeFilter:
type: object
properties:
ruleIds:
type: array
description: List of filtered rule Ids. Null or empty to accept all rule Ids
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
ActionPolicy:
type: object
description: ActionPolicy to add
properties:
id:
type: string
description: id of the action policy. Set by LiveObjects, should be null on POST, set on PUT.
updated:
type: string
format: date-time
description: Last update timestamp of action policy. Set by LiveObjects, should be null on POST or PUT
readOnly: true
name:
type: string
description: The user-defined name of the action policy
enabled:
type: boolean
description: Enable or disable this action policy
triggers:
$ref: '#/components/schemas/ActionTriggers'
description: The trigger that will set off the specified actions. One and only one trigger must be set, except for 'deviceCreated' and 'deviceDeleted' triggers that can be simultaneously set.
actions:
$ref: '#/components/schemas/Actions'
description: The list of the actions that will be executed on a trigger. At least 1 action must be set.
required:
- actions
- triggers
ActionTriggers:
type: object
properties:
deviceStatus:
$ref: '#/components/schemas/DeviceStatusTrigger'
description: Triggering for DeviceStatus event
deviceCreated:
$ref: '#/components/schemas/DeviceCreatedTrigger'
description: Triggering for DeviceCreated event
loraNetwork:
$ref: '#/components/schemas/LoraNetworkTrigger'
description: Triggering Lora network event
loraGatewayStatus:
$ref: '#/components/schemas/LoraGatewayStatusTrigger'
description: Triggering Lora Gateway status event
dataMessage:
$ref: '#/components/schemas/DataMessageTrigger'
description: Triggering for DataMessage
stateChange:
$ref: '#/components/schemas/StateChangeTrigger'
description: Triggering for StateChange event
deviceActivity:
$ref: '#/components/schemas/DeviceActivityTrigger'
description: Triggering for DeviceActivity event
matchingFired:
$ref: '#/components/schemas/MatchingFiredTrigger'
description: Triggering for MatchingFired event
commandStatus:
$ref: '#/components/schemas/CommandStatusTrigger'
description: Triggering for CommandStatus event
deviceDeleted:
$ref: '#/components/schemas/DeviceDeletedTrigger'
description: Triggering for DeviceDeleted event
connectivityManagementPlatformEvent:
$ref: '#/components/schemas/ConnectivityManagementPlatformTrigger'
description: Triggering for ConnectivityManagementPlatform event
alarmEvent:
$ref: '#/components/schemas/AlarmEventTrigger'
description: Triggering for Alarm event
DataMessageTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/DataMessageFilter'
description: Filtering criterias. AND operator is used between filter criterias. OR operator is used in the list in each filter criteria.
required:
- version
Resumption:
type: object
properties:
time:
type: string
format: date-time
SMSAction:
type: object
description: Action that will send an SMS
properties:
id:
type: string
description: An action id. Set by Live Objects.
readOnly: true
type:
type: string
description: 'Action type: sms, set by Live Objects'
readOnly: true
destinationPhoneNumbers:
type: array
description: A list of valid msisdn
items:
type: string
contentTemplate:
type: string
description: A raw string or a mustache (https://mustache.github.io/mustache.5.html) template describing the sms content
required:
- contentTemplate
- destinationPhoneNumbers
ConnectivityManagementPlatformTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/ConnectivityManagementPlatformFilter'
description: Filtering criterias. AND operator is used between filter criterias. OR operator is used in the list in each filter criteria.
required:
- version
DeviceCreatedTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/DeviceCreatedFilter'
description: Filtering criterias. AND operator is used between filter criterias. OR operator is used in the list in each filter criteria.
required:
- version
CommandStatusTrigger:
type: object
properties:
version:
type: integer
format: int32
description: Requested version of triggered object that will be sent through the action.
enum:
- '1'
maximum: 1
minimum: 1
filter:
$ref: '#/components/schemas/CommandStatusFilter'
description: Filtering criterias. AND operator is used between filter criterias. OR operator is used in the list in each filter criteria.
required:
- version
AlarmEventFilter:
type: object
properties:
alarmRuleTypes:
type: array
description: 'List of filtered alarm rule types. Only known alarm types are accepted. Supported values: ''actionSuspended'', ''messageDeliverySuccessRatio''.'
enum:
- actionSuspended
- messageDeliverySuccessRatio
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
DailyHttpDeliveryCounters:
type: object
properties:
day:
type: string
description: day of the counters, with yyyy-MM-dd format
example: '2024-01-01'
processed:
type: integer
format: int32
description: total number of messages that have been processed
delivered:
type: integer
format: int32
description: number of messages that have been successfully delivered on first try
deliveredWithRetry:
type: integer
format: int32
description: number of messages that have been successfully delivered but needed at least a retry
expired:
type: integer
format: int32
description: number of messages that have not been delivered because retry is disabled or max retry count has been reached (after 5xx, timeout...)
failed:
type: integer
format: int32
description: number of messages that have not been delivered due to a 4xx or 3xx
overflow:
type: integer
format: int32
description: number of messages that have been dropped due to queue overflow (maximum number of waiting messages reached)
canceled:
type: integer
format: int32
description: number of messages that have been canceled (e.g. action policy deleted)
meanDeliveryTimeMs:
type: integer
format: int64
description: mean delivery time of successfully delivered messages. Start time is set when the original message has been handled in LO.
EmailAction:
type: object
description: Action that will send an email
properties:
id:
type: string
description: An action id. Set by Live Objects.
readOnly: true
type:
type: string
description: 'Action type: email, set by Live Objects'
readOnly: true
to:
type: array
description: List of recipient email addresses
items:
type: string
cc:
type: array
description: List of carbon copy (CC) recipient email addresses
items:
type: string
cci:
type: array
description: List of blind carbon copy (BCC) recipient email addresses
items:
type: string
subjectTemplate:
type: string
description: A raw string or a mustache (https://mustache.github.io/mustache.5.html) template describing the email subject
contentTemplate:
type: string
description: A raw string or a mustache (https://mustache.github.io/mustache.5.html) template describing the email content
required:
- contentTemplate
- subjectTemplate
- to
MatchingFiredFilter:
type: object
properties:
ruleIds:
type: array
description: List of filtered rule Ids. Null or empty to accept all rule Ids
items:
type: string
maxItems: 20
minItems: 0
uniqueItems: true
LoraNetworkFilter:
type: object
properties:
messageTypes:
type: array
description: List of filtered messageTypes. Null or empty to accept all message types
items:
type: string
enum:
- UNCONFIRMED_DATA_UP
- CONFIRMED_DATA_UP
- UNCONFIRMED_DATA_DOWN
- CONFIRMED_DATA_DOWN
- JOIN_REQUEST
- JOIN_ACCEPT
maxItems: 20
minItems: 0
uniqueItems: true
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: ''