{"openapi":"3.1.0","info":{"title":"Live Objects REST API Guide","description":"API description for Live Objects service","contact":{"name":"Live Objects Support","url":"https://liveobjects.orange-business.com/#/cms/support"},"version":"2026.7.0"},"externalDocs":{"description":"Live Objects Developer Guide","url":"https://liveobjects.orange-business.com/doc/html/lo_manual_v2.html"},"servers":[{"url":"https://liveobjects.orange-business.com"}],"security":[{"X-API-KEY":[],"OAuth2.0":[]}],"tags":[{"name":"Accounting - V1","description":"get your accounting metrics"},{"name":"Alarm rules","description":"Manage your alarm rules"},{"name":"Api keys","description":"API key management"},{"name":"Api self keys","description":"API self key management"},{"name":"Audit Log","description":"Search through your AuditLog messages"},{"name":"Bootstrap Config","description":"Manage lwm2m bootstrap config"},{"name":"Bootstrap Entry","description":"Manage LwM2M bootstrap entries"},{"name":"Bootstrap Master Entry","description":"Manage LwM2M bootstrap master entries"},{"name":"CA certificates","description":"CA certificates for MQTT client cert. authentication"},{"name":"Campaign management","description":"Management of actions on a fleet of devices"},{"name":"Data bulk injection","description":"APIs to inject a bulk of data"},{"name":"Data management custom pipelines","description":"APIs to manage dataMessage custom pipelines"},{"name":"Data management data search","description":"APIs to search through injected data"},{"name":"Data management data store","description":"APIs to store and retrieve data"},{"name":"Decoders","description":"list all decoders for a tenant"},{"name":"Decoders - CSV","description":"CSV decoder provisioning"},{"name":"Decoders - binary","description":"binary decoder provisioning"},{"name":"Decoders - public","description":"public decoder management"},{"name":"Device Analytics","description":"Manage your device analytics rules"},{"name":"Device management - Commands","description":"Devices commands"},{"name":"Device management - Configuration","description":"Devices configuration"},{"name":"Device management - Connector nodes - LoRa specific","description":"LoRa connector specificity"},{"name":"Device management - Connector nodes - V1","description":"Connector nodes management"},{"name":"Device management - Groups - V1","description":"Group management"},{"name":"Device management - Interfaces","description":"Devices' interfaces management"},{"name":"Device management - Inventory - V1","description":"Devices inventory"},{"name":"Device management - Resources","description":"Devices resources and firmware"},{"name":"Device management - Resources management","description":"Resources management and firmware"},{"name":"Event processing - Activity","description":"ActivityRule management"},{"name":"Event processing - Context","description":"Context management"},{"name":"Event processing - Firing","description":"FiringRules and FiringGuards management"},{"name":"Event processing - Geozone","description":"Geozone management"},{"name":"Event processing - Matching","description":"MatchingRules management"},{"name":"Event processing - State processing","description":"State processing Rules management"},{"name":"Gateway management for LoRa","description":"Gateway management"},{"name":"Inventory Explorer","description":"Inventory explorer management"},{"name":"Notification","description":"sending email or sms notifications"},{"name":"Notification channels","description":"Manage notification channels"},{"name":"Self User management","description":"manage self user"},{"name":"Self tenant account","description":"Self tenant account management"},{"name":"Triggers and Actions","description":"Action policies on event and messages"},{"name":"Triggers and Actions - Test","description":"Test api for actions"},{"name":"Twin data rules management","description":"Manage twin data rules"},{"name":"Twin devices management","description":"Manage twin device"},{"name":"Twin models management","description":"Manage twin model"},{"name":"Twin observations","description":"Manage twin observations"},{"name":"Twin operations management","description":"Manage twin device operations"},{"name":"User Profile and Access Management","description":"manage user profile and get access list"},{"name":"User authentication","description":"authentication"},{"name":"User authentication management","description":"authentication management"},{"name":"Users management","description":"manage users"},{"name":"Beta - Cellular networks management","description":"Cellular subscriptions and providers management"},{"name":"Beta - Network metrics","description":"Search network metrics"},{"name":"Deprecated - Bus management","description":"FIFO are now automatically managed with FifoPublish Action in Trigger & Actions"},{"name":"Deprecated - Data management data search - V0","description":"use data search V1 instead"}],"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.<p>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.<p>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.<br/><br/>Usage of this API will be reported in your access log under 'routing' category.<br/><br/>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.<br/>These triggers and actions endpoints are related to the routing & alarming notification feature.<br/>\r\nPlease see the dedicated sections in our developer guide for more details.<br/><br/>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.<br/>These triggers and actions endpoints are related to the routing & alarming notification feature.<br/>\r\nPlease see the dedicated sections in our developer guide for more details.<br/><br/>Usage of this API will be reported in your access log under 'routing' category.<br/><br/>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.<br/>These triggers and actions endpoints are related to the routing & alarming notification feature.<br/>\r\nPlease see the dedicated sections in our developer guide for more details.<br/><br/>Usage of this API will be reported in your access log under 'routing' category.<br/><br/>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.<br/>These triggers and actions endpoints are related to the routing & alarming notification feature.<br/>\r\nPlease see the dedicated sections in our developer guide for more details.You can use this API to re-enabled a suspended policy.<br/><br/>Usage of this API will be reported in your access log under 'routing' category.<br/><br/>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/deviceMgt/groups/{groupId}":{"get":{"tags":["Device management - Groups - V1"],"summary":"Get a device group","description":"Managing groups of devices allows you to organize your devices in a hierarchical structure. Groups can be used to target specific subsets of devices when performing operations such as filtering triggers and actions rules, querying their data... Groups can be nested, allowing you to create a tree-like structure of groups and subgroups. <br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getGroup","parameters":[{"name":"groupId","in":"path","description":"the Group Identifier. Expected string (max 6 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The group","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"put":{"tags":["Device management - Groups - V1"],"summary":"Update a device group","description":"Managing groups of devices allows you to organize your devices in a hierarchical structure. Groups can be used to target specific subsets of devices when performing operations such as filtering triggers and actions rules, querying their data... Groups can be nested, allowing you to create a tree-like structure of groups and subgroups. <br/><br/>Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"updateGroup","parameters":[{"name":"groupId","in":"path","description":"identifier to update group. Expected string (max 6 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupUpdateRequest"}}},"required":true},"responses":{"200":{"description":"The group newly created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"Group already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"delete":{"tags":["Device management - Groups - V1"],"summary":"Delete a device group","description":"Managing groups of devices allows you to organize your devices in a hierarchical structure. Groups can be used to target specific subsets of devices when performing operations such as filtering triggers and actions rules, querying their data... Groups can be nested, allowing you to create a tree-like structure of groups and subgroups. <br/><br/>Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"deleteGroup","parameters":[{"name":"groupId","in":"path","description":"targeted for deletion group identifier. Expected string (max 6 characters)","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Group deleted"},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/twin/operations/{operationId}/status":{"put":{"tags":["Twin operations management"],"summary":"Set twin operation status for a given deviceId and operationId","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"setTwinOperationStatus","parameters":[{"name":"deviceId","in":"path","description":"A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"operationId","in":"path","description":"Identifier of specific twin operation. Expected string (max 32 characters)","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","description":"cancelling mode. When force is false, the DeviceTwin manager prevents operation with status not started from starting, cancel operation with status pending and let operation with status in progress finish properly. When force is true, the DeviceTwin manager aborts pending or in progress operation immediately.","required":false,"schema":{"type":"boolean","default":false}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string","description":"future state of the operation  --> CANCELED","enum":["CANCELED"]}}},"required":true},"responses":{"200":{"description":"Twin operation status has been set"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}},"403":{"description":"Delete forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}},"404":{"description":"Operation not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}},"409":{"description":"Invalid operation status update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/config/parameters/{paramKey}/status":{"put":{"tags":["Device management - Configuration"],"summary":"Update the status of a specific device parameter","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"setDeviceParamUpdateStatusV1","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"paramKey","in":"path","description":"key identifying the targeted device parameter. Expected string (max 128 characters)","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","description":"force the update of the parameter status","required":false,"schema":{"type":"boolean","default":false}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string","description":"future state of the parameter --> CANCELED","enum":["CANCELED"]}}},"required":true},"responses":{"200":{"description":"Parameter status updated"},"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":"Unknown device parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/commands/{commandId}/status":{"get":{"tags":["Device management - Commands"],"summary":"Get the status of a specific command by its identifier. A command is an instruction sent to a device, telling it to perform a specific action, change a configuration parameter, or report information.","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getCommandStatusV1","parameters":[{"name":"commandId","in":"path","description":"identifier of specific command. Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The command status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CommandStatusReport"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Command not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"put":{"tags":["Device management - Commands"],"summary":"Update the status of a specific command by its identifier. A command is an instruction sent to a device, telling it to perform a specific action, change a configuration parameter, or report information.","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"setCommandStatusV1","parameters":[{"name":"commandId","in":"path","description":"identifier of specific command. Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","description":"force the update of the command status","required":false,"schema":{"type":"boolean","default":false}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string","description":"future state of the command  --> CANCELED","enum":["CANCELED"]}}},"required":true},"responses":{"200":{"description":"Command status updated"},"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":"Command not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"Invalid command status update","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/device-analytics/rules/{analyticsRuleId}":{"get":{"tags":["Device Analytics"],"summary":"Retrieve an AnalyticsRule.","description":"An AnalyticsRule defines a fleet of devices whose behavior will be analyzed by algorithms, generating a weekly report. This report includes general fleet behavior, detection of outliers, connectivity status...<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getAnalyticsRule","parameters":[{"name":"analyticsRuleId","in":"path","description":"id of the AnalyticsRule to retrieve","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"AnalyticsRule successfully retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsRule"}}}},"404":{"description":"Unknown AnalyticsRule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsRule"}}}}}},"put":{"tags":["Device Analytics"],"summary":"Update an AnalyticsRule.","description":"The field `id` must be provided and match the API path id.<br/><br/>Usage of this API will be reported in your access log under 'device_analytics' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"updateAnalyticsRule","parameters":[{"name":"analyticsRuleId","in":"path","description":"id of the AnalyticsRule to retrieve","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsRule"},"examples":{"Rule for a LoRa fleet with a filter on group":{"description":"Rule for a LoRa fleet with a filter on group","value":{"id":"1234567890","name":"Lora Fleet analytics","fleet":{"connectors":["lora"],"groupPaths":[{"path":"/france","includeSubPath":true}]},"report":{"recipients":{"to":["jane.doe@mycompany.com"],"cc":["john.doe@mycompany.com"]},"language":"fr"},"enabled":true}}}}},"required":true},"responses":{"200":{"description":"AnalyticsRule successfully updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsRule"}}}},"404":{"description":"Unknown AnalyticsRule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsRule"}}}}}},"delete":{"tags":["Device Analytics"],"summary":"Delete an AnalyticsRule.","description":"Usage of this API will be reported in your access log under 'device_analytics' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"deleteAnalyticsRule","parameters":[{"name":"analyticsRuleId","in":"path","description":"id of the AnalyticsRule to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"AnalyticsRule successfully deleted"},"404":{"description":"Unknown AnalyticsRule"}}}},"/api/v1/contact/notificationChannels/{notificationChannelId}":{"get":{"tags":["Notification channels"],"summary":"Get a notification channel.","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getNotificationChannel","parameters":[{"name":"notificationChannelId","in":"path","description":"notification channel identifier","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The notification channel","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannel"}}}}}},"put":{"tags":["Notification channels"],"summary":"Update a notification channel.","description":"Usage of this API will be reported in your access log under 'notification' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"updateNotificationChannel","parameters":[{"name":"notificationChannelId","in":"path","description":"notification channel identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelRequest"}}},"required":true},"responses":{"200":{"description":"The notification channel was successfully updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannel"}}}},"404":{"description":"The notification channel was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}},"delete":{"tags":["Notification channels"],"summary":"Delete a notification channel.","description":"Usage of this API will be reported in your access log under 'notification' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"deleteNotificationChannel","parameters":[{"name":"notificationChannelId","in":"path","description":"notification channel identifier","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The notification channel was successfully deleted"},"404":{"description":"The notification channel was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}}},"/api/v1/bootstrap/lwm2m/masterEntries/{masterEntryId}/name":{"put":{"tags":["Bootstrap Master Entry"],"summary":"Set the name of a bootstrap master entry.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"setMasterEntryName","parameters":[{"name":"masterEntryId","in":"path","description":"the id of the master entry to update","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"},"examples":{"name":{"description":"name","value":"My Bootstrap Master Entry"}}}}},"responses":{"204":{"description":"No Content"}}}},"/api/v1/bootstrap/lwm2m/masterEntries/{masterEntryId}/definition/bootstrapConfigId":{"put":{"tags":["Bootstrap Master Entry"],"summary":"Set the bootstrapConfigId field of a bootstrap master entry.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"setMasterEntryBootstrapConfigId","parameters":[{"name":"masterEntryId","in":"path","description":"the id of the master entry to update","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"},"examples":{"bootstrapConfigId":{"description":"bootstrapConfigId","value":"63c17e68f98ac770eac303fb"}}}}},"responses":{"204":{"description":"No Content"}}}},"/api/v1/bootstrap/lwm2m/entries/{endpointName}/security":{"put":{"tags":["Bootstrap Entry"],"summary":"Update the Bootstrap security info.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"updateBootstrapSecurityInfo","parameters":[{"name":"endpointName","in":"path","description":"the endpoint client name for which the entry will be updated","required":true,"schema":{"type":"string"},"example":"urn:imei:000000000000000"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapSecurityInfo"},"examples":{"bootstrapSecurityInfo":{"description":"bootstrapSecurityInfo","value":{"mode":"PSK","pskInfo":{"identity":"urn:lo:nsid:lwm2m:sensor12Stream","secret":"0123456789ABCDEF0123456789ABCDEF"}}}}}},"required":true},"responses":{"204":{"description":"No Content"}}}},"/api/v1/bootstrap/lwm2m/entries/{endpointName}/definition/runServers/{id}":{"put":{"tags":["Bootstrap Entry"],"summary":"Update a Run Server of a lwm2m bootstrap entry.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"updateRunServer","parameters":[{"name":"endpointName","in":"path","description":"the endpoint client name for which the entry will be updated","required":true,"schema":{"type":"string"},"example":"urn:imei:000000000000000"},{"name":"id","in":"path","description":"the identifier of the Run Server that will be updated or added","required":true,"schema":{"type":"string"},"example":"myServer"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunServerConfigParams"},"examples":{"runServer":{"description":"runServer","value":{"id":"LOServer","security":{"pskInfo":{"identity":"urn:lo:nsid:lwm2m:sensor12Stream","secret":"0123456789ABCDEF0123456789ABCDEF"}}}}}}},"required":true},"responses":{"204":{"description":"No Content"}}},"delete":{"tags":["Bootstrap Entry"],"summary":"Delete a Run Server of a lwm2m bootstrap entry.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"deleteRunServer","parameters":[{"name":"endpointName","in":"path","description":"the endpoint client name for which the entry will be deleted","required":true,"schema":{"type":"string"},"example":"urn:imei:000000000000000"},{"name":"id","in":"path","description":"the identifier of the Run Server to delete","required":true,"schema":{"type":"string"},"example":"myServer"}],"responses":{"204":{"description":"No Content"}}}},"/api/v1/bootstrap/lwm2m/entries/{endpointName}/definition/bootstrapConfigId":{"put":{"tags":["Bootstrap Entry"],"summary":"Set the bootstrapConfigId field of a bootstrap entry.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"setBootstrapConfigId","parameters":[{"name":"endpointName","in":"path","description":"the endpoint client name for which the entry will be updated","required":true,"schema":{"type":"string"},"example":"urn:imei:000000000000000"}],"requestBody":{"content":{"application/json":{"schema":{"type":"string"},"examples":{"bootstrapConfigId":{"description":"bootstrapConfigId","value":"63c17e68f98ac770eac303fb"}}}}},"responses":{"204":{"description":"No Content"}}}},"/api/v1/bootstrap/lwm2m/configs/{configId}":{"get":{"tags":["Bootstrap Config"],"summary":"Get a lwm2m bootstrap config from configId.","description":"Restricted to API keys with at least one of the following roles: BOOTSTRAP_R.","operationId":"getLwm2mBootstrapConfig","parameters":[{"name":"configId","in":"path","description":"bootstrap config identifier","required":true,"schema":{"type":"string"}},{"name":"showSensitiveInformation","in":"query","description":"whether or not to show sensitive information (headers in external config server)","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Bootstrap config","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapConfig"}}}}}},"put":{"tags":["Bootstrap Config"],"summary":"Update a lwm2m bootstrap config.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"updateLwm2mBootstrapConfig","parameters":[{"name":"configId","in":"path","description":"bootstrap config identifier","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapConfigRequest"},"examples":{"Config Update Request":{"description":"Config Update Request","value":{"name":"NewName","description":"This is a new description","runServers":[{"id":"myServer","useLiveObjects":false,"lwm2mDefinition":{"security":{"shortServerId":1,"lwm2mServerUri":"myURI","securityMode":0},"server":{"shortServerId":1,"lifetime":300,"binding":"U"}}}]}}}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapConfig"}}}}}},"delete":{"tags":["Bootstrap Config"],"summary":"Delete a lwm2m bootstrap config from configId.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"deleteLwm2mBootstrapConfig","parameters":[{"name":"configId","in":"path","description":"bootstrap config identifier","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Bootstrap config deleted"}}}},"/api/v1/alarms/rules/{ruleId}":{"get":{"tags":["Alarm rules"],"summary":"Retrieve an AlarmRule.","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getAlarmRule","parameters":[{"name":"ruleId","in":"path","description":"id of the AlarmRule to retrieve","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"AlarmRule successfully retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlarmRule"}}}},"404":{"description":"Unknown AlarmRule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlarmRule"}}}}}},"put":{"tags":["Alarm rules"],"summary":"Update an AlarmRule.","description":"The field `id` must be provided and match the API path id.<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"updateAlarmRule","parameters":[{"name":"ruleId","in":"path","description":"id of the AlarmRule to retrieve","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlarmRule"},"examples":{"Rule for suspended action policy":{"description":"Rule for suspended action policy","value":{"id":"1234567890","name":"Action policy suspended","enabled":true,"type":"actionPolicySuspended","notifications":{"notificationChannelIds":["default"]}}}}}},"required":true},"responses":{"200":{"description":"AlarmRule successfully updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlarmRule"}}}},"404":{"description":"Unknown AlarmRule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlarmRule"}}}}}},"delete":{"tags":["Alarm rules"],"summary":"Delete an AlarmRule.","description":"Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"deleteAlarmRule","parameters":[{"name":"ruleId","in":"path","description":"id of the AlarmRule to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"AlarmRule successfully deleted"},"404":{"description":"Unknown AlarmRule"}}}},"/api/v0/users/me/portaldata":{"get":{"tags":["Self User management"],"summary":"Get the portal data of me","description":"No specific role on API key required.","operationId":"getUserPortalData","responses":{"200":{"description":"User portal data","content":{"application/json":{"schema":{"type":"string"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"put":{"tags":["Self User management"],"summary":"Update the portal data of me","description":"No specific role on API key required.","operationId":"updateUserPortalData","requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"body of my user portal data Update"}}},"required":true},"responses":{"204":{"description":"No content"},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"413":{"description":"Request Entity Too Large","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/rm/{resourceId}/version/{resourceVersionId}":{"get":{"tags":["Device management - Resources management"],"summary":"Get a resource's version","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getResourceVersion","parameters":[{"name":"resourceId","in":"path","description":"the resource id. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}},{"name":"resourceVersionId","in":"path","description":"the resource version id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resource version","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersion"}}}},"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":"Resource version not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"put":{"tags":["Device management - Resources management"],"summary":"Update a resource's version","description":"Usage of this API will be reported in your access log under 'device_resource' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"updateResourceVersion","parameters":[{"name":"resourceId","in":"path","description":"the resource id. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}},{"name":"resourceVersionId","in":"path","description":"the resource version id. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResourceVersionRequest"}}},"required":true},"responses":{"200":{"description":"The resource version","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersion"}}}},"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":"Resource version not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"delete":{"tags":["Device management - Resources management"],"summary":"Delete a resource's version","description":"Usage of this API will be reported in your access log under 'device_resource' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"deleteResourceVersion","parameters":[{"name":"resourceId","in":"path","description":"the resource id. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}},{"name":"resourceVersionId","in":"path","description":"the resource version id. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Resource version deleted"},"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":"Resource version not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/rm/{resourceId}":{"get":{"tags":["Device management - Resources management"],"summary":"Get a resource","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getResource","parameters":[{"name":"resourceId","in":"path","description":"the resource id. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resource"}}}},"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":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"put":{"tags":["Device management - Resources management"],"summary":"Update a resource","description":"Usage of this API will be reported in your access log under 'device_resource' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"updateResource","parameters":[{"name":"resourceId","in":"path","description":"the resource Id. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateResourceRequest"}}},"required":true},"responses":{"200":{"description":"The resource","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resource"}}}},"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":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"delete":{"tags":["Device management - Resources management"],"summary":"Delete a resource","description":"Usage of this API will be reported in your access log under 'device_resource' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"deleteResource","parameters":[{"name":"resourceId","in":"path","description":"the resource id. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Resource deleted"},"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":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/pipelines/{pipelineId}":{"get":{"tags":["Data management custom pipelines"],"summary":"Retrieve a DataMessage pipeline","description":"DataMessage pipelines can transform your data by calling external services in the processing flow.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getPipeline","parameters":[{"name":"pipelineId","in":"path","description":"id of the pipeline to retrieve","required":true,"schema":{"type":"string","minLength":1}},{"name":"showSensitiveInformation","in":"query","description":"whether or not to show sensitive information, such as headers. Default value is false.","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"DataMessage pipeline","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}}}}},"put":{"tags":["Data management custom pipelines"],"summary":"Update a DataMessage pipeline","description":"DataMessage pipelines can transform your data by calling external services in the processing flow.<br/><br/>Usage of this API will be reported in your access log under 'data_pipeline' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"updatePipeline","parameters":[{"name":"pipelineId","in":"path","description":"id of the pipeline to update","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"required":true},"responses":{"200":{"description":"DataMessage pipeline updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}}}}},"delete":{"tags":["Data management custom pipelines"],"summary":"Delete a DataMessage pipeline","description":"DataMessage pipelines can transform your data by calling external services in the processing flow.<br/><br/>Usage of this API will be reported in your access log under 'data_pipeline' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"deletePipeline","parameters":[{"name":"pipelineId","in":"path","description":"id of the pipeline to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"DataMessage pipeline deleted"}}}},"/api/v0/eventprocessing/stateprocessing-rule/{stateProcessingRuleId}":{"get":{"tags":["Event processing - State processing"],"summary":"Retrieve a StateProcessingRule","description":"State processing service aims at detecting changes in 'device state' computed from data messages. A state can represent any result computed from Live Objects data messages : geo-zone ('paris-area', 'london-area', ..), temperature status ('hot', 'cold', ..), availability status ('ok' , 'ko'). Each state is identified by a key retrieved from the user-defined json-path in the data message. stateKeyPath examples : 'streamId', 'metadata.source'...<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getStateProcessingRule","parameters":[{"name":"stateProcessingRuleId","in":"path","description":"id of the StateProcessingRule to retrieve","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"StateProcessingRule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateProcessingRule"}}}}}},"put":{"tags":["Event processing - State processing"],"summary":"Update a StateProcessingRule","description":"State processing service aims at detecting changes in 'device state' computed from data messages. A state can represent any result computed from Live Objects data messages : geo-zone ('paris-area', 'london-area', ..), temperature status ('hot', 'cold', ..), availability status ('ok' , 'ko'). Each state is identified by a key retrieved from the user-defined json-path in the data message. stateKeyPath examples : 'streamId', 'metadata.source'...<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"updateStateProcessingRule","parameters":[{"name":"stateProcessingRuleId","in":"path","description":"id of the StateProcessingRule to update","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateProcessingRule"}}},"required":true},"responses":{"204":{"description":"The StateProcessingRule has been updated"}}},"delete":{"tags":["Event processing - State processing"],"summary":"Delete a StateProcessingRule","description":"State processing service aims at detecting changes in 'device state' computed from data messages. A state can represent any result computed from Live Objects data messages : geo-zone ('paris-area', 'london-area', ..), temperature status ('hot', 'cold', ..), availability status ('ok' , 'ko'). Each state is identified by a key retrieved from the user-defined json-path in the data message. stateKeyPath examples : 'streamId', 'metadata.source'...<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"deleteStateProcessingRule","parameters":[{"name":"stateProcessingRuleId","in":"path","description":"id of the StateProcessingRule to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"StateProcessingRule has been deleted"}}}},"/api/v0/eventprocessing/matching-rule/{matchingRuleId}":{"get":{"tags":["Event processing - Matching"],"summary":"Retrieve a MatchingRule","description":"A MatchingRule will be applied on each data message to evaluate if a 'match' occurs. It is evaluated as a boolean result. It supports numeric, string, logic and distance operators and is based on JsonLogic. This MatchingRule should then be linked to a FiringRule to trigger an event when a match occurs.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getMatchingRule","parameters":[{"name":"matchingRuleId","in":"path","description":"id of the MatchingRule to retrieve","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"MatchingRule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchingRule"}}}}}},"put":{"tags":["Event processing - Matching"],"summary":"Update a MatchingRule","description":"A MatchingRule will be applied on each data message to evaluate if a 'match' occurs. It is evaluated as a boolean result. It supports numeric, string, logic and distance operators and is based on JsonLogic. This MatchingRule should then be linked to a FiringRule to trigger an event when a match occurs.<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"updateMatchingRule","parameters":[{"name":"matchingRuleId","in":"path","description":"id of the MatchingRule to update","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchingRule"}}},"required":true},"responses":{"204":{"description":"The MatchingRule has been updated"}}},"delete":{"tags":["Event processing - Matching"],"summary":"Delete a MatchingRule","description":"A MatchingRule will be applied on each data message to evaluate if a 'match' occurs. It is evaluated as a boolean result. It supports numeric, string, logic and distance operators and is based on JsonLogic. This MatchingRule should then be linked to a FiringRule to trigger an event when a match occurs.<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"deleteMatchingRule","parameters":[{"name":"matchingRuleId","in":"path","description":"id of the MatchingRule to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"MatchingRule has been deleted"}}}},"/api/v0/eventprocessing/geozones/{zoneId}":{"get":{"tags":["Event processing - Geozone"],"summary":"retrieve a geozone from repository","description":"The Geozone repository is a database that allows storing geographical sites/zones of interest. The geozones are stored as polygons (array of geopoints coordinates in decimal degrees). Meta information like a description and tags can be stored with the geozone. The Geozone format : coordinates for polygon definition, use longitude as the first coordinate and latitude as the second coordinate, polygons are closed linestrings, with at least four coordinate pairs and specify the same position as the first and last coordinates. You can define several polygons in the same geozone, for example to define a zone with holes (first polygon is the external limit of the zone and the following polygons are holes in this zone). e.g. [[[1.780892, 48.091452], [2.301382, 48.000565], [2.281961, 47.509630], [1.252634, 47.729556], [1.780892, 48.091452]]]<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getEventProcessingGeozone","parameters":[{"name":"zoneId","in":"path","description":"the user-defined id of the zone to retrieve","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Geozone retrieved successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeozoneContainer"}}}},"404":{"description":"Unable to find specified geozone id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeozoneContainer"}}}}}},"put":{"tags":["Event processing - Geozone"],"summary":"Store a geographic zone","description":"The Geozone repository is a database that allows storing geographical sites/zones of interest. The geozones are stored as polygons (array of geopoints coordinates in decimal degrees). Meta information like a description and tags can be stored with the geozone. The Geozone format : coordinates for polygon definition, use longitude as the first coordinate and latitude as the second coordinate, polygons are closed linestrings, with at least four coordinate pairs and specify the same position as the first and last coordinates. You can define several polygons in the same geozone, for example to define a zone with holes (first polygon is the external limit of the zone and the following polygons are holes in this zone). e.g. [[[1.780892, 48.091452], [2.301382, 48.000565], [2.281961, 47.509630], [1.252634, 47.729556], [1.780892, 48.091452]]]<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"saveEventProcessingGeozone","parameters":[{"name":"zoneId","in":"path","description":"the id of the zone to save","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GeozoneContainerBase"}}},"required":true},"responses":{"201":{"description":"Geo zone created or updated"}}},"delete":{"tags":["Event processing - Geozone"],"summary":"delete a geographic zone","description":"The Geozone repository is a database that allows storing geographical sites/zones of interest. The geozones are stored as polygons (array of geopoints coordinates in decimal degrees). Meta information like a description and tags can be stored with the geozone. The Geozone format : coordinates for polygon definition, use longitude as the first coordinate and latitude as the second coordinate, polygons are closed linestrings, with at least four coordinate pairs and specify the same position as the first and last coordinates. You can define several polygons in the same geozone, for example to define a zone with holes (first polygon is the external limit of the zone and the following polygons are holes in this zone). e.g. [[[1.780892, 48.091452], [2.301382, 48.000565], [2.281961, 47.509630], [1.252634, 47.729556], [1.780892, 48.091452]]]<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"deleteEventProcessingGeozone","parameters":[{"name":"zoneId","in":"path","description":"the id of the zone to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Geo zone deleted"}}}},"/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.<br/><br/>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.<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>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.<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>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/context/{contextKey}":{"get":{"tags":["Event processing - Context"],"summary":"Retrieve a context data","description":"The context repository is a database that allows storing user data that can be used in the MatchingRules and StateProcessingRules when the value is not present in the data messages. The context may include thresholds definition, geographical zones, a list of device identifiers, a user preference, a group of contexts. The context has a key-value format. The key is a string and the value can be a primitive (string, numeric…​), a JSON object or an array.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getEventProcessingContext","parameters":[{"name":"contextKey","in":"path","description":"key of the context to get","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"a context","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContextContainer"}}}}}},"put":{"tags":["Event processing - Context"],"summary":"Store a context data.","description":"The context repository is a database that allows storing user data that can be used in the MatchingRules and StateProcessingRules when the value is not present in the data messages. The context may include thresholds definition, geographical zones, a list of device identifiers, a user preference, a group of contexts. The context has a key-value format. The key is a string and the value can be a primitive (string, numeric…​), a JSON object or an array.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"saveEventProcessingContext","parameters":[{"name":"contextKey","in":"path","description":"context key to store","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContextContainer"}}},"required":true},"responses":{"200":{"description":"Context stored","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContextContainer"}}}},"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ContextContainer"}}}}}},"delete":{"tags":["Event processing - Context"],"summary":"Delete a context data.","description":"The context repository is a database that allows storing user data that can be used in the MatchingRules and StateProcessingRules when the value is not present in the data messages. The context may include thresholds definition, geographical zones, a list of device identifiers, a user preference, a group of contexts. The context has a key-value format. The key is a string and the value can be a primitive (string, numeric…​), a JSON object or an array.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"deleteEventProcessingContext","parameters":[{"name":"contextKey","in":"path","description":"key of the context to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Deleted context key"}}}},"/api/v0/eventprocessing/activity/states/mute":{"put":{"tags":["Event processing - Activity"],"summary":"Mute or reset nextAlarm of ActivityStates targeted by a specific deviceId/activityRuleId","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"muteActivityRule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityStateMuteRequest"}}},"required":true},"responses":{"200":{"description":"ActivityState has been updated, return the number of targeted states","content":{"application/json":{"schema":{"type":"integer","format":"int64"}}}}}}},"/api/v0/eventprocessing/activity/rules/{activityRuleId}":{"get":{"tags":["Event processing - Activity"],"summary":"Retrieve an ActivityRule","description":"An ActivityRule will monitor device activity and trigger events when they become silent after certain amount a time.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getActivityRule","parameters":[{"name":"activityRuleId","in":"path","description":"id of the ActivityRule to retrieve","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"ActivityRule","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityRule"}}}}}},"put":{"tags":["Event processing - Activity"],"summary":"Update an ActivityRule","description":"An ActivityRule will monitor device activity and trigger events when they become silent after certain amount a time.<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"updateActivityRule","parameters":[{"name":"activityRuleId","in":"path","description":"id of the ActivityRule to update","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityRule"}}},"required":true},"responses":{"204":{"description":"The ActivityRule has been updated"}}},"delete":{"tags":["Event processing - Activity"],"summary":"Delete an ActivityRule","description":"An ActivityRule will monitor device activity and trigger events when they become silent after certain amount a time.<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"deleteActivityRule","parameters":[{"name":"activityRuleId","in":"path","description":"id of the ActivityRule to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"ActivityRule has been deleted"}}}},"/api/v0/deviceMgt/campaigns/{campaignId}/cancel":{"put":{"tags":["Campaign management"],"summary":"Cancel a campaign","description":"Usage of this API will be reported in your access log under 'device_campaign' category.<br/><br/>Restricted to API keys with at least one of the following roles: CAMPAIGN_W.","operationId":"cancelCampaign","parameters":[{"name":"campaignId","in":"path","description":"identifier of a campaign","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","description":"When force is false, the campaign manager prevents devices with status not started from starting, cancel devices with status pending and let devices with status in progress finish properly. When force is true, the campaign manager aborts all pending and in progress sequences immediately.","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Campaign has been canceled.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}}}}}},"/api/v0/decoders/csv/{decoderId}":{"get":{"tags":["Decoders - CSV"],"summary":"Retrieve a CSV decoder","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A CSV decoder handles payload with CSV format.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getCsvDecoder","parameters":[{"name":"decoderId","in":"path","description":"id of the CSV decoder to retrieve","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CSV decoder","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsvPayloadDescription"}}}}}},"put":{"tags":["Decoders - CSV"],"summary":"Update a CSV decoder","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A CSV decoder handles payload with CSV format.<br/><br/>Usage of this API will be reported in your access log under 'data_decoder' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"updateCsvDecoder","parameters":[{"name":"decoderId","in":"path","description":"id of the csv decoder to update","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsvPayloadDescription"}}},"required":true},"responses":{"200":{"description":"Csv decoder updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsvPayloadDescription"}}}}}},"delete":{"tags":["Decoders - CSV"],"summary":"Delete a CSV decoder","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A CSV decoder handles payload with CSV format.<br/><br/>Usage of this API will be reported in your access log under 'data_decoder' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"deleteCsvDecoder","parameters":[{"name":"decoderId","in":"path","description":"id of the CSV decoder to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"CSV decoder deleted"}}}},"/api/v0/decoders/csv/{decoderId}/enabled":{"put":{"tags":["Decoders - CSV"],"summary":"Activate or deactivate a CSV decoder","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A CSV decoder handles payload with CSV format. A non enabled decoder will not be applied on data messages. This allows you to temporarily disable a decoder without deleting it.<br/><br/>Usage of this API will be reported in your access log under 'data_decoder' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"activateCsvDecoder","parameters":[{"name":"decoderId","in":"path","description":"id of the CSV decoder to activate or deactivate","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"boolean","description":"true to activate, false otherwise"}}},"required":true},"responses":{"204":{"description":"Update request has been accepted."}}}},"/api/v0/decoders/binary/{decoderId}":{"get":{"tags":["Decoders - binary"],"summary":"Retrieve a binary decoder","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getBinaryDecoder","parameters":[{"name":"decoderId","in":"path","description":"id of the binary decoder to retrieve","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"binary decoder","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BinaryPayloadDescription"}}}}}},"put":{"tags":["Decoders - binary"],"summary":"Update a binary decoder","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A binary decoder handles binary payload an uses 'Java Binary Block Parser' DSL.<br/><br/>Usage of this API will be reported in your access log under 'data_decoder' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"updateBinaryDecoder","parameters":[{"name":"decoderId","in":"path","description":"id of the binary decoder to update","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BinaryPayloadDescription"}}},"required":true},"responses":{"200":{"description":"Binary decoder updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BinaryPayloadDescription"}}}}}},"delete":{"tags":["Decoders - binary"],"summary":"Delete a binary decoder","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A binary decoder handles binary payload an uses 'Java Binary Block Parser' DSL.<br/><br/>Usage of this API will be reported in your access log under 'data_decoder' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"deleteBinaryDecoder","parameters":[{"name":"decoderId","in":"path","description":"id of the binary decoder to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Binary decoder deleted"}}}},"/api/v0/decoders/binary/{decoderId}/enabled":{"put":{"tags":["Decoders - binary"],"summary":"Activate or deactivate a binary decoder","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A binary decoder handles binary payload an uses 'Java Binary Block Parser' DSL. A non enabled decoder will not be applied on data messages. This allows you to temporarily disable a decoder without deleting it.<br/><br/>Usage of this API will be reported in your access log under 'data_decoder' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"activateBinaryDecoder","parameters":[{"name":"decoderId","in":"path","description":"id of the binary decoder to activate or deactivate","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"boolean","description":"true to activate, false otherwise"}}},"required":true},"responses":{"204":{"description":"Update request has been accepted."}}}},"/api/v0/apiKeys/{apiKeyId}/debugMode":{"put":{"tags":["Api keys"],"summary":"Activate/Deactivate the debug mode on an API key","description":"Usage of this API will be reported in your access log under 'api_key' category.<br/><br/>Restricted to API keys with at least one of the following roles: API_KEY_W.","operationId":"setApiKeyDebugMode","parameters":[{"name":"apiKeyId","in":"path","description":"identifier of your API key. Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugModeConfiguration"}}},"required":true},"responses":{"200":{"description":"The updated ApiKey","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"ApiKey or Tenant not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/networks/cellular/subscriptions/search":{"post":{"tags":["Beta - Cellular networks management"],"summary":"Search cellular subscriptions. BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"<p>A network subscription identified by a subscriptionId. It is linked to a SIM card\nand contains information such as:</p>\n<ul>\n    <li>The last network interaction</li>\n    <li>The attached device</li>\n    <li>The provider of the subscription</li>\n    <li>The SIM card capabilities and IDs</li>\n</ul>\n<p>If you use the \"deviceId\" search type, Live Objects will look for potential 'imei' or 'msisdn' in your device inventory based on the following fields (in order) :</p><ul><li>\"imei\" property (Cf. properties in device inventory)</li><li>\"msisdn\" property (Cf. properties in device inventory)</li><li>\"deviceId\" </li><li>\"nodeId\" of your device interfaces for SMS, LwM2M, MQTT or x-connector connectors</li></ul><br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"searchSubscriptions","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchSubscriptionsRequest"}}},"required":true},"responses":{"200":{"description":"The requested subscriptions list.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SubscriptionResponse"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/network-metrics":{"post":{"tags":["Beta - Network metrics"],"summary":"Get the network metrics regarding provided filters BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"<p>\nThis endpoint gives you statistics on exchanges between devices and Live Objects.\nIt is very useful to monitor the health of your devices' connections to Live Objects and investigate unexpected behavior.\nConnectivities available with such statistics : LwM2M.\n<br/>\nResults are aggregated per bucket (hour, day or week).\n</p>\n<p>\nProvided temporal fields (\"from\", \"to\" and \"interval\") must not lead to the generation of too many buckets :\n<ul>\n<li>If the query does not contain a sub aggregation : 1000 buckets max</li>\n<li>If the query contains a sub aggregation : 100 buckets max</li>\n</ul>\n</p>\n<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getNetworkMetrics","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NetworkMetricsRequest"}}},"required":true},"responses":{"200":{"description":"Network metrics","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NetworkMetricsResult"}}}}}}}},"/api/v1/network-metrics/lostMessagesRatio":{"post":{"tags":["Beta - Network metrics"],"summary":"Get lost messages ratio regarding provided filters BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"<p>\nThis endpoint gives you lost messages ratio on exchanges between devices and Live Objects.\nNot all connectivities have such statistics.\n<br/>\nResults are aggregated per bucket (hour, day or week).\n<br/>\nBuckets having zero as ratio value are not included in the response.\n</p>\n<p>\nProvided temporal fields (\"from\", \"to\" and \"interval\") must not lead to the generation of too many buckets : 1000 buckets max.\n</p>\n<p>\nThe lost message rate for the current day is never included in the response.\n</p>\n<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getLostMessagesRatio","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LostMessagesRatioRequest"},"example":{"filters":{"from":"2003-09-06T20:05:00Z","to":"2003-09-07T15:12:13Z","interface":{"connector":"lwm2m","nodeId":"12345A0409001C1A"}},"timeAggregation":{"interval":"hour","timezone":"+01:00"}}}},"required":true},"responses":{"200":{"description":"Lost messages ratio","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LostMessagesRatioResult"}}}}}}}},"/api/v1/event2action/test/http-push":{"post":{"tags":["Triggers and Actions - Test"],"summary":"Post an http request for testing a webhook","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"testHttpPushV1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpPushWebhookTest"}}},"required":true},"responses":{"200":{"description":"Http push test successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HttpPushTestResult"}}}}}}},"/api/v1/event2action/test/fifo":{"post":{"tags":["Triggers and Actions - Test"],"summary":"Post a FIFO message for testing purposes","description":"This API aims to be used only for testing purpose. Only few calls per minute are allowed. It directly publishes a message into a FIFO, without being processed by decoders, analyzed by event processing or stored into the data storage. The message must be a JSON object (not a Json primitive or array). The test message is sent with 'no retention' : if there is no ongoing MQTT SUB on this FIFO (refer to MQTT 'application' mode in the dev guide), the message will be discarded.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"testFifoMessage","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FifoTestRequest"}}},"required":true},"responses":{"200":{"description":"FIFO test completed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FifoTestResult"}}}}}}},"/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.<br/>These triggers and actions endpoints are related to the routing & alarming notification feature.<br/>\r\nPlease see the dedicated sections in our developer guide for more details.<br/><br/>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.<br/>These triggers and actions endpoints are related to the routing & alarming notification feature.<br/>\r\nPlease see the dedicated sections in our developer guide for more details.<br/><br/>Usage of this API will be reported in your access log under 'routing' category.<br/><br/>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/deviceMgt/twin/model/object-definitions":{"post":{"tags":["Twin models management"],"summary":"Add a custom twin model.","description":"<p>\n  For LwM2M input, custom model objectDefinitionId must be between 10241 and 42800.\n</p>\n<p>\n  ⚠️ IDs between 10241 and 32768 belong to a public class of the LwM2M Object Registry,\n  so they should be used with care as the custom model will supersede the potential public model\n</p>\n<br/><br/>Usage of this API will be reported in your access log under 'twin' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"createCustomModel","parameters":[{"name":"inputFormat","in":"query","description":"Input format used when importing the model. The only available option for now is \"LWM2M\"","required":false,"schema":{"type":"string","default":"LWM2M"}},{"name":"override","in":"query","description":"If TRUE then the imported definition will override the existing one (if it already exists)","required":false,"schema":{"type":"boolean","default":false}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"XML file content in the OMA LwM2M format"}},"required":["file"]}}}},"responses":{"201":{"description":"Custom twin model created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwinModelResponse"}}}}}}},"/api/v1/deviceMgt/twin/data/rules":{"get":{"tags":["Twin data rules management"],"summary":"List twin data rules","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listTwinDataRules","responses":{"200":{"description":"List of twin data rules","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TwinDataRule"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Read forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"post":{"tags":["Twin data rules management"],"summary":"Create new twin data rule","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"createTwinDataRule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwinDataRuleRequest"}}},"required":true},"responses":{"201":{"description":"Twin data rule created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwinDataRule"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}},"403":{"description":"Create forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}}},"/api/v1/deviceMgt/groups":{"get":{"tags":["Device management - Groups - V1"],"summary":"List registered device groups","description":"Managing groups of devices allows you to organize your devices in a hierarchical structure. Groups can be used to target specific subsets of devices when performing operations such as filtering triggers and actions rules, querying their data... Groups can be nested, allowing you to create a tree-like structure of groups and subgroups. <br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listGroups","parameters":[{"name":"limit","in":"query","description":"the maximum number of items per page (optional)","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"offset","in":"query","description":"the requested page number (optional)","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"parentId","in":"query","description":"filter list by group's parent. When a parent is set, only direct children are returned (one level). Expected string (max 6 characters)","required":false,"schema":{"type":"string"}},{"name":"groupPath","in":"query","description":"filter list by group's path. When a full path is set, only nodes matching exactly this path are returned.<br/> In order to return nodes matching a path and all descendants, the groupPath must end with <code>/&ast;</code> (ex. <code>/spain/&ast;</code>). <br/> In order to return direct children nodes -only- of a path, the groupPath must end with <code>/&ast;/</code> (ex. <code>/spain/&ast;/</code>). <br/>Expected string (max 255 characters)","required":false,"schema":{"type":"string"}},{"name":"X-Total-Count","in":"header","description":"true if a total count must be returned in response","required":false,"schema":{"type":"boolean","default":false},"example":true}],"responses":{"200":{"description":"The list of groups","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Group"}}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"post":{"tags":["Device management - Groups - V1"],"summary":"Create a device group","description":"Managing groups of devices allows you to organize your devices in a hierarchical structure. Groups can be used to target specific subsets of devices when performing operations such as filtering triggers and actions rules, querying their data... Groups can be nested, allowing you to create a tree-like structure of groups and subgroups. Create a new device group. Expected string (max 6 characters)<br/><br/>Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"createGroup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupCreateRequest"}}},"required":true},"responses":{"201":{"description":"The group newly created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Group"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"the server cannot or will not process the request due to something that is perceived to be a client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"Group already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/explorer/stats":{"post":{"tags":["Inventory Explorer"],"summary":"Count and aggregate devices across the fleet.","description":"Provides aggregation and counting capabilities over the entire fleet inventory index.\nIt is intended for dashboards, analytics, and reporting where you need counts and distributions\nrather than individual device details.\n<br/><p><span style=\"text-decoration: underline;\">RSQL supported fields are</span>:</p>\n<ul>\n<li>\"name\": device name</li>\n<li>\"id\": device identifier</li>\n<li>\"group.path\": group path</li>\n<li>\"group.id\": group identifier</li>\n<li>\"tags\": tags</li>\n<li>\"properties.k\": properties key</li>\n<li>\"properties.v\": properties value</li>\n<li>\"properties\": properties (associated with =q= operator)</li>\n<ul>\n<li>Ex: properties=q='k==myKey and v==myValue'</li>\n<li>Ex: properties=q='k==\"my key\" and v==myValue'</li>\n</ul>\n<li>\"property.\": properties (associated with key value, the key must contain only alphanumeric characters and '_')</li>\n<ul>\n<li>Ex: property.myKey==myValue</li>\n</ul>\n<li>\"interfaces\": interface (associated with =q= operator)</li>\n<li>\"interfaces.connector\": interface connector type (Ex: sms, lora, mqtt)</li>\n<li>\"interfaces.nodeId\": interface node identifier</li>\n<li>\"interfaces.enabled\": interface state (true or false)</li>\n<li>\"interfaces.status\": interface status (REGISTERED,\n    INITIALIZING,\n    INITIALIZED,\n    REACTIVATED,\n    ONLINE,\n    ACTIVATED,\n    OFFLINE,\n    SLEEPING,\n    DEACTIVATED,\n    CONNECTIVITY_ERROR,\n    UNKNOWN)</li>\n<li>\"interfaces.definition.profile\": interface profile</li>\n<li>\"activities\": activities (associated with =q= operator)</li>\n<li>\"activities.ruleId\": activities rule identifier</li>\n<li>\"activities.state\": activities state (UNKNOWN, SILENT, ACTIVE)</li>\n<li>\"aggregatedActivityState\": aggregated activity state (UNKNOWN, SILENT, ACTIVE)</li>\n<li>\"network.lora.lostMessagesRangeLabel\": Bucket (0-10%, 10-20%, 20-30%, 30-100%) corresponding to the Lora lost messages ratio</li>\n</ul><br /><p><span style=\"text-decoration: underline;\">RSQL supported operators are</span>:</p>\n<ul>\n<li>\"==\": equality</li>\n<li>\"==<value>*\": equality with prefix</li>\n<ul>\n<li>Ex: tags==val* means search for all tags starting with val characters</li>\n</ul>\n<li>\"!=\": difference</li>\n<li>\"=q='<sub_request>'\": equality only for activity, interfaces, properties fields</li>\n<ul>\n<li>Ex: properties=q='k==myKey and v==myValue' equivalent to property.myKey==myValue</li>\n</ul>\n<li>\"=in=\": group of possible value (corresponding to several or operators)</li>\n<ul>\n<li>Ex: activity.state=in=(silent, active) equivalent to activity.state==silent or activity.state==active</li>\n</ul>\n<li>\"and\"</li>\n<li>\";\": identical to and operator</li>\n<li>\"or\"</li>\n<li>\",\": identical to or operator</li>\n</ul><br /><p><span style=\"text-decoration: underline;\">RSQL complex syntax using (), '', \"\" can be executed</span>:</p>\n<ul>\n<li>(tags==myTag or name==awesome*) and (group.path==/foo/* or properties=q='k==Version and v==\"my complete value\"' and interfaces.connector==lora)</li>\n<li>tags=='Aujourd'hui'</li>\n\"</ul><br /><p>The inventory service maintains an indexed version of the whole fleet.\nAs a consequence, a latency of a few seconds has to be expected before the current state of the fleet is available in the inventory index,\nthis latency can be longer especially when dealing with very large fleets.</p><br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"createStats","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsRequest"},"examples":{"Interfaces connectors and status":{"$ref":"swagger/static/examples/dm/explorer/stats_interfaces_request.json"},"Location":{"$ref":"swagger/static/examples/dm/explorer/stats_location_request.json"},"Location and interfaces":{"$ref":"swagger/static/examples/dm/explorer/stats_location_interfaces_request.json"},"Properties":{"$ref":"swagger/static/examples/dm/explorer/stats_nested_filter_properties_request.json"},"Lora lost messages":{"$ref":"swagger/static/examples/dm/explorer/stats_lora_lost_messages_range_request.json"}}}},"required":true},"responses":{"200":{"description":"Stats response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StatsResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}}},"/api/v1/deviceMgt/explorer/search":{"post":{"tags":["Inventory Explorer"],"summary":"Search devices in the inventory index.","description":"Enables querying and retrieving detailed device information from the entire fleet inventory index\nwith flexible filtering capabilities. Unlike standard device management APIs, this endpoint queries an enriched,\nindexed representation of devices, optimized for complex search operations and list views.\n<br/><p><span style=\"text-decoration: underline;\">RSQL supported fields are</span>:</p>\n<ul>\n<li>\"name\": device name</li>\n<li>\"id\": device identifier</li>\n<li>\"group.path\": group path</li>\n<li>\"group.id\": group identifier</li>\n<li>\"tags\": tags</li>\n<li>\"properties.k\": properties key</li>\n<li>\"properties.v\": properties value</li>\n<li>\"properties\": properties (associated with =q= operator)</li>\n<ul>\n<li>Ex: properties=q='k==myKey and v==myValue'</li>\n<li>Ex: properties=q='k==\"my key\" and v==myValue'</li>\n</ul>\n<li>\"property.\": properties (associated with key value, the key must contain only alphanumeric characters and '_')</li>\n<ul>\n<li>Ex: property.myKey==myValue</li>\n</ul>\n<li>\"interfaces\": interface (associated with =q= operator)</li>\n<li>\"interfaces.connector\": interface connector type (Ex: sms, lora, mqtt)</li>\n<li>\"interfaces.nodeId\": interface node identifier</li>\n<li>\"interfaces.enabled\": interface state (true or false)</li>\n<li>\"interfaces.status\": interface status (REGISTERED,\n    INITIALIZING,\n    INITIALIZED,\n    REACTIVATED,\n    ONLINE,\n    ACTIVATED,\n    OFFLINE,\n    SLEEPING,\n    DEACTIVATED,\n    CONNECTIVITY_ERROR,\n    UNKNOWN)</li>\n<li>\"interfaces.definition.profile\": interface profile</li>\n<li>\"activities\": activities (associated with =q= operator)</li>\n<li>\"activities.ruleId\": activities rule identifier</li>\n<li>\"activities.state\": activities state (UNKNOWN, SILENT, ACTIVE)</li>\n<li>\"aggregatedActivityState\": aggregated activity state (UNKNOWN, SILENT, ACTIVE)</li>\n<li>\"network.lora.lostMessagesRangeLabel\": Bucket (0-10%, 10-20%, 20-30%, 30-100%) corresponding to the Lora lost messages ratio</li>\n</ul><br /><p><span style=\"text-decoration: underline;\">RSQL supported operators are</span>:</p>\n<ul>\n<li>\"==\": equality</li>\n<li>\"==<value>*\": equality with prefix</li>\n<ul>\n<li>Ex: tags==val* means search for all tags starting with val characters</li>\n</ul>\n<li>\"!=\": difference</li>\n<li>\"=q='<sub_request>'\": equality only for activity, interfaces, properties fields</li>\n<ul>\n<li>Ex: properties=q='k==myKey and v==myValue' equivalent to property.myKey==myValue</li>\n</ul>\n<li>\"=in=\": group of possible value (corresponding to several or operators)</li>\n<ul>\n<li>Ex: activity.state=in=(silent, active) equivalent to activity.state==silent or activity.state==active</li>\n</ul>\n<li>\"and\"</li>\n<li>\";\": identical to and operator</li>\n<li>\"or\"</li>\n<li>\",\": identical to or operator</li>\n</ul><br /><p><span style=\"text-decoration: underline;\">RSQL complex syntax using (), '', \"\" can be executed</span>:</p>\n<ul>\n<li>(tags==myTag or name==awesome*) and (group.path==/foo/* or properties=q='k==Version and v==\"my complete value\"' and interfaces.connector==lora)</li>\n<li>tags=='Aujourd'hui'</li>\n\"</ul><br /><p>The inventory service maintains an indexed version of the whole fleet.\nAs a consequence, a latency of a few seconds has to be expected before the current state of the fleet is available in the inventory index,\nthis latency can be longer especially when dealing with very large fleets.</p><br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"createSearch","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchRequest"},"examples":{"Group and interfaces":{"$ref":"swagger/static/examples/dm/explorer/search_rsql_interface_request.json"},"Tags and activity state":{"$ref":"swagger/static/examples/dm/explorer/search_rsql_tags_request.json"},"Partial search":{"$ref":"swagger/static/examples/dm/explorer/search_partial_request.json"},"Location":{"$ref":"swagger/static/examples/dm/explorer/search_geobounds_request.json"},"Lora lost messages":{"$ref":"swagger/static/examples/dm/explorer/search_lora_lost_messages_request.json"}}}},"required":true},"responses":{"200":{"description":"Search response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices":{"get":{"tags":["Device management - Inventory - V1"],"summary":"List registered devices","description":"<p>The inventory service maintains an indexed version of the whole fleet.\nAs a consequence, a latency of a few seconds has to be expected before the current state of the fleet is available in the inventory index,\nthis latency can be longer especially when dealing with very large fleets.</p><br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listDevicesV1","parameters":[{"name":"property.{filterName}","in":"query","description":"[Cannot be tested in swagger-ui] Multiple filters, Example : devices?property.temperature=25&property.humidity=58\nMax number of properties depends of your offer settings. A property name must not include following characters <code>$.NULL</code> and max length is 128. Invalid property names are : 'class', '_class'. Property value max length is 256.","schema":{"type":"string","example":"property_value"}},{"name":"limit","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"string","default":"20"}},{"name":"offset","in":"query","description":"number of items to skip (optional & DEPRECATED if >10000, please use bookmarkId Instead)","required":false,"deprecated":true,"schema":{"type":"integer","format":"int32"}},{"name":"bookmarkId","in":"query","description":"id of the last document retrieved that can be used to paginate : first result will be the one following this document id","required":false,"schema":{"type":"string"}},{"name":"sort","in":"query","description":"sorting list by attributes. Supported columns: id, name, created, updated, group, interfaces.status, interfaces.enabled, interfaces.lastContact). Example: [\"id\",\"-created\"]. ","required":false,"schema":{"type":"array","items":{"type":"string"}}},{"name":"id","in":"query","description":"filter list by device identifier. Must respect the following regular expression <code>^\\*?(?:[\\w:|\\-]|\\.\\*)*\\*?$</code>.Expected string (max 269 characters) Example: \"urn:lo:nsid:mqtt:dev-00*\".","required":false,"schema":{"type":"string"}},{"name":"groupPath","in":"query","description":"filter list by device groupPath.  (with optional use of wildcard '/*' at the end of search term). Expected string (max 255 characters)","required":false,"schema":{"type":"string"}},{"name":"groupId","in":"query","description":"filter list by device groupId. Expected string (max 6 characters)","required":false,"schema":{"type":"string"}},{"name":"name","in":"query","description":"filter list by device name.  (with optional use of wildcard '*' at the beginning or end of search term)Expected string (max 255 characters)","required":false,"schema":{"type":"string"}},{"name":"tags","in":"query","description":"filter list by device tags. Max number of tags depends on your offer settings. Tag value max length is 32.","required":false,"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}},{"name":"connectors","in":"query","description":"list devices with interfaces of the specified connector(s). Example: \"mqtt, lora\".","required":false,"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}},{"name":"interfaces.nodeId","in":"query","description":"filter list by nodeId. Must respect the following regular expression <code>^\\*?[\\w\\-_:]{1,269}\\*?$</code>.Expected string (max 269 characters)","required":false,"schema":{"type":"string"}},{"name":"interfaces.status","in":"query","description":"filter list by interface status. Supported values: REGISTERED, INITIALIZING, INITIALIZED, ONLINE, OFFLINE, SLEEPING, ACTIVATED, REACTIVATED, DEACTIVATED, CONNECTIVITY_ERROR.","required":false,"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}},{"name":"interfaces.enabled","in":"query","description":"filter list by interface enabled state.","required":false,"schema":{"type":"boolean"}},{"name":"activityStates","in":"query","description":"filter list by activity state. Supported values: ACTIVE, SILENT, UNKNOWN","required":false,"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}},{"name":"filterQuery","in":"query","description":"device filter expression using RSQL notation.  Supported device properties are 'groupPath', 'groupId', 'tags', 'connector', 'properties'. Supported RSQL operators are '==','!=','=in=','and','or,'. ","required":false,"schema":{"type":"string"}},{"name":"fields","in":"query","description":"list of fields to return.  Amongst: 'id', 'name', 'description', 'tags', 'properties', 'group', 'interfaces', 'activityState', 'defaultDataStreamId', 'created', 'updated'), default: id, name, tags & group, deprecated values: 'config', 'resources'","required":false,"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}},{"name":"X-Total-Count","in":"header","description":"true if a total count must be returned in response","required":false,"schema":{"type":"boolean","default":false},"example":true}],"responses":{"200":{"description":"The list of devices","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Device"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"post":{"tags":["Device management - Inventory - V1"],"summary":"Create a device","description":"Please refer to the 'Device Management > Interfaces' API notes for more information about 'interfaces.[x].definition' content<br/><br/>Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"createDeviceV1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceCreateRequest"},"examples":{"LoRa device":{"$ref":"swagger/static/examples/dm/inventory/lora_device_request.json"},"SMS device":{"$ref":"swagger/static/examples/dm/inventory/sms_device_request.json"},"MQTT device":{"$ref":"swagger/static/examples/dm/inventory/mqtt_device_request.json"},"Device with external interface":{"$ref":"swagger/static/examples/dm/inventory/x_connector_device_request.json"},"LwM2M device":{"$ref":"swagger/static/examples/dm/inventory/lwm2m_device_request.json"},"Device without interface":{"$ref":"swagger/static/examples/dm/inventory/no_interface_device_request.json"}}}},"required":true},"responses":{"200":{"description":"The device newly created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Device"},"examples":{"LoRa device":{"$ref":"swagger/static/examples/dm/inventory/lora_device_response.json"},"SMS device":{"$ref":"swagger/static/examples/dm/inventory/sms_device_response.json"},"MQTT device":{"$ref":"swagger/static/examples/dm/inventory/mqtt_device_response.json"},"Device with external interface":{"$ref":"swagger/static/examples/dm/inventory/x_connector_device_response.json"},"LwM2M device":{"$ref":"swagger/static/examples/dm/inventory/lwm2m_device_response.json"}}}}},"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":"the server cannot or will not process the request due to something that is perceived to be a client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"Device already exists in the device manager","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/twin/operations":{"get":{"tags":["Twin operations management"],"summary":"List twin operations from a given deviceId","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listTwinOperations","parameters":[{"name":"deviceId","in":"path","description":"A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"contextToken","in":"query","description":"filter on contextToken","required":false,"schema":{"type":"string"}},{"name":"type","in":"query","description":"filter list of operation type","required":false,"schema":{"$ref":"#/components/schemas/TwinOperationTypeFilter"}},{"name":"status","in":"query","description":"filter list of operation status","required":false,"schema":{"$ref":"#/components/schemas/TwinOperationStatusFilter"}},{"name":"path","in":"query","description":"filter on path","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of twin operations","content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/AbbreviatedTwinOperationExecuteResponse"},{"$ref":"#/components/schemas/AbbreviatedTwinOperationReadResponse"},{"$ref":"#/components/schemas/AbbreviatedTwinOperationWriteMetadataResponse"},{"$ref":"#/components/schemas/AbbreviatedTwinOperationWriteResponse"}]}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}},"403":{"description":"Read forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}},"post":{"tags":["Twin operations management"],"summary":"Create twin operation for a given deviceId","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"createTwinOperation","parameters":[{"name":"deviceId","in":"path","description":"A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"description":"Twin operation to create","oneOf":[{"$ref":"#/components/schemas/TwinOperationExecute"},{"$ref":"#/components/schemas/TwinOperationRead"},{"$ref":"#/components/schemas/TwinOperationWrite"},{"$ref":"#/components/schemas/TwinOperationWriteMetadata"}]},"examples":{"read":{"description":"This example will produce a read operation for the target object 5 instance 0 attribute 1.This operation has an extra contextToken to tag operation.","value":{"type":"READ","paths":["/5/0/1"],"options":{"lwm2m":{"contentFormat":{"response":"SENML_JSON"}}},"contextToken":"swagger first example"}},"read composite":{"description":"This example will produce a composite read operation for the target all objects 1, object 5 instance 1, object 5 instance 0 attribute 1 and object 5 instance 0 attribute 8 instance 1","value":{"type":"READ","paths":["/1","/5/1","/5/0/1","/5/0/8/1"],"options":{"lwm2m":{"contentFormat":{"request":"SENML_CBOR","response":"SENML_CBOR"}}}}},"write simple, update mode":{"description":"This example will produce a simple write operation to update `/5/0/8/1` with value `33`.","value":{"type":"WRITE","paths":["/5/0/8/1"],"writeMode":"UPDATE","values":[{"path":"/5/0/8/1","value":"33"}],"options":{"lwm2m":{"contentFormat":{"request":"SENML_CBOR"}}}}},"write composite, update mode":{"description":"This example will produce a composite write operation to update `/5/0/8/1` with value `33` and update `/5/0/8/2` with value `34`.","value":{"type":"WRITE","paths":["/5/0/8"],"writeMode":"UPDATE","values":[{"path":"/5/0/8/1","value":"33"},{"path":"/5/0/8/2","value":"34"}],"options":{"lwm2m":{"contentFormat":{"request":"SENML_CBOR","response":"SENML_CBOR"}}}}},"write composite, replace mode":{"description":"This example will produce a composite write operation to replace `/1/0/25` multi-instances attributes with value `22` for attribute instance `0` and `23` for attribute instance `2`. Other `/1/0/25` attributes instances will be removed. <br>A specific `content format` can be set for both request and response. ","value":{"type":"WRITE","paths":["/1/0/25"],"writeMode":"REPLACE","options":{"lwm2m":{"contentFormat":{"request":"SENML_CBOR"}}},"values":[{"path":"/1/0/25/0","value":"22"},{"path":"/1/0/25/2","value":"23"}]}},"write metadata":{"description":"This example will produce a `write-metadata` operation to update metadata (set, update, reset) on `/1/0/7`. <br>This operation is available on one and only one path per request <br>Metadata having its name and value means it will be set or updated <br>Metadata having only its name means it will be unset <br>Currently, Live Objects supports LwM2M 1.0 notification attributes: <br><ul><li>pmin : Minimum Period</li><li>pmax : Maximum Period</li><li>gt   : Greater Than</li><li>lt   : Less Than</li><li>st   : Step</li></ul>","value":{"type":"WRITE-METADATA","values":[{"path":"/1/0/7","metadata":[{"name":"pmin","value":"20"},{"name":"gt","value":"50"},{"name":"lt"}]}]}},"execute":{"description":"This example will produce an execute operation for the target object 5 instance 0 attribute 2","value":{"type":"EXECUTE","paths":["/5/0/2"]}},"execute (with retry)":{"description":"This example will produce an execute operation for the target object 5 instance 0 attribute 2 <br>It contains a policy allowing a maximum of 3 attempts to successfully complete this operation.","value":{"type":"EXECUTE","paths":["/5/0/2"],"policy":{"attempts":3}}}}}},"required":true},"responses":{"201":{"description":"Twin operation created","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TwinOperationExecuteResponse"},{"$ref":"#/components/schemas/TwinOperationReadResponse"},{"$ref":"#/components/schemas/TwinOperationWriteMetadataResponse"},{"$ref":"#/components/schemas/TwinOperationWriteResponse"}]}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}},"403":{"description":"Create forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/twin/observations":{"get":{"tags":["Twin observations"],"summary":"List twin observations for a given device.","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listTwinObservations","parameters":[{"name":"deviceId","in":"path","description":"A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TwinObservation"}}}}}}},"post":{"tags":["Twin observations"],"summary":"Create a twin observation.","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"createTwinObservation","parameters":[{"name":"deviceId","in":"path","description":"A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwinObservationCreateRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwinObservation"}}}}}},"delete":{"tags":["Twin observations"],"summary":"Delete device's twin observations.","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"deleteTwinObservations","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Observations have been removed. Return actual number of removed Observations.","content":{"application/json":{"schema":{"type":"integer","format":"int32"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/resources/{resourceId}":{"get":{"tags":["Device management - Resources"],"summary":"Get a specific device resource","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getDeviceResourceV1","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"resourceId","in":"path","description":"device resource identifier. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The list of device resource versions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceResource"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"post":{"tags":["Device management - Resources"],"summary":"Set device resource versions","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"setDeviceResourceVersionV1","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"resourceId","in":"path","description":"device resource identifier. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeviceResourceRequest"}}},"required":true},"responses":{"200":{"description":"The list of device resource versions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceResource"}}}},"204":{"description":"No Content, device resource version is already updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceResource"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/resources/{resourceId}/updates":{"post":{"tags":["Device management - Resources"],"summary":"Create a device resource update","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"postDeviceResourceUpdateV1","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"resourceId","in":"path","description":"device resource identifier. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeviceResourceWithConnectorRequest"}}},"required":true},"responses":{"201":{"description":"Resource update created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceResourceUpdate"}}}},"204":{"description":"No Content, device resource version is already updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceResourceUpdate"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/resources/updates/{resourceId}/status":{"post":{"tags":["Device management - Resources"],"summary":"Cancel a resource update","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"cancelResourceUpdateV1","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"resourceId","in":"path","description":"device resource identifier. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","description":"force update status change","required":false,"schema":{"type":"boolean","default":false}}],"requestBody":{"content":{"application/json":{"schema":{"type":"string","description":"future state of the resource update, must be CANCELED","enum":["CANCELED"]}}},"required":true},"responses":{"200":{"description":"Update canceled"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/interfaces":{"get":{"tags":["Device management - Interfaces"],"summary":"Get the interface list for a registered device","description":"<p>A device can hold several nodes, each one defining a connectivity - LoRa, MQTT, LwM2M, SMS, X-Connector - of this device.</p>\n<p>The <strong>definition</strong> depends on connector.</p>\n<p><span style=\"text-decoration: underline;\">Lora definition</span>:</p>\n<ul>\n    <li>\"devEUI\": interface EUI</li>\n    <li>\"appEUI\": appEUI of the interface</li>\n    <li>\"appKey\": appKey of the interface</li>\n    <li>\"activationType\": supported value: \"OTAA\"</li>\n    <li>\"profile\": profile of the interface</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n    <li>\"connectivityOptions\": connectivity options used for the interface </li>\n        <ul>\n            <li>\"location\": true/false </li>\n            <li>\"ackUl\": true/false</li>\n        </ul>\n    <li>\"connectivityPlan\": connectivity plan to use for the interface.\n    Should be used preferably at connectivityOptions but at least one of two shall be defined.</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">SMS definition</span>:</p>\n<ul>\n    <li>\"msisdn\": interface phone number.\n    Expected phone number is an international phone number : 6..15 digits starting with country code (ex. '33')\n    and without international prefix (ex. '00').\n    Dummy examples of phone numbers:\n    </li>\n    <ul>\n        <li>Belgium:   32654332211</li>\n        <li>France:    33654332211</li>\n        <li>Spain:     34654332211</li>\n        <li>Romania:   40654332211</li>\n        <li>Slovakia: 421654332211</li>\n    </ul>\n    <li>\"serverPhoneNumber\": (Optional) server phone number</li>\n    <li>\"encoding\": (Optional) name of the decoder that will be used to decode received SMS</li>\n</ul>\n<p>\n<br/>\n\n\n\n</p>\n<p><span style=\"text-decoration: underline;\">MQTT definition</span>:</p>\n<ul>\n    <li>\"clientId\": interface client ID</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">X-CONNECTOR definition</span>:</p>\n<ul>\n    <li>\"nodeId\": id used by the external connector to identify the communicating device (e.g. PUB connector/v1/nodes/{nodeId}/status)</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">LwM2M definition</span>:</p>\n<ul>\n    <li>\"endpointName\": the endpoint client name. Must comply to the format of a nodeId.</li>\n    <li>\"security\": the security information. Mandatory in creation if node is not Bootstrap managed (must be null if it is Bootstrap managed). Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"mode\": the security mode. Example: PSK (case sensitive)</li>\n        <li>\"pskInfo\": the pre-shared key information. Mandatory in PSK mode. Must be null in other security modes.</li>\n        <ul>\n            <li>\"identity\": the PSK identity. Its maximum size is 128 bytes.</li>\n            <li>\"secret\": the pre-shared secret key. Must be between 16 bytes and 64 bytes and encoded in hexadecimal.</li>\n        </ul>\n    </ul>\n    <li>\"bootstrap\": the bootstrap information. Optional. Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"managed\": if true, the 'security' info will be managed by the LwM2M bootstrap operation.</li>\n    </ul>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<br /><p>The <strong>activity</strong> depends on connector.</p>\n<p><span style=\"text-decoration: underline;\">Lora activity</span>:</p>\n<ul>\n    <li>\"lastActivationTs\": (Optional) last activation date of the interface</li>\n    <li>\"lastDeactivationTs\": (Optional) last deactivation date of the interface</li>\n    <li>\"lastSignalLevel\": (Optional) last signal level. \" This value is a signal level computed from last uplink.</li>\n    <li>\"avgSignalLevel\": (Optional) average signal level.\n        \" This value is a signal level computed from uplinks history (PER+SNR+ESP quality indicators aggregate).\n        \" On frame counter reset, the uplinks history and average signal level are reset.</li>\n    <li>\"lastBatteryLevel\": (Optional) last battery level</li>\n    <li>\"lastBatteryLevelTs\": (Optional) date of the last battery level</li>\n    <li>\"lastDlFcnt\": (Optional) last downlink frame counter</li>\n    <li>\"lastUlFcnt\": (Optional) last uplink frame counter</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">SMS activity</span>:</p>\n<ul>\n    <li>\"lastUplink\": (Optional) last uplink date of the interface</li>\n    <ul>\n        <li>\"timestamp\": date of the activity</li>\n        <li>\"serverPhoneNumber\": server phone number used</li>\n    </ul>\n    <li>\"lastDownlink\": (Optional) last downlink date of the connector node</li>\n    <ul>\n        <li>\"timestamp\": date of the activity</li>\n        <li>\"serverPhoneNumber\": server phone number used</li>\n    </ul>\n</ul>\n<p><span style=\"text-decoration: underline;\">MQTT activity</span>:</p>\n<ul>\n    <li>\"apiKeyId\": api key ID used</li>\n    <li>\"mqttVersion\": mqtt version used</li>\n    <li>\"mqttUsername\": mqtt username used</li>\n    <li>\"mqttTimeout\": mqtt timeout</li>\n    <li>\"remoteAddress\"</li>\n    <li>\"lastSessionStartTime\"</li>\n    <li>\"lastSessionEndTime\"</li>\n    <li>\"security\": security information</li>\n    <ul>\n        <li>\"secured\":true/false</li>\n        <li>\"protocol\":(Optional) security protocol used (ex: TLSv1.2)</li>\n        <li>\"cipher\": (Optional) cipher suite (ex: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)</li>\n        <li>\"clientCertAuthentication\": (Optional) true/false</li>\n        <li>\"sniHostname\": (Optional) hostname provided by the Server Name Indication extension</li>\n    </ul>\n</ul>\n<p><span style=\"text-decoration: underline;\">LwM2M activity</span>:</p>\n<ul>\n    <li>\"lwm2mVersion\": version of LwM2M protocol used</li>\n    <li>\"remoteAddress\": last IP used to connect to LiveObjects</li>\n    <li>\"remotePort\": last port used to connect to LiveObjects</li>\n    <li>\"queueMode\": indicator of queueMode usage</li>\n    <li>\"bindings\": last bindings parameters used</li>\n    <li>\"registrationLifetime\": registration lifetime used</li>\n    <li>\"lastRegistrationDate\": last 'Register' date</li>\n    <li>\"lastDeregistrationDate\": last 'Deregister' date</li>\n    <li>\"lastUpdateDate\": last 'Update' date</li>\n    <li>\"lastBootstrapProvisioningDate\": last time the device definition was updated by the LiveObjects bootstrap server</li>\n</ul>\n</ul>\n<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listInterfacesForADevice","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The interfaces list","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceInterface"}},"examples":{"LoRa interface":{"$ref":"swagger/static/examples/dm/interfaces/lora_interface_list_response.json"},"SMS interface":{"$ref":"swagger/static/examples/dm/interfaces/sms_interface_list_response.json"},"MQTT interface":{"$ref":"swagger/static/examples/dm/interfaces/mqtt_interface_list_response.json"},"External interface":{"$ref":"swagger/static/examples/dm/interfaces/x_connector_interface_list_response.json"},"LwM2M interface":{"$ref":"swagger/static/examples/dm/interfaces/lwm2m_interface_list_response.json"}}}}},"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":"The device was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"post":{"tags":["Device management - Interfaces"],"summary":"Add an interface to a registered device","description":"<p>A device can hold several nodes, each one defining a connectivity - LoRa, MQTT, LwM2M, SMS, X-Connector - of this device.</p>\n<p>The <strong>definition</strong> depends on connector.</p>\n<p><span style=\"text-decoration: underline;\">Lora definition</span>:</p>\n<ul>\n    <li>\"devEUI\": interface EUI</li>\n    <li>\"appEUI\": appEUI of the interface</li>\n    <li>\"appKey\": appKey of the interface</li>\n    <li>\"activationType\": supported value: \"OTAA\"</li>\n    <li>\"profile\": profile of the interface</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n    <li>\"connectivityOptions\": connectivity options used for the interface </li>\n        <ul>\n            <li>\"location\": true/false </li>\n            <li>\"ackUl\": true/false</li>\n        </ul>\n    <li>\"connectivityPlan\": connectivity plan to use for the interface.\n    Should be used preferably at connectivityOptions but at least one of two shall be defined.</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">SMS definition</span>:</p>\n<ul>\n    <li>\"msisdn\": interface phone number.\n    Expected phone number is an international phone number : 6..15 digits starting with country code (ex. '33')\n    and without international prefix (ex. '00').\n    Dummy examples of phone numbers:\n    </li>\n    <ul>\n        <li>Belgium:   32654332211</li>\n        <li>France:    33654332211</li>\n        <li>Spain:     34654332211</li>\n        <li>Romania:   40654332211</li>\n        <li>Slovakia: 421654332211</li>\n    </ul>\n    <li>\"serverPhoneNumber\": (Optional) server phone number</li>\n    <li>\"encoding\": (Optional) name of the decoder that will be used to decode received SMS</li>\n</ul>\n<p>\n<br/>\n\n\n\n</p>\n<p><span style=\"text-decoration: underline;\">MQTT definition</span>:</p>\n<ul>\n    <li>\"clientId\": interface client ID</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">X-CONNECTOR definition</span>:</p>\n<ul>\n    <li>\"nodeId\": id used by the external connector to identify the communicating device (e.g. PUB connector/v1/nodes/{nodeId}/status)</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">LwM2M definition</span>:</p>\n<ul>\n    <li>\"endpointName\": the endpoint client name. Must comply to the format of a nodeId.</li>\n    <li>\"security\": the security information. Mandatory in creation if node is not Bootstrap managed (must be null if it is Bootstrap managed). Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"mode\": the security mode. Example: PSK (case sensitive)</li>\n        <li>\"pskInfo\": the pre-shared key information. Mandatory in PSK mode. Must be null in other security modes.</li>\n        <ul>\n            <li>\"identity\": the PSK identity. Its maximum size is 128 bytes.</li>\n            <li>\"secret\": the pre-shared secret key. Must be between 16 bytes and 64 bytes and encoded in hexadecimal.</li>\n        </ul>\n    </ul>\n    <li>\"bootstrap\": the bootstrap information. Optional. Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"managed\": if true, the 'security' info will be managed by the LwM2M bootstrap operation.</li>\n    </ul>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<br/><br/>Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"addInterfaceToDevice","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InterfaceCreateRequest"},"examples":{"LoRa interface":{"$ref":"swagger/static/examples/dm/interfaces/lora_interface_request.json"},"SMS interface":{"$ref":"swagger/static/examples/dm/interfaces/sms_interface_request.json"},"MQTT interface":{"$ref":"swagger/static/examples/dm/interfaces/mqtt_interface_request.json"},"External interface":{"$ref":"swagger/static/examples/dm/interfaces/x_connector_interface_request.json"},"LwM2M interface":{"$ref":"swagger/static/examples/dm/interfaces/lwm2m_interface_request.json"}}}},"required":true},"responses":{"201":{"description":"The interface was successfully configured","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceInterface"},"examples":{"LoRa interface":{"$ref":"swagger/static/examples/dm/interfaces/lora_interface_request_response.json"},"SMS interface":{"$ref":"swagger/static/examples/dm/interfaces/sms_interface_request_response.json"},"MQTT interface":{"$ref":"swagger/static/examples/dm/interfaces/mqtt_interface_request_response.json"},"External interface":{"$ref":"swagger/static/examples/dm/interfaces/x_connector_interface_request_response.json"},"LwM2M interface":{"$ref":"swagger/static/examples/dm/interfaces/lwm2m_interface_request_response.json"}}}}},"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":"The device was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/interfaces/{interfaceId}/debug":{"get":{"tags":["Device management - Interfaces"],"summary":"Retrieve debug mode info on a device interface. Restricted to LwM2M and MQTT interfaces.","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getDebugModeInfo","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"interfaceId","in":"path","description":"Must be {connector}:{nodeId}","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The 'Debug Mode' info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugModeInfo"}}}},"404":{"description":"The device or interface was not found, or there is no DebugMode set to this interface","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}},"post":{"tags":["Device management - Interfaces"],"summary":"Activate debug mode on a device interface. This will store additional messages into your activity logs. Restricted to LwM2M and MQTT interfaces.","description":"Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"startDebugMode","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"interfaceId","in":"path","description":"Must be {connector}:{nodeId}","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugModeStartRequest"}}},"required":true},"responses":{"201":{"description":"The 'Debug Mode' was successfully activated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugModeInfo"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}},"404":{"description":"The device or interface was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}},"delete":{"tags":["Device management - Interfaces"],"summary":"Stop debug mode on a device interface. Restricted to LwM2M and MQTT interfaces.","description":"Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"stopDebugMode","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"interfaceId","in":"path","description":"Must be {connector}:{nodeId}","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The 'Debug Mode' was successfully deactivated"},"404":{"description":"The device or interface was not found, or there is no DebugMode set to this interface","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/config":{"get":{"tags":["Device management - Configuration"],"summary":"Get a description of the device configuration","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getDeviceConfigurationV1","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The configuration of the device","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceConfig"}}}},"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":"Unknown device","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"post":{"tags":["Device management - Configuration"],"summary":"Set requested values for a set of device configuration parameters","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"setMultipleDeviceConfigParamsV1","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceParametersSetRequest"},"examples":{"set parameters":{"description":"set parameters","value":{"parameters":{"MyParamINT32":{"type":"INT32","value":-333},"MyParamUINT32":{"type":"UINT32","value":123333},"MyParamFLOAT":{"type":"FLOAT","value":12345.01},"MyParamSTRING":{"type":"STRING","value":"My sentence.."},"MyParamBINARY":{"type":"BINARY","value":"Nzg3ODY4Ng=="}}}}}}},"required":true},"responses":{"200":{"description":"nothing"},"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":"Unknown device","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/commands":{"get":{"tags":["Device management - Commands"],"summary":"List commands targeting a specific device by its identifier (URN).  A command is an instruction sent to a device, telling it to perform a specific action, change a configuration parameter, or report information.","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getDeviceCommandsV1","parameters":[{"name":"deviceId","in":"path","description":"requested commands target device identifier (URN). A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"from","in":"query","description":"Search for commands created after this date. Use ISO-8601 normalization.","required":false,"schema":{"type":"string"},"example":"2018-10-05T15:45:51Z"},{"name":"to","in":"query","description":"Search for commands created before this date. Use ISO-8601 normalization.","required":false,"schema":{"type":"string"},"example":"2018-10-05T15:45:51Z"},{"name":"limit","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"string","default":"20"}},{"name":"offset","in":"query","description":"number of items to skip (optional)","required":false,"schema":{"type":"string","default":"0"}},{"name":"sort","in":"query","description":"sorting list by attributes. DefaultValue : -created.  Supported columns: id, status, created. Example: [\"status\",\"-created\"]. ","required":false,"schema":{"type":"array","items":{"type":"string"}},"example":"status,-created"},{"name":"X-Total-Count","in":"header","description":"true if a total count must be returned in response","required":false,"schema":{"type":"boolean","default":false},"example":true}],"responses":{"200":{"description":"The list of commands of the device","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"},"examples":{"Commands list":{"$ref":"swagger/static/examples/dm/commands/list_command_response.json"}}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown device","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"post":{"tags":["Device management - Commands"],"summary":"Register a new command targeting a device by its identifier (URN).  A command is an instruction sent to a device, telling it to perform a specific action, change a configuration parameter, or report information.","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"addDeviceCommandV1","parameters":[{"name":"deviceId","in":"path","description":"target device identifier (URN). A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"validate","in":"query","description":"Command will be validated by connector before registration. Default is \"true\"","required":false,"schema":{"type":"boolean","default":true}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreationCommandRequest"},"examples":{"LoRa command":{"$ref":"swagger/static/examples/dm/commands/lora_command_request.json"},"SMS text command":{"$ref":"swagger/static/examples/dm/commands/sms_text_command_request.json"},"SMS binary command":{"$ref":"swagger/static/examples/dm/commands/sms_binary_command_request.json"},"MQTT command":{"$ref":"swagger/static/examples/dm/commands/mqtt_command_request.json"},"External interface command":{"$ref":"swagger/static/examples/dm/commands/x_connector_command_request.json"}}}},"required":true},"responses":{"201":{"description":"The command created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"},"examples":{"LoRa command":{"$ref":"swagger/static/examples/dm/commands/lora_command_req_response.json"},"MQTT command":{"$ref":"swagger/static/examples/dm/commands/mqtt_command_req_response.json"},"SMS command":{"$ref":"swagger/static/examples/dm/commands/sms_command_req_response.json"},"External interface command":{"$ref":"swagger/static/examples/dm/commands/x_connector_command_req_response.json"}}}}},"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":"Unknown device","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/device-analytics/rules":{"get":{"tags":["Device Analytics"],"summary":"Retrieve your AnalyticsRules.","description":"An AnalyticsRule defines a fleet of devices whose behavior will be analyzed by algorithms, generating a weekly report. This report includes general fleet behavior, detection of outliers, connectivity status...<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listAnalyticsRules","responses":{"200":{"description":"list of AnalyticsRules","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AnalyticsRule"}}}}}}},"post":{"tags":["Device Analytics"],"summary":"Create an AnalyticsRule.","description":"An AnalyticsRule defines a fleet of devices whose behavior will be analyzed by algorithms, generating a weekly report. This report includes general fleet behavior, detection of outliers, connectivity status... The field `id` must be null, it will be automatically generated<br/><br/>Usage of this API will be reported in your access log under 'device_analytics' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"createAnalyticsRule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsRule"},"examples":{"Rule for a LoRa fleet":{"description":"Rule for a LoRa fleet","value":{"name":"Lora Fleet analytics","fleet":{"connectors":["lora"]},"report":{"recipients":{"to":["jane.doe@mycompany.com"],"cc":["john.doe@mycompany.com"]},"language":"en"},"enabled":true}}}}},"required":true},"responses":{"201":{"description":"AnalyticsRule successfully created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AnalyticsRule"}}}}}}},"/api/v1/data/search":{"post":{"tags":["Data management data search"],"summary":"Query an Elasticsearch Domain Specific Language request","description":"return the json serialization of an Elasticsearch SearchResponse for the query<br/><br/>Restricted to API keys with at least one of the following roles: DATA_R.","operationId":"dslQueryV1","parameters":[{"name":"trackTotalHits","in":"query","description":"if true, hits.total can exceed 10.000; if false, hits.total will be empty; if not set hits.total will not exceed 10.000","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"elasticsearch DSL request"},"examples":{"request with query and aggregation":{"description":"request with query and aggregation","value":{"size":10,"query":{"term":{"model":"dataModel"}},"aggs":{"list_streams":{"terms":{"field":"streamId"}},"count_streams":{"cardinality":{"field":"streamId"}}}}}}}},"required":true},"responses":{"200":{"description":"json serialization of an Elasticsearch SearchResponse for the query","content":{"application/json":{"examples":{"response with query and aggregation":{"description":"response with query and aggregation","value":{"took":35,"hits":{"total":{"value":10000,"relation":"gte"},"hits":[{"_source":{"model":"dataModel","streamId":"device_stream","value":{"temp":15.3}}}]},"aggregations":{"list_streams":{"buckets":[{"key":"stream_device_001","doc_count":3}]},"count_streams":{"value":9513}}}}}}}}}}},"/api/v1/data/search/hits":{"post":{"tags":["Data management data search"],"summary":"Query an Elasticsearch Domain Specific Language request and get only hits result","description":"return a json array of stored data that match the query.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_R.","operationId":"dslQueryHitsOnlyV1","parameters":[{"name":"trackTotalHits","in":"query","description":"if true, x-total-count header can exceed 10.000; if false, header will be missing; if not set, header will not exceed 10.000","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","description":"elasticsearch DSL request"},"examples":{"request with query and aggregation":{"description":"request with query and aggregation","value":{"query":{"bool":{"filter":[{"term":{"metadata.source":"myDeviceId"}},{"range":{"timestamp":{"gt":"now-1d"}}}]}}}}}}},"required":true},"responses":{"200":{"description":"json array of stored data that match the query","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DataStoredWeb"}}}}}}}},"/api/v1/contact/notificationChannels":{"get":{"tags":["Notification channels"],"summary":"List notification channels.","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listNotificationChannels","responses":{"200":{"description":"The notification channels list","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/NotificationChannel"}}}}}}},"post":{"tags":["Notification channels"],"summary":"Create a notification channel.","description":"Usage of this API will be reported in your access log under 'notification' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"createNotificationChannel","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannelRequest"}}},"required":true},"responses":{"201":{"description":"The notification channel was successfully created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotificationChannel"}}}}}}},"/api/v1/bootstrap/lwm2m/masterEntries":{"get":{"tags":["Bootstrap Master Entry"],"summary":"List LwM2M bootstrap master entries.","description":"Restricted to API keys with at least one of the following roles: BOOTSTRAP_R.","operationId":"listBootstrapMasterEntries","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BootstrapMasterEntrySummary"}}}}}}},"post":{"tags":["Bootstrap Master Entry"],"summary":"Create a LwM2M bootstrap master entry.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"createBootstrapMasterEntry","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapMasterEntryRequest"}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapMasterEntry"}}}}}}},"/api/v1/bootstrap/lwm2m/entries":{"get":{"tags":["Bootstrap Entry"],"summary":"List lwm2m bootstrap entries.","description":"Restricted to API keys with at least one of the following roles: BOOTSTRAP_R.","operationId":"listBootstrapEntry","parameters":[{"name":"limit","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"string","default":"20"}},{"name":"bookmarkEndpointName","in":"query","description":"endpointName of the last document retrieved that can be used to paginate : first result will be the one following this document","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BootstrapEntry"}}}}}}},"post":{"tags":["Bootstrap Entry"],"summary":"Create a lwm2m bootstrap entry.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"createBootstrapEntry","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapEntry"},"examples":{"entry":{"description":"entry","value":{"endpointName":"urn:lo:nsid:lwm2m:sensor12Stream","security":{"mode":"PSK","pskInfo":{"identity":"urn:lo:nsid:lwm2m:sensor12Stream","secret":"0123456789ABCDEF0123456789ABCDEF"}},"definition":{"bootstrapConfigId":"5fb4d4ae04ef3d2228ebb459","runServers":[{"id":"LOServer","security":{"pskInfo":{"identity":"urn:lo:nsid:lwm2m:sensor12Stream","secret":"0123456789ABCDEF0123456789ABCDEF"}}}]}}}}}},"required":true},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapEntry"}}}}}}},"/api/v1/bootstrap/lwm2m/entries/{endpointName}/security/secrets":{"post":{"tags":["Bootstrap Entry"],"summary":"Generates bootstrap PSK random secret for each run server in configuration. A valid bootstrap configuration must exist for the targeted entry.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"renewRunServersSecrets","parameters":[{"name":"endpointName","in":"path","description":"The endpoint client name for which the entry will be updated","required":true,"schema":{"type":"string"},"example":"urn:imei:000000000000000"},{"name":"overrideIfExists","in":"query","description":"Override any already existing value if set to true, leave the already existing value if set to false.","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"204":{"description":"No Content"}}}},"/api/v1/bootstrap/lwm2m/entries/search":{"post":{"tags":["Bootstrap Entry"],"summary":"Search for lwm2m bootstrap entries matching specified filters. This API is rate limited based on its compute time (see development guide > Limitation table).","description":"Restricted to API keys with at least one of the following roles: BOOTSTRAP_R.","operationId":"searchBootstrapEntry","parameters":[{"name":"limit","in":"query","description":"the maximum number of items per page (optional, highest value is 100)","required":false,"schema":{"type":"string","default":"20"}},{"name":"bookmarkEndpointName","in":"query","description":"endpointName of the last document retrieved that can be used to paginate : first result will be the one following this document","required":false,"schema":{"type":"string"}},{"name":"showSecuritySecrets","in":"query","description":"whether or not to show the secrets used to authenticate to the LwM2M Run server","required":false,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapEntrySearchRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BootstrapEntry"}}}}}}}},"/api/v1/bootstrap/lwm2m/entries/count":{"post":{"tags":["Bootstrap Entry"],"summary":"Count lwm2m bootstrap entries matching specified filters. This API is rate limited based on its compute time (see development guide > Limitation table).","description":"Restricted to API keys with at least one of the following roles: BOOTSTRAP_R.","operationId":"countBootstrapEntry","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapEntryCountRequest"}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapEntryCountResult"}}}}}}},"/api/v1/bootstrap/lwm2m/configs":{"get":{"tags":["Bootstrap Config"],"summary":"List lwm2m bootstrap configs.","description":"Restricted to API keys with at least one of the following roles: BOOTSTRAP_R.","operationId":"listLwm2mBootstrapConfigs","parameters":[{"name":"limit","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"string","default":"20"}},{"name":"bookmarkId","in":"query","description":"id of the last document retrieved that can be used to paginate : first result will be the one following this document id","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"List of bootstrap configs","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BootstrapConfig"}}}}}}},"post":{"tags":["Bootstrap Config"],"summary":"Create a lwm2m bootstrap config.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"createLwm2mBootstrapConfig","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapConfigRequest"},"examples":{"LO server":{"description":"This example will produce a bootstrap config with specific security and server object for LO","value":{"name":"MyBootstrapConfig","description":"This is a LO bootstrap config","runServers":[{"id":"LOServer","useLiveObjects":true,"renewSecurityOnBootstrap":true,"lwm2mDefinition":{"security":{"shortServerId":1},"server":{"shortServerId":1,"lifetime":300,"binding":"U"}}}]}},"Other server":{"description":"This example will produce a bootstrap config with custom security and server objects","value":{"name":"MyBootstrapConfig","description":"This is my bootstrap config","runServers":[{"id":"myServer","useLiveObjects":false,"lwm2mDefinition":{"security":{"shortServerId":1,"lwm2mServerUri":"myURI","securityMode":0},"server":{"shortServerId":1,"lifetime":300,"binding":"U"}}}]}}}}},"required":true},"responses":{"201":{"description":"Bootstrap config created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapConfig"}}}}}}},"/api/v1/alarms/rules":{"get":{"tags":["Alarm rules"],"summary":"Retrieve your AlarmRules.","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listAlarmRules","responses":{"200":{"description":"list of AlarmRules","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlarmRule"}}}}}}},"post":{"tags":["Alarm rules"],"summary":"Create an AlarmRule.","description":"The field `id` must not be provided, it will be automatically generated<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"createAlarmRule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlarmRule"},"examples":{"Rule for suspended action policy":{"description":"Rule for suspended action policy","value":{"name":"Action policy suspended","enabled":true,"type":"actionPolicySuspended","notifications":{"notificationChannelIds":["default"]}}},"Rule for message delivery success ratio supervision":{"description":"Rule for message delivery success ratio supervision","value":{"type":"messageDeliverySuccessRatio","name":"Delivered message degradation","trigger":{"condition":{"comparisonOperator":"lessThanOrEqualTo","threshold":90.0,"evaluationWindow":"P1D"}},"notifications":{"notificationChannelIds":["default"]}}}}}},"required":true},"responses":{"201":{"description":"AlarmRule successfully created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AlarmRule"}}}}}}},"/api/v0/users":{"get":{"tags":["Users management"],"summary":"List all users in a tenant account","description":"Restricted to API keys with at least one of the following roles: USER_R.","operationId":"listUsers","parameters":[{"name":"size","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"string","default":"20"}},{"name":"page","in":"query","description":"the requested page number (optional)","required":false,"schema":{"type":"string","default":"0"}},{"name":"login","in":"query","description":"login of tenant account (optional) ex: \"login_name\" (deprecated, please use /api/v2 endpoints instead)","required":false,"schema":{"type":"string"}},{"name":"email","in":"query","description":"email of tenant account (optional) ex: \"myAccount@mail.com\"","required":false,"schema":{"type":"string"}},{"name":"externalProvider","in":"query","description":"external (IDP) provider of tenant account (optional) ex: \"SIU\" (deprecated, please use /api/v2 endpoints instead)","required":false,"schema":{"type":"string"}},{"name":"externalId","in":"query","description":"external (IDP) identifier of tenant account (optional) ex: \"57xxxxxxxxxxxxxxxxxxxxxx\" (deprecated, please use /api/v2 endpoints instead)","required":false,"schema":{"type":"string"}},{"name":"externalLogin","in":"query","description":"external (IDP) login of tenant account (optional) ex: \"login_name\" (deprecated, please use /api/v2 endpoints instead)","required":false,"schema":{"type":"string"}},{"name":"userState","in":"query","description":"userState of tenant account (optional) ex: \"[enabled]\"","required":false,"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}}],"responses":{"200":{"description":"The list of the Users of the Tenant","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageableUserForList"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"post":{"tags":["Users management"],"summary":"Create a user","description":"Usage of this API will be reported in your access log under 'user' category.<br/><br/>Restricted to API keys with at least one of the following roles: USER_W.","operationId":"createUserAccount","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserCreationCustomerDefinition"}}},"required":true},"responses":{"200":{"description":"The created User","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/users/{userId}/password":{"post":{"tags":["Self User management"],"summary":"Update user password","description":"Usage of this API will be reported in your access log under 'user' category.<br/><br/>No specific role on API key required.","operationId":"updateUserPassword","parameters":[{"name":"userId","in":"path","description":"the User Identifier. Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateUserPasswordInfo"}}},"required":true},"responses":{"200":{"description":"Updating of the password is done, nothing in the response"},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/users/{userId}":{"get":{"tags":["Users management"],"summary":"Get details of a user in a tenant account","description":"Restricted to API keys with at least one of the following roles: USER_R.","operationId":"getUser","parameters":[{"name":"userId","in":"path","description":"the User Identifier","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The User data are available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"post":{"tags":["Users management"],"summary":"Update a user","description":"Usage of this API will be reported in your access log under 'user' category.<br/><br/>Restricted to API keys with at least one of the following roles: USER_W.","operationId":"updateUser","parameters":[{"name":"userId","in":"path","description":"the User Identifier. Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserUpdateCustomerDefinition"}}},"required":true},"responses":{"200":{"description":"The User data are updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"delete":{"tags":["Users management"],"summary":"Delete a user in a tenant account","description":"Usage of this API will be reported in your access log under 'user' category.<br/><br/>Restricted to API keys with at least one of the following roles: USER_W.","operationId":"deleteUser","parameters":[{"name":"userId","in":"path","description":"the User Identifier. Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deletion of the user is done, nothing in the response"},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/users/activateTrial":{"post":{"tags":["Self User management"],"summary":"Activate discover account","description":"Usage of this API will be reported in your access log under 'user' category.<br/><br/>No specific role on API key required.","operationId":"updateUserPasswordWithTokenWithoutCaptcha","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DiscoverActivationDefinition"}}},"required":true},"responses":{"200":{"description":"Updating of the password is done, nothing in the response"},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/updateEmail":{"post":{"tags":["User authentication management"],"summary":"Update user's email","description":"Usage of this API will be reported in your access log under 'authentication' category.<br/><br/>No specific role on API key required.","operationId":"updateUserEmailWithToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateEmailValidationInfo"}}},"required":true},"responses":{"200":{"description":"OK"}}}},"/api/v0/topics/fifo":{"get":{"tags":["Deprecated - Bus management"],"summary":"Deprecated - Listing FIFO topics. Use forceRefresh=true parameter to get recent fifo statistics.","description":"Use 'Triggers and Actions' instead. <br/><br/>Restricted to API keys with at least one of the following roles: BUS_CONFIG_R.","operationId":"listFifoV0","parameters":[{"name":"size","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"string","default":"20"}},{"name":"page","in":"query","description":"the requested page number (optional)","required":false,"schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"The FIFO list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageableFifoTopic"}}}},"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"}}}}},"deprecated":true},"post":{"tags":["Deprecated - Bus management"],"summary":"Deprecated - Creating a new FIFO. ","description":"Use 'Triggers and Actions' instead, actions targeting unexisting FIFOs will automatically create the corresponding FIFO.<br/><br/>Usage of this API will be reported in your access log under 'routing' category.<br/><br/>Restricted to API keys with at least one of the following roles: BUS_CONFIG_W.","operationId":"createFifoV0","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FifoCreateRequest"}}},"required":true},"responses":{"200":{"description":"OK"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"FIFO creation forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"FIFO already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}},"deprecated":true}},"/api/v0/setpwd":{"post":{"tags":["User authentication"],"summary":"Update user's password","description":"Usage of this API will be reported in your access log under 'authentication' category.","operationId":"updateUserPasswordWithToken","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdatePasswordValidationInfo"}}},"required":true},"responses":{"200":{"description":"OK"}},"security":[]}},"/api/v0/rm":{"get":{"tags":["Device management - Resources management"],"summary":"List all resources","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getResources","parameters":[{"name":"size","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"page","in":"query","description":"the requested page number (optional)","required":false,"schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"Treatment success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageableResource"}}}},"403":{"description":"Request forbidden (missing role)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageableResource"}}}}}},"post":{"tags":["Device management - Resources management"],"summary":"Add a resource in Resource Manager","description":"Usage of this API will be reported in your access log under 'device_resource' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"addResource","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddResourceRequest"}}},"required":true},"responses":{"200":{"description":"Treatment success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Resource"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden (missing role)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/rm/{resourceId}/version":{"get":{"tags":["Device management - Resources management"],"summary":"List resource's versions","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getResourceVersions","parameters":[{"name":"resourceId","in":"path","description":"the resource id. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}},{"name":"size","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"page","in":"query","description":"the requested page number (optional)","required":false,"schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"The list of resource versions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageableResourceVersion"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"post":{"tags":["Device management - Resources management"],"summary":"Add a new version to a resource","description":"Usage of this API will be reported in your access log under 'device_resource' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"addResourceVersion","parameters":[{"name":"resourceId","in":"path","description":"the resource id. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddResourceVersionRequest"}}},"required":true},"responses":{"200":{"description":"The resource version","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceVersion"}}}},"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":"Resource not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"Resource version already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/resetpwd":{"post":{"tags":["User authentication"],"summary":"Request password reset or connection reminder","description":"Initiates a password reset process for internal users or sends connection instructions for external identity provider (merged) users. Requires valid captcha. The user must have a known, valid account. Returns success even if user is not found to prevent enumeration attacks.<br/><br/>Usage of this API will be reported in your access log under 'authentication' category.","operationId":"resetUserPassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResetPasswordValidationInfo"}}},"required":true},"responses":{"200":{"description":"OK"}},"security":[]}},"/api/v0/pipelines":{"get":{"tags":["Data management custom pipelines"],"summary":"Retrieve the list of DataMessage pipelines, ordered by priorityLevel","description":"DataMessage pipelines can transform your data by calling external services in the processing flow.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listPipelines","responses":{"200":{"description":"list of DataMessage pipelines","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Pipeline"}}}}}}},"post":{"tags":["Data management custom pipelines"],"summary":"Create a DataMessage pipeline","description":"DataMessage pipelines can transform your data by calling external services in the processing flow.<br/><br/>Usage of this API will be reported in your access log under 'data_pipeline' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"postPipeline","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}},"required":true},"responses":{"201":{"description":"DataMessage pipeline created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Pipeline"}}}}}}},"/api/v0/logout":{"post":{"tags":["User authentication management"],"summary":"Log out of the current session","description":"No specific role on API key required.","operationId":"logout","parameters":[{"name":"cookie","in":"query","description":"if true, send the API key value in a secure cookie","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"204":{"description":"No Content"}}}},"/api/v0/eventprocessing/stateprocessing-rule":{"get":{"tags":["Event processing - State processing"],"summary":"Retrieve the list of all the StateProcessingRules or get a StateProcessingRule by its name","description":"State processing service aims at detecting changes in 'device state' computed from data messages. A state can represent any result computed from Live Objects data messages : geo-zone ('paris-area', 'london-area', ..), temperature status ('hot', 'cold', ..), availability status ('ok' , 'ko'). Each state is identified by a key retrieved from the user-defined json-path in the data message. stateKeyPath examples : 'streamId', 'metadata.source'...<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listStateProcessingRules","parameters":[{"name":"name","in":"query","description":"name of the StateProcessingRules to retrieve","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"list of StateProcessingRules","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StateProcessingRule"}}}}}}},"post":{"tags":["Event processing - State processing"],"summary":"Create a StateProcessingRule","description":"State processing service aims at detecting changes in 'device state' computed from data messages. A state can represent any result computed from Live Objects data messages : geo-zone ('paris-area', 'london-area', ..), temperature status ('hot', 'cold', ..), availability status ('ok' , 'ko'). Each state is identified by a key retrieved from the user-defined json-path in the data message. stateKeyPath examples : 'streamId', 'metadata.source'... Total number of StateProcessingRule is limited. Contact the commercial team or see developer guide to get more information.<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"createStateProcessingRule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateProcessingRule"}}},"required":true},"responses":{"201":{"description":"StateProcessingRule stored","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateProcessingRule"}}}}}}},"/api/v0/eventprocessing/stateprocessing-rule/test":{"post":{"tags":["Event processing - State processing"],"summary":"test a  State Processing function","description":"State processing service aims at detecting changes in 'device state' computed from data messages. A state can represent any result computed from Live Objects data messages : geo-zone ('paris-area', 'london-area', ..), temperature status ('hot', 'cold', ..), availability status ('ok' , 'ko'). Each state is identified by a key retrieved from the user-defined json-path in the data message. stateKeyPath examples : 'streamId', 'metadata.source'...<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"testStateProcessingRule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateProcessingFunctionTest"}}},"required":true},"responses":{"200":{"description":"State Processing function result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StateProcessingFunctionTestResult"}}}}}}},"/api/v0/eventprocessing/matching-rule":{"get":{"tags":["Event processing - Matching"],"summary":"Retrieve the list of all the MatchingRules or get a MatchingRule by its name","description":"A MatchingRule will be applied on each data message to evaluate if a 'match' occurs. It is evaluated as a boolean result. It supports numeric, string, logic and distance operators and is based on JsonLogic. This MatchingRule should then be linked to a FiringRule to trigger an event when a match occurs.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listMatchingRules","parameters":[{"name":"name","in":"query","description":"name of the MatchingRule to retrieve","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"list of MatchingRules","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/MatchingRule"}}}}}}},"post":{"tags":["Event processing - Matching"],"summary":"Create a MatchingRule","description":"A MatchingRule will be applied on each data message to evaluate if a 'match' occurs. It is evaluated as a boolean result. It supports numeric, string, logic and distance operators and is based on JsonLogic. This MatchingRule should then be linked to a FiringRule to trigger an event when a match occurs. Total number of MatchingRules is limited. Contact the commercial team or see developer guide to get more information.<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"createMatchingRule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchingRule"}}},"required":true},"responses":{"201":{"description":"MatchingRule stored","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MatchingRule"}}}}}}},"/api/v0/eventprocessing/matching-rule/test":{"post":{"tags":["Event processing - Matching"],"summary":"Test a JsonLogic predicate with some data sample","description":"It can be used for troubleshooting or for testing the matching result of a MatchingRule before applying it. A MatchingRule will be applied on each data message to evaluate if a 'match' occurs. It is evaluated as a boolean result. It supports numeric, string, logic and distance operators and is based on JsonLogic. This MatchingRule should then be linked to a FiringRule to trigger an event when a match occurs.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"testMatchingRule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataMatchTest"}}},"required":true},"responses":{"200":{"description":"Test has been performed. Result is in the response body.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataMatchResult"}}}}}}},"/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.<br/><br/>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.<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>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.<br/><br/>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/activity/rules":{"get":{"tags":["Event processing - Activity"],"summary":"Retrieve the list of all the ActivityRules or get an ActivityRule by its name","description":"An ActivityRule will monitor device activity and trigger events when they become silent after certain amount a time.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listActivityRules","parameters":[{"name":"name","in":"query","description":"name of the ActivityRule to retrieve","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"list of ActivityRules","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ActivityRule"}}}}}}},"post":{"tags":["Event processing - Activity"],"summary":"Create an ActivityRule","description":"An ActivityRule will monitor device activity and trigger events when they become silent after certain amount a time. These activity events can then be forwarded to FIFO or HttpPush with ActionPolicy rules. Total number of ActivityRules is limited.<br/><br/>Usage of this API will be reported in your access log under 'alarming' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"createActivityRule","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityRule"}}},"required":true},"responses":{"201":{"description":"ActivityRule created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActivityRule"}}}}}}},"/api/v0/deviceMgt/campaigns":{"get":{"tags":["Campaign management"],"summary":"List all campaigns","description":"Restricted to API keys with at least one of the following roles: CAMPAIGN_R.","operationId":"listCampaigns","parameters":[{"name":"size","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"page","in":"query","description":"the requested page number (optional)","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"status","in":"query","description":"status list filter","required":false,"schema":{"type":"string","enum":["COMPLETE","INCOMPLETE","RUNNING","SCHEDULED","SERVER_ERROR","CANCELED","CANCELING"]}},{"name":"sort","in":"query","required":false,"schema":{"type":"array","items":{"type":"string","description":"sorting list by attributes (supported columns:  id, name, status, created, updated). DefaultValue : -created","example":"status"}}}],"responses":{"200":{"description":"List of campaigns.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageableCampaign"}}}}}},"post":{"tags":["Campaign management"],"summary":"Create a campaign","description":"Usage of this API will be reported in your access log under 'device_campaign' category.<br/><br/>Restricted to API keys with at least one of the following roles: CAMPAIGN_W.","operationId":"createCampaign","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignDefinition"},"examples":{"Simple config campaign":{"$ref":"swagger/static/examples/campaign/simple_config_operation.json"},"Simple command campaign":{"$ref":"swagger/static/examples/campaign/simple_command_operation.json"},"Simple resource campaign":{"$ref":"swagger/static/examples/campaign/simple_resource_operation.json"},"Simple resource update http campaign":{"$ref":"swagger/static/examples/campaign/simple_resource_update_http_operation.json"},"Simple resource update lwm2m campaign":{"$ref":"swagger/static/examples/campaign/simple_resource_update_lwm2m_operation.json"},"Config, resource and command campaign":{"$ref":"swagger/static/examples/campaign/config_resource_command_operation.json"},"Simple Twin read campaign":{"$ref":"swagger/static/examples/campaign/simple_twin_read_operation.json"},"Simple Twin write campaign":{"$ref":"swagger/static/examples/campaign/simple_twin_write_operation.json"},"Simple Twin write metadata campaign":{"$ref":"swagger/static/examples/campaign/simple_twin_write_metadata_operation.json"},"Simple Twin execute campaign":{"$ref":"swagger/static/examples/campaign/simple_twin_execute_operation.json"},"Multiple Twin operations campaign":{"$ref":"swagger/static/examples/campaign/multiple_twin_operations.json"},"Simple Twin add observation campaign":{"$ref":"swagger/static/examples/campaign/simple_twin_add_observation_operation.json"},"Simple Twin clear observations campaign":{"$ref":"swagger/static/examples/campaign/simple_twin_clear_observation_operation.json"},"Dynamic Twin clear observations campaign":{"$ref":"swagger/static/examples/campaign/dynamic_twin_clear_observation_operation.json"}}}},"required":true},"responses":{"201":{"description":"Campaign has been created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}}}}}},"/api/v0/decoders/csv":{"get":{"tags":["Decoders - CSV"],"summary":"Retrieve the list of CSV decoders filtered by tags","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A CSV decoder handles payload with CSV format.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listCsvDecoders","parameters":[{"name":"tags","in":"query","description":"filter on decoders containing at least one of these tags","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"list of CSV decoders","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CsvPayloadDescription"}}}}}}},"post":{"tags":["Decoders - CSV"],"summary":"Create a CSV decoder","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A CSV decoder handles payload with CSV format. The number of csv decoders is limited to 100.<br/><br/>Usage of this API will be reported in your access log under 'data_decoder' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"registerCsvDecoder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsvPayloadDescription"}}},"required":true},"responses":{"201":{"description":"Csv decoder created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsvPayloadDescription"}}}}}}},"/api/v0/decoders/csv/test":{"post":{"tags":["Decoders - CSV"],"summary":"Test a CSV decoder format with an encoded payload","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A CSV decoder handles payload with CSV format. This API allows you to test the CSV decoder format with an encoded payload. It can be used for troubleshooting or for testing the decoding result before applying it on data messages. The response contains the decoded data as Json if the decoding is successful.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"test","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CsvPayloadDescriptionTestRequest"}}},"required":true},"responses":{"200":{"description":"Test has been performed. Response body contains decoded data as Json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayloadDescriptionTestResult"}}}}}}},"/api/v0/decoders/binary":{"get":{"tags":["Decoders - binary"],"summary":"Retrieve the list of binary decoders","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A binary decoder handles binary payload an uses 'Java Binary Block Parser' DSL.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listBinaryDecoders","parameters":[{"name":"tags","in":"query","description":"filter on decoders containing at least one of these tags","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"list of binary decoders","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/BinaryPayloadDescription"}}}}}}},"post":{"tags":["Decoders - binary"],"summary":"Create a binary decoder","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A binary decoder handles binary payload an uses 'Java Binary Block Parser' DSL. The number of binary decoders is limited to 100.<br/><br/>Usage of this API will be reported in your access log under 'data_decoder' category.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"registerBinaryDecoder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BinaryPayloadDescription"}}},"required":true},"responses":{"201":{"description":"Binary decoder created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BinaryPayloadDescription"}}}}}}},"/api/v0/decoders/binary/test":{"post":{"tags":["Decoders - binary"],"summary":"Test a binary decoder format with an encoded payload","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A binary decoder handles binary payload an uses 'Java Binary Block Parser' DSL. This API allows you to test the binary decoder format with an encoded payload. It can be used for troubleshooting or for testing the decoding result before applying it on data messages. The response contains the decoded data as Json if the decoding is successful.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"testBinaryDecoder","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BinaryPayloadDescriptionTestRequest"}}},"required":true},"responses":{"200":{"description":"Test has been performed. Response body contains decoded data as Json","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PayloadDescriptionTestResult"}}}}}}},"/api/v0/data/streams/{streamId}":{"get":{"tags":["Data management data store"],"summary":"Retrieve the data from a streamId","description":"return an array of StoredDataMessage matching the request parameters. This API is very efficient to retrieve data. If you are looking for a specific device's streamId data message, it is the API to use.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_R.","operationId":"retrieveData","parameters":[{"name":"streamId","in":"path","description":"StreamId from which the data will be retrieved","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"max number of data to return, value is limited to 1000","required":false,"schema":{"type":"integer","format":"int32","default":100,"maximum":1000}},{"name":"timeRange","in":"query","description":"filter data where timestamp is in timeRange (must be ISO 8601 formatted) : ?timeRange=[lowerbound],[upperbound]. Comma is mandatory, lowerbound and upperbound are optionals. Lowerbound is inclusive, upperbound is exclusive.","required":false,"schema":{"type":"array","items":{"type":"string"},"maxItems":2,"minItems":2}},{"name":"bookmarkId","in":"query","description":"id of the last document retrieved that can be used to paginate : first result will be the one following this document id","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"array of DataMessage matching the request parameters","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DataStoredWeb"}}}}}}},"post":{"tags":["Data management data store"],"summary":"Insert a new Data into the stream","description":"In order for the data to be enriched by decoders and pipelines functionalities, 'metadata.encoding' field must be set.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_W.","operationId":"addDataMessage","parameters":[{"name":"streamId","in":"path","description":"StreamId in which the data will be added. Should not contains following character or space : ' \\ \" ; { } ( )","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataWeb"}}},"required":true},"responses":{"202":{"description":"Request has been accepted. Data processing ongoing.","content":{"application/json":{"schema":{"type":"string"}}}}}}},"/api/v0/data/search":{"post":{"tags":["Deprecated - Data management data search - V0"],"summary":"Query an Elasticsearch Domain Specific Language request","description":"return the json serialization of an Elasticsearch SearchResponse for the query<br/><br/>Restricted to API keys with at least one of the following roles: DATA_R.","operationId":"dslQueryV0","requestBody":{"content":{"application/json":{"schema":{"type":"string","description":"elasticsearch DSL request"}}},"required":true},"responses":{"200":{"description":"json serialization of an Elasticsearch SearchResponse for the query","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JsonObjectForSwagger"}}}}}}},"/api/v0/data/search/hits":{"post":{"tags":["Deprecated - Data management data search - V0"],"summary":"Query an Elasticsearch Domain Specific Language request and get only hits result","description":"return a json array of stored data that match the query.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_R.","operationId":"dslQueryHitsOnlyV0","requestBody":{"content":{"application/json":{"schema":{"type":"string","description":"elasticsearch DSL request"}}},"required":true},"responses":{"200":{"description":"json array of stored data that match the query","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DataStoredWeb"}}}}}}}},"/api/v0/data/bulk":{"post":{"tags":["Data bulk injection"],"summary":"Insert a bulk of new Data","description":"Restricted to API keys with at least one of the following roles: DATA_W.","operationId":"addDataBulk","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DataBulkWeb"}}},"required":true},"responses":{"202":{"description":"Request has been accepted. Data processing ongoing."}}}},"/api/v0/contact":{"post":{"tags":["Notification"],"summary":"API to send message","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"sendMessage","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMessageRequest"},"examples":{"SMS Notification":{"$ref":"swagger/static/examples/contact/contact_sms.json"},"Email Notification":{"$ref":"swagger/static/examples/contact/contact_email.json"}}}},"required":true},"responses":{"200":{"description":"Message is sending, nothing in response"},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"429":{"description":"Too Many Message","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/certificates/ca":{"get":{"tags":["CA certificates"],"summary":"List CA certificates","description":"Restricted to API keys with at least one of the following roles: API_KEY_R.","operationId":"listCertificates","responses":{"200":{"description":"Ca certificates Successfully retrieved","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CaCertificate"}}}}}}},"post":{"tags":["CA certificates"],"summary":"Upload CA certificate","description":"Usage of this API will be reported in your access log under 'security' category.<br/><br/>Restricted to API keys with at least one of the following roles: API_KEY_W.","operationId":"createCertificate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaCertificateDefinition"}}},"required":true},"responses":{"200":{"description":"PEM X.509 CA certificate uploaded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaCertificateRef"}}}},"400":{"description":"Invalid X.509 certificate","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaCertificateRef"}}}}}}},"/api/v0/auth":{"post":{"tags":["User authentication"],"summary":"Authenticate a user","description":"Usage of this API will be reported in your access log under 'authentication' category.","operationId":"authenticateUser","parameters":[{"name":"cookie","in":"query","description":"if true, send the API key value in a secure cookie","required":false,"schema":{"type":"boolean","default":false}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PasswordAuthenticationInfo"}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthResWeb"}}}}},"security":[]}},"/api/v0/apiKeys":{"get":{"tags":["Api keys"],"summary":"List API keys information","description":"List API keys information with pagination. Useful to retrieve associated roles.<br/><br/>Restricted to API keys with at least one of the following roles: API_KEY_R.","operationId":"getApiKeys","parameters":[{"name":"size","in":"query","description":"the maximum number of items per page (optional)","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"page","in":"query","description":"the requested page number (optional)","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"parentId","in":"query","description":"the id of your parent (optional)  ex: \"57xxxxxxxxxxxxxxxxxxxxxx\". Expected identifier (max 24 characters)","required":false,"schema":{"type":"string"}},{"name":"showSessionKeys","in":"query","description":"include the session Keys (optional)","required":false,"schema":{"type":"boolean","default":false}},{"name":"roles","in":"query","description":"list of API Key associated roles (optional). Basic roles are \"USER_R\", \"USER_W\", \"API_KEY_R\", \"API_KEY_W\" or any role string supplied at tenant account creation time. Expected array of role names (max all roles, role value max 255 characters).","required":false,"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}},{"name":"showMasterKey","in":"query","description":"Boolean to show or not the master api key","required":false,"schema":{"type":"boolean","default":true}}],"responses":{"200":{"description":"The list of the ApiKeys","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageableApiKey"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"post":{"tags":["Api keys"],"summary":"Create an API key","description":"Usage of this API will be reported in your access log under 'api_key' category.<br/><br/>Restricted to API keys with at least one of the following roles: API_KEY_W.","operationId":"createApiKey","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyCreationDefinition"}}},"required":true},"responses":{"200":{"description":"The created ApiKey","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/apiKeys/{apiKeyId}":{"get":{"tags":["Api keys"],"summary":"Get API key information","description":"Useful to get information about the API key, like current roles.<br/><br/>Restricted to API keys with at least one of the following roles: API_KEY_R.","operationId":"getApiKey","parameters":[{"name":"apiKeyId","in":"path","description":"the id of your API key. Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}},{"name":"tenantId","in":"query","description":"(unused) identifier of tenant account ex: \"57xxxxxxxxxxxxxxxxxxxxxx\". Expected identifier (max 24 characters)","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"The ApiKey","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"post":{"tags":["Api keys"],"summary":"Update an API key","description":"Update a set of properties of the selected API key<br/><br/>Usage of this API will be reported in your access log under 'api_key' category.<br/><br/>Restricted to API keys with at least one of the following roles: API_KEY_W.","operationId":"updateApiKey","parameters":[{"name":"apiKeyId","in":"path","description":"the id of your API key. Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKeyUpdateDefinition"}}},"required":true},"responses":{"200":{"description":"The updated ApiKey","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"delete":{"tags":["Api keys"],"summary":"Delete an API key","description":"Usage of this API will be reported in your access log under 'api_key' category.<br/><br/>Restricted to API keys with at least one of the following roles: API_KEY_W.","operationId":"deleteApiKey","parameters":[{"name":"apiKeyId","in":"path","description":"identifier of your API key. Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deletion is done, nothing in the response"},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v2/user/profile":{"get":{"tags":["User Profile and Access Management"],"summary":"Get connected user profile","description":"No specific role on API key required.","operationId":"getUserProfile","responses":{"200":{"description":"The user profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"patch":{"tags":["User Profile and Access Management"],"summary":"Update connected user profile (email and lang)","description":"Usage of this API will be reported in your access log under 'user' category.<br/><br/>No specific role on API key required.","operationId":"patchUserProfile","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfilePatchRequestWeb"}}},"required":true},"responses":{"200":{"description":"The updated user profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}":{"get":{"tags":["Device management - Inventory - V1"],"summary":"Get a device","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getDeviceV1","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The requested device","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Device"},"examples":{"LoRa device":{"$ref":"swagger/static/examples/dm/inventory/lora_device_response.json"},"SMS device":{"$ref":"swagger/static/examples/dm/inventory/sms_device_response.json"},"MQTT device":{"$ref":"swagger/static/examples/dm/inventory/mqtt_device_response.json"},"Device with external interface":{"$ref":"swagger/static/examples/dm/inventory/x_connector_device_response.json"},"LwM2M device":{"$ref":"swagger/static/examples/dm/inventory/lwm2m_device_response.json"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"The device was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"delete":{"tags":["Device management - Inventory - V1"],"summary":"Delete a device","description":"Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"deleteDeviceV1","parameters":[{"name":"deviceId","in":"path","description":"Target device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"The device was successfully deleted"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"The device was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"patch":{"tags":["Device management - Inventory - V1"],"summary":"Update a device","description":"Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"updateDeviceV1","parameters":[{"name":"deviceId","in":"path","description":"Targeted device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceUpdateRequest"}}},"required":true},"responses":{"200":{"description":"The device was successfully updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"The device was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/interfaces/{interfaceId}":{"get":{"tags":["Device management - Interfaces"],"summary":"Get a specific interface for a registered device","description":"<p>A device can hold several nodes, each one defining a connectivity - LoRa, MQTT, LwM2M, SMS, X-Connector - of this device.</p>\n<p>The <strong>definition</strong> depends on connector.</p>\n<p><span style=\"text-decoration: underline;\">Lora definition</span>:</p>\n<ul>\n    <li>\"devEUI\": interface EUI</li>\n    <li>\"appEUI\": appEUI of the interface</li>\n    <li>\"appKey\": appKey of the interface</li>\n    <li>\"activationType\": supported value: \"OTAA\"</li>\n    <li>\"profile\": profile of the interface</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n    <li>\"connectivityOptions\": connectivity options used for the interface </li>\n        <ul>\n            <li>\"location\": true/false </li>\n            <li>\"ackUl\": true/false</li>\n        </ul>\n    <li>\"connectivityPlan\": connectivity plan to use for the interface.\n    Should be used preferably at connectivityOptions but at least one of two shall be defined.</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">SMS definition</span>:</p>\n<ul>\n    <li>\"msisdn\": interface phone number.\n    Expected phone number is an international phone number : 6..15 digits starting with country code (ex. '33')\n    and without international prefix (ex. '00').\n    Dummy examples of phone numbers:\n    </li>\n    <ul>\n        <li>Belgium:   32654332211</li>\n        <li>France:    33654332211</li>\n        <li>Spain:     34654332211</li>\n        <li>Romania:   40654332211</li>\n        <li>Slovakia: 421654332211</li>\n    </ul>\n    <li>\"serverPhoneNumber\": (Optional) server phone number</li>\n    <li>\"encoding\": (Optional) name of the decoder that will be used to decode received SMS</li>\n</ul>\n<p>\n<br/>\n\n\n\n</p>\n<p><span style=\"text-decoration: underline;\">MQTT definition</span>:</p>\n<ul>\n    <li>\"clientId\": interface client ID</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">X-CONNECTOR definition</span>:</p>\n<ul>\n    <li>\"nodeId\": id used by the external connector to identify the communicating device (e.g. PUB connector/v1/nodes/{nodeId}/status)</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">LwM2M definition</span>:</p>\n<ul>\n    <li>\"endpointName\": the endpoint client name. Must comply to the format of a nodeId.</li>\n    <li>\"security\": the security information. Mandatory in creation if node is not Bootstrap managed (must be null if it is Bootstrap managed). Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"mode\": the security mode. Example: PSK (case sensitive)</li>\n        <li>\"pskInfo\": the pre-shared key information. Mandatory in PSK mode. Must be null in other security modes.</li>\n        <ul>\n            <li>\"identity\": the PSK identity. Its maximum size is 128 bytes.</li>\n            <li>\"secret\": the pre-shared secret key. Must be between 16 bytes and 64 bytes and encoded in hexadecimal.</li>\n        </ul>\n    </ul>\n    <li>\"bootstrap\": the bootstrap information. Optional. Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"managed\": if true, the 'security' info will be managed by the LwM2M bootstrap operation.</li>\n    </ul>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<br /><p>The <strong>activity</strong> depends on connector.</p>\n<p><span style=\"text-decoration: underline;\">Lora activity</span>:</p>\n<ul>\n    <li>\"lastActivationTs\": (Optional) last activation date of the interface</li>\n    <li>\"lastDeactivationTs\": (Optional) last deactivation date of the interface</li>\n    <li>\"lastSignalLevel\": (Optional) last signal level. \" This value is a signal level computed from last uplink.</li>\n    <li>\"avgSignalLevel\": (Optional) average signal level.\n        \" This value is a signal level computed from uplinks history (PER+SNR+ESP quality indicators aggregate).\n        \" On frame counter reset, the uplinks history and average signal level are reset.</li>\n    <li>\"lastBatteryLevel\": (Optional) last battery level</li>\n    <li>\"lastBatteryLevelTs\": (Optional) date of the last battery level</li>\n    <li>\"lastDlFcnt\": (Optional) last downlink frame counter</li>\n    <li>\"lastUlFcnt\": (Optional) last uplink frame counter</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">SMS activity</span>:</p>\n<ul>\n    <li>\"lastUplink\": (Optional) last uplink date of the interface</li>\n    <ul>\n        <li>\"timestamp\": date of the activity</li>\n        <li>\"serverPhoneNumber\": server phone number used</li>\n    </ul>\n    <li>\"lastDownlink\": (Optional) last downlink date of the connector node</li>\n    <ul>\n        <li>\"timestamp\": date of the activity</li>\n        <li>\"serverPhoneNumber\": server phone number used</li>\n    </ul>\n</ul>\n<p><span style=\"text-decoration: underline;\">MQTT activity</span>:</p>\n<ul>\n    <li>\"apiKeyId\": api key ID used</li>\n    <li>\"mqttVersion\": mqtt version used</li>\n    <li>\"mqttUsername\": mqtt username used</li>\n    <li>\"mqttTimeout\": mqtt timeout</li>\n    <li>\"remoteAddress\"</li>\n    <li>\"lastSessionStartTime\"</li>\n    <li>\"lastSessionEndTime\"</li>\n    <li>\"security\": security information</li>\n    <ul>\n        <li>\"secured\":true/false</li>\n        <li>\"protocol\":(Optional) security protocol used (ex: TLSv1.2)</li>\n        <li>\"cipher\": (Optional) cipher suite (ex: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)</li>\n        <li>\"clientCertAuthentication\": (Optional) true/false</li>\n        <li>\"sniHostname\": (Optional) hostname provided by the Server Name Indication extension</li>\n    </ul>\n</ul>\n<p><span style=\"text-decoration: underline;\">LwM2M activity</span>:</p>\n<ul>\n    <li>\"lwm2mVersion\": version of LwM2M protocol used</li>\n    <li>\"remoteAddress\": last IP used to connect to LiveObjects</li>\n    <li>\"remotePort\": last port used to connect to LiveObjects</li>\n    <li>\"queueMode\": indicator of queueMode usage</li>\n    <li>\"bindings\": last bindings parameters used</li>\n    <li>\"registrationLifetime\": registration lifetime used</li>\n    <li>\"lastRegistrationDate\": last 'Register' date</li>\n    <li>\"lastDeregistrationDate\": last 'Deregister' date</li>\n    <li>\"lastUpdateDate\": last 'Update' date</li>\n    <li>\"lastBootstrapProvisioningDate\": last time the device definition was updated by the LiveObjects bootstrap server</li>\n</ul>\n</ul>\n<p><small>Note: get command are not allowed for X-Connector.</small></p><br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getInterfaceForADevice","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"interfaceId","in":"path","description":"Must be {connector}:{nodeId}","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"An interface","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceInterface"},"examples":{"LoRa interface":{"$ref":"swagger/static/examples/dm/interfaces/lora_interface_update_response.json"},"SMS interface":{"$ref":"swagger/static/examples/dm/interfaces/sms_interface_update_response.json"},"MQTT interface":{"$ref":"swagger/static/examples/dm/interfaces/mqtt_interface_update_response.json"},"LwM2M interface":{"$ref":"swagger/static/examples/dm/interfaces/lwm2m_interface_update_response.json"}}}}},"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":"The device was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"delete":{"tags":["Device management - Interfaces"],"summary":"Delete a device interface","description":"Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"deleteInterface","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"interfaceId","in":"path","description":"Must be {connector}:{nodeId}","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No content"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"patch":{"tags":["Device management - Interfaces"],"summary":"Update a device interface","description":"<p>A device can hold several nodes, each one defining a connectivity - LoRa, MQTT, LwM2M, SMS, X-Connector - of this device.</p>\n<p>The <strong>definition</strong> depends on connector.</p>\n<p><span style=\"text-decoration: underline;\">Lora definition</span>:</p>\n<ul>\n    <li>\"devEUI\": interface EUI</li>\n    <li>\"appEUI\": appEUI of the interface</li>\n    <li>\"appKey\": appKey of the interface</li>\n    <li>\"activationType\": supported value: \"OTAA\"</li>\n    <li>\"profile\": profile of the interface</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n    <li>\"connectivityOptions\": connectivity options used for the interface </li>\n        <ul>\n            <li>\"location\": true/false </li>\n            <li>\"ackUl\": true/false</li>\n        </ul>\n    <li>\"connectivityPlan\": connectivity plan to use for the interface.\n    Should be used preferably at connectivityOptions but at least one of two shall be defined.</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">SMS definition</span>:</p>\n<ul>\n    <li>\"msisdn\": interface phone number.\n    Expected phone number is an international phone number : 6..15 digits starting with country code (ex. '33')\n    and without international prefix (ex. '00').\n    Dummy examples of phone numbers:\n    </li>\n    <ul>\n        <li>Belgium:   32654332211</li>\n        <li>France:    33654332211</li>\n        <li>Spain:     34654332211</li>\n        <li>Romania:   40654332211</li>\n        <li>Slovakia: 421654332211</li>\n    </ul>\n    <li>\"serverPhoneNumber\": (Optional) server phone number</li>\n    <li>\"encoding\": (Optional) name of the decoder that will be used to decode received SMS</li>\n</ul>\n<p>\n<br/>\n\n\n\n</p>\n<p><span style=\"text-decoration: underline;\">MQTT definition</span>:</p>\n<ul>\n    <li>\"clientId\": interface client ID</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">X-CONNECTOR definition</span>:</p>\n<ul>\n    <li>\"nodeId\": id used by the external connector to identify the communicating device (e.g. PUB connector/v1/nodes/{nodeId}/status)</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">LwM2M definition</span>:</p>\n<ul>\n    <li>\"endpointName\": the endpoint client name. Must comply to the format of a nodeId.</li>\n    <li>\"security\": the security information. Mandatory in creation if node is not Bootstrap managed (must be null if it is Bootstrap managed). Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"mode\": the security mode. Example: PSK (case sensitive)</li>\n        <li>\"pskInfo\": the pre-shared key information. Mandatory in PSK mode. Must be null in other security modes.</li>\n        <ul>\n            <li>\"identity\": the PSK identity. Its maximum size is 128 bytes.</li>\n            <li>\"secret\": the pre-shared secret key. Must be between 16 bytes and 64 bytes and encoded in hexadecimal.</li>\n        </ul>\n    </ul>\n    <li>\"bootstrap\": the bootstrap information. Optional. Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"managed\": if true, the 'security' info will be managed by the LwM2M bootstrap operation.</li>\n    </ul>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<br/><br/>Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"updateInterface","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"interfaceId","in":"path","description":"Must be {connector}:{nodeId}","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InterfaceUpdateRequest"},"examples":{"LoRa interface":{"$ref":"swagger/static/examples/dm/interfaces/lora_interface_update.json"},"SMS interface":{"$ref":"swagger/static/examples/dm/interfaces/sms_interface_update.json"},"MQTT interface":{"$ref":"swagger/static/examples/dm/interfaces/mqtt_interface_update.json"},"External interface":{"$ref":"swagger/static/examples/dm/interfaces/x_connector_interface_update.json"},"LwM2M interface":{"$ref":"swagger/static/examples/dm/interfaces/lwm2m_interface_update.json"}}}},"required":true},"responses":{"200":{"description":"An interface","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceInterface"},"examples":{"LoRa interface":{"$ref":"swagger/static/examples/dm/interfaces/lora_interface_update_response.json"},"SMS interface":{"$ref":"swagger/static/examples/dm/interfaces/sms_interface_update_response.json"},"MQTT interface":{"$ref":"swagger/static/examples/dm/interfaces/mqtt_interface_update_response.json"},"External interface":{"$ref":"swagger/static/examples/dm/interfaces/x_connector_interface_update_response.json"},"LwM2M interface":{"$ref":"swagger/static/examples/dm/interfaces/lwm2m_interface_update_response.json"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/connectors/{connector}/nodes/{nodeId}":{"get":{"tags":["Device management - Connector nodes - V1"],"summary":"Get details of a connector node","description":"<p>A device can hold several nodes, each one defining a connectivity - LoRa, MQTT, LwM2M, SMS, X-Connector - of this device.</p>\n<p>The <strong>definition</strong> depends on connector.</p>\n<p><span style=\"text-decoration: underline;\">Lora definition</span>:</p>\n<ul>\n    <li>\"devEUI\": interface EUI</li>\n    <li>\"appEUI\": appEUI of the interface</li>\n    <li>\"appKey\": appKey of the interface</li>\n    <li>\"activationType\": supported value: \"OTAA\"</li>\n    <li>\"profile\": profile of the interface</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n    <li>\"connectivityOptions\": connectivity options used for the interface </li>\n        <ul>\n            <li>\"location\": true/false </li>\n            <li>\"ackUl\": true/false</li>\n        </ul>\n    <li>\"connectivityPlan\": connectivity plan to use for the interface.\n    Should be used preferably at connectivityOptions but at least one of two shall be defined.</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">SMS definition</span>:</p>\n<ul>\n    <li>\"msisdn\": interface phone number.\n    Expected phone number is an international phone number : 6..15 digits starting with country code (ex. '33')\n    and without international prefix (ex. '00').\n    Dummy examples of phone numbers:\n    </li>\n    <ul>\n        <li>Belgium:   32654332211</li>\n        <li>France:    33654332211</li>\n        <li>Spain:     34654332211</li>\n        <li>Romania:   40654332211</li>\n        <li>Slovakia: 421654332211</li>\n    </ul>\n    <li>\"serverPhoneNumber\": (Optional) server phone number</li>\n    <li>\"encoding\": (Optional) name of the decoder that will be used to decode received SMS</li>\n</ul>\n<p>\n<br/>\n\n\n\n</p>\n<p><span style=\"text-decoration: underline;\">MQTT definition</span>:</p>\n<ul>\n    <li>\"clientId\": interface client ID</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">X-CONNECTOR definition</span>:</p>\n<ul>\n    <li>\"nodeId\": id used by the external connector to identify the communicating device (e.g. PUB connector/v1/nodes/{nodeId}/status)</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">LwM2M definition</span>:</p>\n<ul>\n    <li>\"endpointName\": the endpoint client name. Must comply to the format of a nodeId.</li>\n    <li>\"security\": the security information. Mandatory in creation if node is not Bootstrap managed (must be null if it is Bootstrap managed). Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"mode\": the security mode. Example: PSK (case sensitive)</li>\n        <li>\"pskInfo\": the pre-shared key information. Mandatory in PSK mode. Must be null in other security modes.</li>\n        <ul>\n            <li>\"identity\": the PSK identity. Its maximum size is 128 bytes.</li>\n            <li>\"secret\": the pre-shared secret key. Must be between 16 bytes and 64 bytes and encoded in hexadecimal.</li>\n        </ul>\n    </ul>\n    <li>\"bootstrap\": the bootstrap information. Optional. Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"managed\": if true, the 'security' info will be managed by the LwM2M bootstrap operation.</li>\n    </ul>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<br /><p>The <strong>activity</strong> depends on connector.</p>\n<p><span style=\"text-decoration: underline;\">Lora activity</span>:</p>\n<ul>\n    <li>\"lastActivationTs\": (Optional) last activation date of the interface</li>\n    <li>\"lastDeactivationTs\": (Optional) last deactivation date of the interface</li>\n    <li>\"lastSignalLevel\": (Optional) last signal level. \" This value is a signal level computed from last uplink.</li>\n    <li>\"avgSignalLevel\": (Optional) average signal level.\n        \" This value is a signal level computed from uplinks history (PER+SNR+ESP quality indicators aggregate).\n        \" On frame counter reset, the uplinks history and average signal level are reset.</li>\n    <li>\"lastBatteryLevel\": (Optional) last battery level</li>\n    <li>\"lastBatteryLevelTs\": (Optional) date of the last battery level</li>\n    <li>\"lastDlFcnt\": (Optional) last downlink frame counter</li>\n    <li>\"lastUlFcnt\": (Optional) last uplink frame counter</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">SMS activity</span>:</p>\n<ul>\n    <li>\"lastUplink\": (Optional) last uplink date of the interface</li>\n    <ul>\n        <li>\"timestamp\": date of the activity</li>\n        <li>\"serverPhoneNumber\": server phone number used</li>\n    </ul>\n    <li>\"lastDownlink\": (Optional) last downlink date of the connector node</li>\n    <ul>\n        <li>\"timestamp\": date of the activity</li>\n        <li>\"serverPhoneNumber\": server phone number used</li>\n    </ul>\n</ul>\n<p><span style=\"text-decoration: underline;\">MQTT activity</span>:</p>\n<ul>\n    <li>\"apiKeyId\": api key ID used</li>\n    <li>\"mqttVersion\": mqtt version used</li>\n    <li>\"mqttUsername\": mqtt username used</li>\n    <li>\"mqttTimeout\": mqtt timeout</li>\n    <li>\"remoteAddress\"</li>\n    <li>\"lastSessionStartTime\"</li>\n    <li>\"lastSessionEndTime\"</li>\n    <li>\"security\": security information</li>\n    <ul>\n        <li>\"secured\":true/false</li>\n        <li>\"protocol\":(Optional) security protocol used (ex: TLSv1.2)</li>\n        <li>\"cipher\": (Optional) cipher suite (ex: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)</li>\n        <li>\"clientCertAuthentication\": (Optional) true/false</li>\n        <li>\"sniHostname\": (Optional) hostname provided by the Server Name Indication extension</li>\n    </ul>\n</ul>\n<p><span style=\"text-decoration: underline;\">LwM2M activity</span>:</p>\n<ul>\n    <li>\"lwm2mVersion\": version of LwM2M protocol used</li>\n    <li>\"remoteAddress\": last IP used to connect to LiveObjects</li>\n    <li>\"remotePort\": last port used to connect to LiveObjects</li>\n    <li>\"queueMode\": indicator of queueMode usage</li>\n    <li>\"bindings\": last bindings parameters used</li>\n    <li>\"registrationLifetime\": registration lifetime used</li>\n    <li>\"lastRegistrationDate\": last 'Register' date</li>\n    <li>\"lastDeregistrationDate\": last 'Deregister' date</li>\n    <li>\"lastUpdateDate\": last 'Update' date</li>\n    <li>\"lastBootstrapProvisioningDate\": last time the device definition was updated by the LiveObjects bootstrap server</li>\n</ul>\n</ul>\n<p><small>Note: get command are not allowed for X-Connector.</small></p><br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getNode","parameters":[{"name":"connector","in":"path","description":"Connector identifier must respect the following regular expression <code>([\\w\\-]{1,128})</code> (max 128 characters)","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","description":"Node identifier must respect the following regular expression <code>^[\\w\\-_:]{1,269}</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorNode"},"examples":{"LoRa connector node":{"$ref":"swagger/static/examples/dm/connectors/lora_connector_response.json"},"SMS connector node":{"$ref":"swagger/static/examples/dm/connectors/sms_connector_response.json"},"MQTT connector node":{"$ref":"swagger/static/examples/dm/connectors/mqtt_connector_response.json"},"External connector node":{"$ref":"swagger/static/examples/dm/connectors/x_connector_connector_response.json"},"LwM2M connector node":{"$ref":"swagger/static/examples/dm/connectors/lwm2m_connector_response.json"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"delete":{"tags":["Device management - Connector nodes - V1"],"summary":"Delete a connector node","description":"Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"deleteNode","parameters":[{"name":"connector","in":"path","description":"Connector identifier must respect the following regular expression <code>([\\w\\-]{1,128})</code> (max 128 characters)","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","description":"Node identifier must respect the following regular expression <code>^[\\w\\-_:]{1,269}</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"patch":{"tags":["Device management - Connector nodes - V1"],"summary":"Update a connector node","description":"<p>A device can hold several nodes, each one defining a connectivity - LoRa, MQTT, LwM2M, SMS, X-Connector - of this device.</p>\n<p>The <strong>definition</strong> depends on connector.</p>\n<p><span style=\"text-decoration: underline;\">Lora definition</span>:</p>\n<ul>\n    <li>\"devEUI\": interface EUI</li>\n    <li>\"appEUI\": appEUI of the interface</li>\n    <li>\"appKey\": appKey of the interface</li>\n    <li>\"activationType\": supported value: \"OTAA\"</li>\n    <li>\"profile\": profile of the interface</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n    <li>\"connectivityOptions\": connectivity options used for the interface </li>\n        <ul>\n            <li>\"location\": true/false </li>\n            <li>\"ackUl\": true/false</li>\n        </ul>\n    <li>\"connectivityPlan\": connectivity plan to use for the interface.\n    Should be used preferably at connectivityOptions but at least one of two shall be defined.</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">SMS definition</span>:</p>\n<ul>\n    <li>\"msisdn\": interface phone number.\n    Expected phone number is an international phone number : 6..15 digits starting with country code (ex. '33')\n    and without international prefix (ex. '00').\n    Dummy examples of phone numbers:\n    </li>\n    <ul>\n        <li>Belgium:   32654332211</li>\n        <li>France:    33654332211</li>\n        <li>Spain:     34654332211</li>\n        <li>Romania:   40654332211</li>\n        <li>Slovakia: 421654332211</li>\n    </ul>\n    <li>\"serverPhoneNumber\": (Optional) server phone number</li>\n    <li>\"encoding\": (Optional) name of the decoder that will be used to decode received SMS</li>\n</ul>\n<p>\n<br/>\n\n\n\n</p>\n<p><span style=\"text-decoration: underline;\">MQTT definition</span>:</p>\n<ul>\n    <li>\"clientId\": interface client ID</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">X-CONNECTOR definition</span>:</p>\n<ul>\n    <li>\"nodeId\": id used by the external connector to identify the communicating device (e.g. PUB connector/v1/nodes/{nodeId}/status)</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">LwM2M definition</span>:</p>\n<ul>\n    <li>\"endpointName\": the endpoint client name. Must comply to the format of a nodeId.</li>\n    <li>\"security\": the security information. Mandatory in creation if node is not Bootstrap managed (must be null if it is Bootstrap managed). Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"mode\": the security mode. Example: PSK (case sensitive)</li>\n        <li>\"pskInfo\": the pre-shared key information. Mandatory in PSK mode. Must be null in other security modes.</li>\n        <ul>\n            <li>\"identity\": the PSK identity. Its maximum size is 128 bytes.</li>\n            <li>\"secret\": the pre-shared secret key. Must be between 16 bytes and 64 bytes and encoded in hexadecimal.</li>\n        </ul>\n    </ul>\n    <li>\"bootstrap\": the bootstrap information. Optional. Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"managed\": if true, the 'security' info will be managed by the LwM2M bootstrap operation.</li>\n    </ul>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<br/><br/>Usage of this API will be reported in your access log under 'device_inventory' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"updateNode","parameters":[{"name":"connector","in":"path","description":"Connector identifier must respect the following regular expression <code>([\\w\\-]{1,128})</code> (max 128 characters)","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","description":"Node identifier must respect the following regular expression <code>^[\\w\\-_:]{1,269}</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateConnectorNodeRequest"},"examples":{"LoRa connector node":{"$ref":"swagger/static/examples/dm/interfaces/lora_interface_update.json"},"SMS connector node":{"$ref":"swagger/static/examples/dm/interfaces/sms_interface_update.json"},"MQTT connector node":{"$ref":"swagger/static/examples/dm/interfaces/mqtt_interface_update.json"},"External connector node":{"$ref":"swagger/static/examples/dm/interfaces/x_connector_interface_update.json"},"LwM2M connector node":{"$ref":"swagger/static/examples/dm/interfaces/lwm2m_interface_update.json"}}}},"required":true},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectorNode"},"examples":{"LoRa connector node":{"$ref":"swagger/static/examples/dm/connectors/lora_connector_response.json"},"SMS connector node":{"$ref":"swagger/static/examples/dm/connectors/sms_connector_response.json"},"MQTT connector node":{"$ref":"swagger/static/examples/dm/connectors/mqtt_connector_response.json"},"External connector node":{"$ref":"swagger/static/examples/dm/connectors/x_connector_connector_response.json"},"LwM2M connector node":{"$ref":"swagger/static/examples/dm/connectors/lwm2m_connector_response.json"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"409":{"description":"Conflict","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/connectors/lora/gateways/{id}":{"get":{"tags":["Gateway management for LoRa"],"summary":"Get a specific gateway information","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getLoRaGateway","parameters":[{"name":"id","in":"path","description":"identifier of the gateway","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return a list of LoRa gateways","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoraGatewayInfo"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"401":{"description":"Unauthorized. Please check your API Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"patch":{"tags":["Gateway management for LoRa"],"summary":"Update a LoRa gateway.","description":"Set the location property to an empty object to remove the gateway location.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"updateLoRaGateway","parameters":[{"name":"id","in":"path","description":"identifier of the gateway","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoraGatewayDefinition"}}},"required":true},"responses":{"200":{"description":"Return a list of LoRa gateways","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoraGatewayInfo"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"401":{"description":"Unauthorized. Please check your API Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/deviceMgt/campaigns/{campaignId}":{"get":{"tags":["Campaign management"],"summary":"Get a campaign","description":"Restricted to API keys with at least one of the following roles: CAMPAIGN_R.","operationId":"getCampaign","parameters":[{"name":"campaignId","in":"path","description":"identifier of a campaign","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A single campaign definition and status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}}}}},"delete":{"tags":["Campaign management"],"summary":"Delete a campaign","description":"Usage of this API will be reported in your access log under 'device_campaign' category.<br/><br/>Restricted to API keys with at least one of the following roles: CAMPAIGN_W.","operationId":"deleteCampaign","parameters":[{"name":"campaignId","in":"path","description":"identifier of a campaign","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","description":"cancelling mode. When force is false, the campaign manager prevents devices with status not started from starting, cancel devices with status pending and let devices with status in progress finish properly. When force is true, the campaign manager aborts all pending and in progress sequences immediately.","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Campaign deleted."},"202":{"description":"Campaign will be deleted soon."}}},"patch":{"tags":["Campaign management"],"summary":"Update a campaign","description":"Usage of this API will be reported in your access log under 'device_campaign' category.<br/><br/>Restricted to API keys with at least one of the following roles: CAMPAIGN_W.","operationId":"updateCampaign","parameters":[{"name":"campaignId","in":"path","description":"identifier of a campaign","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignUpdating"}}},"required":true},"responses":{"200":{"description":"Campaign has been updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Campaign"}}}}}}},"/api/v2/user/accesses":{"get":{"tags":["User Profile and Access Management"],"summary":"Get connected user accesses list (forbidden in connect-as mode)","description":"No specific role on API key required.","operationId":"getUserAccesses","parameters":[{"name":"size","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"string","default":"20"}},{"name":"page","in":"query","description":"the requested page number (optional)","required":false,"schema":{"type":"string","default":"0"}},{"name":"sort","in":"query","description":"sorting list by attributes.  Supported fields:\"lastAccess\". (Option) Use minus as prefix for descending order. Example: [\"-lastAccess\"].","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"The user accesses","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageableV2UserAccess"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}}},"/api/v2/user/accesses/current":{"get":{"tags":["User Profile and Access Management"],"summary":"Get connected user current access","description":"No specific role on API key required.","operationId":"getCurrentUserAccess","responses":{"200":{"description":"Current user access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAccess"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}}},"/api/v1/networks/cellular/subscriptions/{subscriptionId}":{"get":{"tags":["Beta - Cellular networks management"],"summary":"Get a cellular subscription. BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"<p>A network subscription identified by a subscriptionId. It is linked to a SIM card\nand contains information such as:</p>\n<ul>\n    <li>The last network interaction</li>\n    <li>The attached device</li>\n    <li>The provider of the subscription</li>\n    <li>The SIM card capabilities and IDs</li>\n</ul>\n<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getSubscription","parameters":[{"name":"subscriptionId","in":"path","description":"identifier of subscription ex: \"06xxxxxxx\". Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The requested subscription.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSubscriptionResponse"}}}},"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":"the subscription was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/networks/cellular/subscriptions/{subscriptionId}/traffic/history":{"get":{"tags":["Beta - Cellular networks management"],"summary":"Get the aggregated traffic history for a cellular subscription. BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getTrafficHistory","parameters":[{"name":"subscriptionId","in":"path","description":"identifier of subscription ex: \"06xxxxxxx\". Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"Limit the response to the last n elements (0 < n < 1000)","required":false,"schema":{"type":"integer","format":"int32","default":10}},{"name":"interval","in":"query","description":"Aggregation interval (hour, day or week)","required":false,"schema":{"type":"string","default":"1d","enum":["1h","1d","1w"]}},{"name":"timeZone","in":"query","description":"time zone as TZ database name (ex : Europe/Paris) or UTC offset  (ex : -02:00 or %2B02:00)","required":false,"schema":{"type":"string","default":"UTC"}}],"responses":{"200":{"description":"The requested traffic history.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/TrafficData"}}}}},"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":"The subscription was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/networks/cellular/subscriptions/{subscriptionId}/location":{"get":{"tags":["Beta - Cellular networks management"],"summary":"Get the last known location of a cellular subscription. BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getLocation","parameters":[{"name":"subscriptionId","in":"path","description":"identifier of subscription ex: \"06xxxxxxx\". Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The requested location.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetLocationResponse"}}}},"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":"the location was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/networks/cellular/providers":{"get":{"tags":["Beta - Cellular networks management"],"summary":"List cellular network providers. BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listCellularProviders","responses":{"200":{"description":"The providers list","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ProviderResponse"}}}}}}}},"/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.<p>Not all types of action have metrics. Metrics are not in real time, updated several times a day, and are estimated.<p>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.<p>You can retrieve additional information on errors in your Activity logs.<br/><br/>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 <code>[A-Za-z\\d\\-_~]+</code> (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.<p>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.<p>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.<br/><br/>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.<p>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.<p>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.<br/><br/>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.<p>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.<p>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.<br/><br/>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"}}}}}}},"/api/v1/deviceMgt/twin/model/object-definitions/{objectDefinitionId}":{"get":{"tags":["Twin models management"],"summary":"Read a twin model","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"readPublicModel","parameters":[{"name":"objectDefinitionId","in":"path","description":"object definition identifier the model ex: urn:oma:lwm2m:ext:3442:1.1","required":true,"schema":{"type":"string"}},{"name":"customOnly","in":"query","description":"If TRUE only the custom objects are returned, else custom and public objects are returned","required":false,"schema":{"type":"boolean","default":false}},{"name":"supportedOnly","in":"query","description":"If TRUE only the supported objects are returned, else supported and instantiated objects are returned","required":false,"schema":{"type":"boolean","default":false}},{"name":"childrenFields","in":"query","description":"List of children's fields to return. Amongst: 'pathSegment', 'name', 'description', 'minOccurs', 'maxOccurs', 'type', 'operations', 'attributes'. Following children fields are always returned : 'objectDefinitionId',  'owner'.","required":false,"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}}],"responses":{"200":{"description":"The twin model","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwinModelResponse"}}}}}},"delete":{"tags":["Twin models management"],"summary":"Delete a custom twin model","description":"Usage of this API will be reported in your access log under 'twin' category.<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"deleteCustomModel","parameters":[{"name":"objectDefinitionId","in":"path","description":"object definition identifier the model ex: urn:oma:lwm2m:ext:3442:1.1","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Custom Twin model deleted"}}}},"/api/v1/deviceMgt/twin/data/rules/{dataRuleId}":{"get":{"tags":["Twin data rules management"],"summary":"Get twin data rule from a given dataRuleId","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getTwinDataRule","parameters":[{"name":"dataRuleId","in":"path","description":"Identifier of specific twin data rule. Expected string (max 24 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwinDataRule"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Read forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Twin data rule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}},"delete":{"tags":["Twin data rules management"],"summary":"Delete twin data rule for a given dataRuleId","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"deleteTwinDataRule","parameters":[{"name":"dataRuleId","in":"path","description":"Identifier of specific twin data rule. Expected string (max 24 characters)","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Twin data rule deleted"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Delete forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Twin data rule not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/twin/supported-objects":{"get":{"tags":["Twin devices management"],"summary":"Get twin device supported objects","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"readDeviceSupportedObjects","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Read forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/twin/operations/{operationId}":{"get":{"tags":["Twin operations management"],"summary":"Get twin operation from a given deviceId and operationId","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getTwinOperation","parameters":[{"name":"deviceId","in":"path","description":"A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"operationId","in":"path","description":"Identifier of specific twin operation. Expected string (max 32 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/TwinOperationExecuteResponse"},{"$ref":"#/components/schemas/TwinOperationReadResponse"},{"$ref":"#/components/schemas/TwinOperationWriteMetadataResponse"},{"$ref":"#/components/schemas/TwinOperationWriteResponse"}]}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Read forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/twin/observations/{observationId}":{"get":{"tags":["Twin observations"],"summary":"Get a twin observation.","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getTwinObservation","parameters":[{"name":"deviceId","in":"path","description":"A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"observationId","in":"path","description":"Identifier of specific twin observation.","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwinObservation"}}}}}},"delete":{"tags":["Twin observations"],"summary":"Delete a twin observation.","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"deleteTwinObservation","parameters":[{"name":"deviceId","in":"path","required":true,"schema":{"type":"string"}},{"name":"observationId","in":"path","description":"Identifier of specific twin observation.","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}}}},"/api/v1/deviceMgt/devices/{deviceId}/twin/objects":{"get":{"tags":["Twin devices management"],"summary":"Get twin device objects","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"readDeviceObjects","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"expand","in":"query","description":"If 1 then detailed object is returned","required":false,"schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ParentTwinObject"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Read forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/twin/objects/{objectId}":{"get":{"tags":["Twin devices management"],"summary":"Get twin device object from a given objectId","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"readDeviceDetailedObjectFromObjectId","parameters":[{"name":"deviceId","in":"path","description":"A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"objectId","in":"path","description":"object id value (expect path segment matching ^[a-zA-Z0-9]{1,256}$)","required":true,"schema":{"type":"string"},"example":5},{"name":"expand","in":"query","description":"If 1 then detailed instance is returned","required":false,"schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwinObject"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Read forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/twin/objects/{objectId}/{objectInstanceId}":{"get":{"tags":["Twin devices management"],"summary":"Get twin device object instance from a given objectId and instanceId","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"readDeviceDetailedObjectInstanceFromObjectIdAndInstanceId","parameters":[{"name":"deviceId","in":"path","description":"A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"objectId","in":"path","description":"object id value (expect path segment matching ^[a-zA-Z0-9]{1,256}$)","required":true,"schema":{"type":"string"},"example":5},{"name":"objectInstanceId","in":"path","description":"object instance id value (expect path segment matching ^[a-zA-Z0-9]{1,256}$)","required":true,"schema":{"type":"string"},"example":1}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TwinObjectInstance"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Read forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/resources":{"get":{"tags":["Device management - Resources"],"summary":"Get a map of all device resources","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listDeviceResourcesV1","parameters":[{"name":"deviceId","in":"path","description":"requested target device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The list of device resources versions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceResourceMapResponse"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/resources/updates":{"get":{"tags":["Device management - Resources"],"summary":"Get a list of device resource updates","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getDeviceResourceUpdatesV1","parameters":[{"name":"deviceId","in":"path","description":"requested target device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"offset","in":"query","description":"the requested page number (optional)","required":false,"schema":{"type":"string","default":"0"}},{"name":"limit","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"string","default":"20"}},{"name":"resourceId","in":"query","description":"device resource identifier. Expected string (max 255 characters)","required":false,"schema":{"type":"string"}},{"name":"latest","in":"query","description":"get only the latest","required":false,"schema":{"type":"boolean","default":false}},{"name":"X-Total-Count","in":"header","description":"true if a total count must be returned in response","required":false,"schema":{"type":"boolean","default":false},"example":true}],"responses":{"200":{"description":"The list of device resources updates","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceResourceUpdate"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/data/streams":{"get":{"tags":["Device management - Inventory - V1"],"summary":"Get the list of device's streamIds","description":"Restricted to API keys with at least one of the following roles: DATA_R.","operationId":"getDeviceStreamsV1","parameters":[{"name":"deviceId","in":"path","description":"Targeted device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"maximum number of return items (optional, max 100 items)","required":false,"schema":{"type":"string","default":"10","maximum":100}}],"responses":{"200":{"description":"The requested device streamIds and last data","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceStreamsResponseWeb"}}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"The device was not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/config/parameters":{"get":{"tags":["Device management - Configuration"],"summary":"Get a description of the device configuration parameters","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getDeviceConfigParametersV1","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The map of configuration parameters of the device","content":{"application/json":{"schema":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DeviceParameter"}}}}},"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":"Unknown device","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/config/parameters/{paramKey}":{"get":{"tags":["Device management - Configuration"],"summary":"Get state of a specific device configuration parameter","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getDeviceConfigParameterV1","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"paramKey","in":"path","description":"config parameter identifier/key. Expected string (max 128 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Device configuration parameter details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceParameter"}}}},"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":"Unknown device configuration parameter","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/connectors/{connector}/nodes":{"get":{"tags":["Device management - Connector nodes - V1"],"summary":"List all connector nodes","description":"<p>A device can hold several nodes, each one defining a connectivity - LoRa, MQTT, LwM2M, SMS, X-Connector - of this device.</p>\n<p>The <strong>definition</strong> depends on connector.</p>\n<p><span style=\"text-decoration: underline;\">Lora definition</span>:</p>\n<ul>\n    <li>\"devEUI\": interface EUI</li>\n    <li>\"appEUI\": appEUI of the interface</li>\n    <li>\"appKey\": appKey of the interface</li>\n    <li>\"activationType\": supported value: \"OTAA\"</li>\n    <li>\"profile\": profile of the interface</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n    <li>\"connectivityOptions\": connectivity options used for the interface </li>\n        <ul>\n            <li>\"location\": true/false </li>\n            <li>\"ackUl\": true/false</li>\n        </ul>\n    <li>\"connectivityPlan\": connectivity plan to use for the interface.\n    Should be used preferably at connectivityOptions but at least one of two shall be defined.</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">SMS definition</span>:</p>\n<ul>\n    <li>\"msisdn\": interface phone number.\n    Expected phone number is an international phone number : 6..15 digits starting with country code (ex. '33')\n    and without international prefix (ex. '00').\n    Dummy examples of phone numbers:\n    </li>\n    <ul>\n        <li>Belgium:   32654332211</li>\n        <li>France:    33654332211</li>\n        <li>Spain:     34654332211</li>\n        <li>Romania:   40654332211</li>\n        <li>Slovakia: 421654332211</li>\n    </ul>\n    <li>\"serverPhoneNumber\": (Optional) server phone number</li>\n    <li>\"encoding\": (Optional) name of the decoder that will be used to decode received SMS</li>\n</ul>\n<p>\n<br/>\n\n\n\n</p>\n<p><span style=\"text-decoration: underline;\">MQTT definition</span>:</p>\n<ul>\n    <li>\"clientId\": interface client ID</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">X-CONNECTOR definition</span>:</p>\n<ul>\n    <li>\"nodeId\": id used by the external connector to identify the communicating device (e.g. PUB connector/v1/nodes/{nodeId}/status)</li>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">LwM2M definition</span>:</p>\n<ul>\n    <li>\"endpointName\": the endpoint client name. Must comply to the format of a nodeId.</li>\n    <li>\"security\": the security information. Mandatory in creation if node is not Bootstrap managed (must be null if it is Bootstrap managed). Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"mode\": the security mode. Example: PSK (case sensitive)</li>\n        <li>\"pskInfo\": the pre-shared key information. Mandatory in PSK mode. Must be null in other security modes.</li>\n        <ul>\n            <li>\"identity\": the PSK identity. Its maximum size is 128 bytes.</li>\n            <li>\"secret\": the pre-shared secret key. Must be between 16 bytes and 64 bytes and encoded in hexadecimal.</li>\n        </ul>\n    </ul>\n    <li>\"bootstrap\": the bootstrap information. Optional. Updated as a whole during a PATCH.</li>\n    <ul>\n        <li>\"managed\": if true, the 'security' info will be managed by the LwM2M bootstrap operation.</li>\n    </ul>\n    <li>\"encoding\": (Optional) encoding used in message's payload (use /decoders APIs to define your own decoder)</li>\n</ul>\n<br /><p>The <strong>activity</strong> depends on connector.</p>\n<p><span style=\"text-decoration: underline;\">Lora activity</span>:</p>\n<ul>\n    <li>\"lastActivationTs\": (Optional) last activation date of the interface</li>\n    <li>\"lastDeactivationTs\": (Optional) last deactivation date of the interface</li>\n    <li>\"lastSignalLevel\": (Optional) last signal level. \" This value is a signal level computed from last uplink.</li>\n    <li>\"avgSignalLevel\": (Optional) average signal level.\n        \" This value is a signal level computed from uplinks history (PER+SNR+ESP quality indicators aggregate).\n        \" On frame counter reset, the uplinks history and average signal level are reset.</li>\n    <li>\"lastBatteryLevel\": (Optional) last battery level</li>\n    <li>\"lastBatteryLevelTs\": (Optional) date of the last battery level</li>\n    <li>\"lastDlFcnt\": (Optional) last downlink frame counter</li>\n    <li>\"lastUlFcnt\": (Optional) last uplink frame counter</li>\n</ul>\n<p><span style=\"text-decoration: underline;\">SMS activity</span>:</p>\n<ul>\n    <li>\"lastUplink\": (Optional) last uplink date of the interface</li>\n    <ul>\n        <li>\"timestamp\": date of the activity</li>\n        <li>\"serverPhoneNumber\": server phone number used</li>\n    </ul>\n    <li>\"lastDownlink\": (Optional) last downlink date of the connector node</li>\n    <ul>\n        <li>\"timestamp\": date of the activity</li>\n        <li>\"serverPhoneNumber\": server phone number used</li>\n    </ul>\n</ul>\n<p><span style=\"text-decoration: underline;\">MQTT activity</span>:</p>\n<ul>\n    <li>\"apiKeyId\": api key ID used</li>\n    <li>\"mqttVersion\": mqtt version used</li>\n    <li>\"mqttUsername\": mqtt username used</li>\n    <li>\"mqttTimeout\": mqtt timeout</li>\n    <li>\"remoteAddress\"</li>\n    <li>\"lastSessionStartTime\"</li>\n    <li>\"lastSessionEndTime\"</li>\n    <li>\"security\": security information</li>\n    <ul>\n        <li>\"secured\":true/false</li>\n        <li>\"protocol\":(Optional) security protocol used (ex: TLSv1.2)</li>\n        <li>\"cipher\": (Optional) cipher suite (ex: TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256)</li>\n        <li>\"clientCertAuthentication\": (Optional) true/false</li>\n        <li>\"sniHostname\": (Optional) hostname provided by the Server Name Indication extension</li>\n    </ul>\n</ul>\n<p><span style=\"text-decoration: underline;\">LwM2M activity</span>:</p>\n<ul>\n    <li>\"lwm2mVersion\": version of LwM2M protocol used</li>\n    <li>\"remoteAddress\": last IP used to connect to LiveObjects</li>\n    <li>\"remotePort\": last port used to connect to LiveObjects</li>\n    <li>\"queueMode\": indicator of queueMode usage</li>\n    <li>\"bindings\": last bindings parameters used</li>\n    <li>\"registrationLifetime\": registration lifetime used</li>\n    <li>\"lastRegistrationDate\": last 'Register' date</li>\n    <li>\"lastDeregistrationDate\": last 'Deregister' date</li>\n    <li>\"lastUpdateDate\": last 'Update' date</li>\n    <li>\"lastBootstrapProvisioningDate\": last time the device definition was updated by the LiveObjects bootstrap server</li>\n</ul>\n</ul>\n<p><small>Note: list command are not allowed for X-Connector, MQTT and LWM2M.</small></p><br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listNodes","parameters":[{"name":"connector","in":"path","description":"Connector identifier must respect the following regular expression <code>([\\w\\-]{1,128})</code> (max 128 characters)","required":true,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"string","default":"20"}},{"name":"offset","in":"query","description":"number of items to skip (optional & DEPRECATED, please use bookmarkId instead)","required":false,"deprecated":true,"schema":{"type":"string","default":"0"}},{"name":"bookmarkId","in":"query","description":"id of the last node retrieved that can be used to paginate : first result will be the one following this node id","required":false,"schema":{"type":"string"}},{"name":"X-Total-Count","in":"header","description":"true if a total count must be returned in response","required":false,"schema":{"type":"boolean","default":false},"example":true}],"responses":{"200":{"description":"The connector nodes list","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ConnectorNode"}},"examples":{"LoRa connector node":{"$ref":"swagger/static/examples/dm/connectors/lora_connector_list_response.json"},"SMS connector node":{"$ref":"swagger/static/examples/dm/connectors/sms_connector_list_response.json"},"MQTT connector node":{"$ref":"swagger/static/examples/dm/connectors/mqtt_connector_list_response.json"},"External connector node":{"$ref":"swagger/static/examples/dm/connectors/x_connector_connector_list_response.json"},"LwM2M connector node":{"$ref":"swagger/static/examples/dm/connectors/lwm2m_connector_list_response.json"}}}}},"400":{"description":"Bad request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/connectors/lora/profiles":{"get":{"tags":["Device management - Connector nodes - LoRa specific"],"summary":"Get LoRa device profile IDs available on your fleet","description":"<p>(Deprecated) Replaced by the new device profiles API.</p>\n<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listLoRaDeviceProfileIds","responses":{"200":{"description":"Return the list of LoRa device profile IDs","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"503":{"description":"In case Lora maintenance mode is enabled","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}}},"deprecated":true}},"/api/v1/deviceMgt/connectors/lora/profiles/manufacturers":{"get":{"tags":["Device management - Connector nodes - LoRa specific"],"summary":"List LoRa device manufacturers","description":"<p>A device manufacturer represents a vendor that produces LoRa devices.</p>\n<br/>\n<p>This endpoint returns the list of available LoRa device manufacturers for your fleet.</p>\n<br/>\n<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listLoRaDeviceManufacturers","responses":{"200":{"description":"Return the list of LoRa device manufacturers","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LoraDeviceManufacturer"}}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"503":{"description":"In case Lora maintenance mode is enabled","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LoraDeviceManufacturer"}}}}}}}},"/api/v1/deviceMgt/connectors/lora/profiles/details":{"get":{"tags":["Device management - Connector nodes - LoRa specific"],"summary":"List LoRa device profiles","description":"<p>A device profile defines the interface capabilities and boot parameters that are needed by the network for access service.\nThese information elements shall be provided by the manufacturer.</p>\n<br/>\n<p>LoRa device profiles can include details such as:</p>\n<ul>\n<li>Device type and capabilities</li>\n<li>Communication parameters (frequency, spreading factor, bandwidth)</li>\n<li>Security settings</li>\n<li>Data transmission intervals</li>\n</ul>\n<p>These profiles help manage and identify devices within a LoRa network, ensuring proper communication and functionality.</p>\n<br/>\n<p>This endpoint returns the list of available LoRa device profiles for your fleet.</p>\n<br/>\n<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listLoRaDeviceProfiles","parameters":[{"name":"manufacturerName","in":"query","description":"Filter by manufacturer name","required":false,"schema":{"type":"string"}},{"name":"ismBand","in":"query","description":"Filter by ISM band","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Return the list of LoRa device profiles with details","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LoraDeviceProfile"}}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"503":{"description":"In case Lora maintenance mode is enabled","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LoraDeviceProfile"}}}}}}}},"/api/v1/deviceMgt/connectors/lora/gateways":{"get":{"tags":["Gateway management for LoRa"],"summary":"List your LoRa gateways","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listLoRaGateways","parameters":[{"name":"size","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"page","in":"query","description":"the requested page number (optional)","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"id","in":"query","description":"filtering by identifier (regexp filter) of gateway","required":false,"schema":{"type":"string","default":""},"example":"^(002|0ff)"},{"name":"name","in":"query","description":"filtering by name (regexp filter) of gateway","required":false,"schema":{"type":"string","default":""},"example":".*def.*"},{"name":"status","in":"query","description":"filtering by status of gateway","required":false,"schema":{"type":"string","default":""},"example":"ONLINE"},{"name":"manufacturer","in":"query","description":"filtering by manufacturer of gateway","required":false,"schema":{"type":"string","default":""},"example":"Kerlink"},{"name":"model","in":"query","description":"filtering by model of gateway","required":false,"schema":{"type":"string","default":""},"example":"Warbler"}],"responses":{"200":{"description":"Return a list of LoRa gateways","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageableLoraGatewayInfo"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"401":{"description":"Unauthorized. Please check your API Key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/connectors/lora/connectivities":{"get":{"tags":["Device management - Connector nodes - LoRa specific"],"summary":"List LoRa connectivity plans available for your fleet","description":"<p>A connectivity plan defines the interface capabilities and parameters that are needed by the network for access service.\nThese information elements shall be provided by the manufacturer.</p>\n<br/>\n<p>In case there is at least one inconsistency between your provided list of parameters of connectivity and your \"lora\" offer settings, then\nno result will be returned by this service. Else the content of the result matches provided parameters (case insensitive).</p>\n<p>Depending on your \"lora\" offer settings, test connectivity plans can be excluded from the result.</p>\n<br/>\n<p>Available parameters:\n<ul>\n<li>id: identifier of the connectivity plan (e.g. \"id\":\"12345678\")</li>\n<li>name: name of the connectivity plan (e.g. \"name\":\"my_connectivity_plan\")</li>\n<li>parameters.ackUl: does the connectivity plan has the 'acknowledged  uplink frame' option (e.g. \"parameters.ackUl\":true)</li>\n<li>parameters.location: does the connectivity plan has the 'location' option (e.g. \"parameters.location\":false)</li>\n</ul>\n</p>\n<br/><br/>Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"listLoRaConnectivityPlans","parameters":[{"name":"parameters","in":"query","description":"List of parameters for the connectivity plan","required":false,"schema":{"type":"object","additionalProperties":{}},"example":{"name":"my_connectivity_plan","parameters.location":false}}],"responses":{"200":{"description":"List of LoRa connectivity plans","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LoraNetworkSubscriptionDetail"}}}}},"503":{"description":"In case Lora maintenance mode is enabled","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LoraNetworkSubscriptionDetail"}}}}}}}},"/api/v1/deviceMgt/commands/{commandId}":{"get":{"tags":["Device management - Commands"],"summary":"Get a specific command by its identifier. A command is an instruction sent to a device, telling it to perform a specific action, change a configuration parameter, or report information.","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getCommandV1","parameters":[{"name":"commandId","in":"path","description":"identifier of specific command. Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The command","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"},"examples":{"LoRa command":{"$ref":"swagger/static/examples/dm/commands/lora_command_response.json"},"MQTT command":{"$ref":"swagger/static/examples/dm/commands/mqtt_command_response.json"},"SMS command":{"$ref":"swagger/static/examples/dm/commands/sms_command_response.json"},"External interface command":{"$ref":"swagger/static/examples/dm/commands/x_connector_command_response.json"}}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Command not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}},"delete":{"tags":["Device management - Commands"],"summary":"Delete a specific command by its identifier.  A command is an instruction sent to a device, telling it to perform a specific action, change a configuration parameter, or report information.","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"deleteCommandV1","parameters":[{"name":"commandId","in":"path","description":"identifier of specific command. Expected identifier (max 24 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Command deleted"},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Command not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/device-analytics/rules/{ruleId}/device-analyses/statistics/days/{day}":{"get":{"tags":["Device Analytics"],"summary":"Retrieve the DeviceAnalysisStats for an AnalyticsRule and day BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"Return the list of the fleet's devices statistical analysis, with their communication rate, the status and quality of their connectivity...<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getDevicesAnalysisStats","parameters":[{"name":"ruleId","in":"path","description":"id of the AnalyticsRule","required":true,"schema":{"type":"string"}},{"name":"day","in":"path","description":"day with 'YYYY-MM-DD' format","required":true,"schema":{"type":"string"}},{"name":"bookmarkId","in":"query","description":"deviceId as page bookmark (deviceId of last page of results)","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"page size, value is limited to :1000","required":false,"schema":{"type":"string","default":"1000"}}],"responses":{"200":{"description":"array of DeviceAnalysisStats matching the request.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceAnalysisStats"}}}}}}}},"/api/v1/device-analytics/rules/{ruleId}/device-analyses/statistics/days/{day}/devices/{deviceId}":{"get":{"tags":["Device Analytics"],"summary":"Retrieve the DeviceAnalysisStats for a specific AnalyticsRule, day and deviceId BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"This daily device statistical analysis includes details regarding its communication rate, the quality of its connectivity...<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getDeviceAnalysisStats","parameters":[{"name":"ruleId","in":"path","description":"id of the AnalyticsRule","required":true,"schema":{"type":"string"}},{"name":"day","in":"path","description":"day with 'YYYY-MM-DD' format","required":true,"schema":{"type":"string"}},{"name":"deviceId","in":"path","description":"deviceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"DeviceAnalysisStats matching the request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAnalysisStats"}}}}}}},"/api/v1/device-analytics/rules/{ruleId}/device-analyses/flattened":{"get":{"tags":["Device Analytics"],"summary":"Retrieve the latest flattened human readable DeviceAnalysisResult for an AnalyticsRule BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getFlattenedDevicesAnalysisResult","parameters":[{"name":"ruleId","in":"path","description":"id of the AnalyticsRule","required":true,"schema":{"type":"string"}},{"name":"bookmarkId","in":"query","description":"deviceId as page bookmark (deviceId of last page of results)","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"page size, value is limited to :1000","required":false,"schema":{"type":"string","default":"1000"}}],"responses":{"200":{"description":"array of FlattenedDeviceAnalysisResult matching the request","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/FlattenedDeviceAnalysisResult"}}}}}}}},"/api/v1/device-analytics/rules/{ruleId}/device-analyses/classifications/regular-patterns/devices":{"get":{"tags":["Device Analytics"],"summary":"Retrieve the latest regular pattern classification for all devices of an AnalyticsRule BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getDevicesRegularPatternClassification","parameters":[{"name":"ruleId","in":"path","description":"id of the AnalyticsRule","required":true,"schema":{"type":"string"}},{"name":"bookmarkId","in":"query","description":"deviceId as page bookmark (deviceId of last page of results)","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"page size, value is limited to :1000","required":false,"schema":{"type":"string","default":"1000"}}],"responses":{"200":{"description":"array of DeviceAnalysisRegularPattern matching the request.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceAnalysisRegularPattern"}}}}}}}},"/api/v1/device-analytics/rules/{ruleId}/device-analyses/classifications/regular-patterns/devices/{deviceId}":{"get":{"tags":["Device Analytics"],"summary":"Retrieve the latest regular pattern classification for a specific device BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getDeviceRegularPatternClassification","parameters":[{"name":"ruleId","in":"path","description":"id of the AnalyticsRule","required":true,"schema":{"type":"string"}},{"name":"deviceId","in":"path","description":"deviceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"DeviceAnalysisRegularPattern matching the request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAnalysisRegularPattern"}}}}}}},"/api/v1/device-analytics/rules/{ruleId}/device-analyses/classifications/clusters/devices":{"get":{"tags":["Device Analytics"],"summary":"Retrieve the latest cluster classification for all devices of an AnalyticsRule BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getDevicesClusterClassification","parameters":[{"name":"ruleId","in":"path","description":"id of the AnalyticsRule","required":true,"schema":{"type":"string"}},{"name":"bookmarkId","in":"query","description":"deviceId as page bookmark (deviceId of last page of results)","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"page size, value is limited to :1000","required":false,"schema":{"type":"string","default":"1000"}}],"responses":{"200":{"description":"array of DeviceAnalysisClusterClassification matching the request.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/DeviceAnalysisClusterClassification"}}}}}}}},"/api/v1/device-analytics/rules/{ruleId}/device-analyses/classifications/clusters/devices/{deviceId}":{"get":{"tags":["Device Analytics"],"summary":"Retrieve the latest cluster classification for a specific device BETA - please note that the API is currently in beta state, and therefore still subject to breaking changes.","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getDeviceClusterClassification","parameters":[{"name":"ruleId","in":"path","description":"id of the AnalyticsRule","required":true,"schema":{"type":"string"}},{"name":"deviceId","in":"path","description":"deviceId","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"DeviceAnalysisClusterClassification matching the request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceAnalysisClusterClassification"}}}}}}},"/api/v1/bootstrap/lwm2m/masterEntries/{masterEntryId}":{"get":{"tags":["Bootstrap Master Entry"],"summary":"Get a LwM2M bootstrap master entry from its id.","description":"Restricted to API keys with at least one of the following roles: BOOTSTRAP_R.","operationId":"getBootstrapMasterEntry","parameters":[{"name":"masterEntryId","in":"path","description":"the master entry id","required":true,"schema":{"type":"string"}},{"name":"showSecuritySecrets","in":"query","description":"whether or not to show the secrets","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapMasterEntry"}}}}}},"delete":{"tags":["Bootstrap Master Entry"],"summary":"Delete a LwM2M bootstrap master entry from its id.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"deleteBootstrapMasterEntry","parameters":[{"name":"masterEntryId","in":"path","description":"the master entry to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"No Content"}}}},"/api/v1/bootstrap/lwm2m/entries/{endpointName}":{"get":{"tags":["Bootstrap Entry"],"summary":"Get a lwm2m bootstrap entry from its endpointName.","description":"Restricted to API keys with at least one of the following roles: BOOTSTRAP_R.","operationId":"getBootstrapEntry","parameters":[{"name":"endpointName","in":"path","description":"the endpoint client name","required":true,"schema":{"type":"string"},"example":"urn:imei:000000000000000"},{"name":"showSecuritySecrets","in":"query","description":"whether or not to show the secrets used to authenticate to the LwM2M Run server","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BootstrapEntry"}}}}}},"delete":{"tags":["Bootstrap Entry"],"summary":"Delete a lwm2m bootstrap entry from its endpointName.","description":"Usage of this API will be reported in your access log under 'bootstrap' category.<br/><br/>Restricted to API keys with at least one of the following roles: BOOTSTRAP_W.","operationId":"deleteBootstrapEntry","parameters":[{"name":"endpointName","in":"path","description":"the endpoint client name for which the entry will be deleted","required":true,"schema":{"type":"string"},"example":"urn:imei:000000000000000"}],"responses":{"204":{"description":"No Content"}}}},"/api/v1/alarms/rules/types/{type}/default":{"get":{"tags":["Alarm rules"],"summary":"Retrieve default AlarmRules for a type.","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getDefaultAlarmRules","parameters":[{"name":"type","in":"path","description":"the type of the default AlarmRules to retrieve","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"list of AlarmRules","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlarmRule"}}}}},"404":{"description":"Unknown type","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlarmRule"}}}}}}}},"/api/v1/alarms/rules/supportedValues":{"get":{"tags":["Alarm rules"],"summary":"Retrieve AlarmRules supported values.","description":"Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listAlarmRulesSupportedValues","responses":{"200":{"description":"list of AlarmRules supported values","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AlarmRuleSupportedValues"}}}}}}}},"/api/v1/accounting/monthly":{"get":{"tags":["Accounting - V1"],"summary":"Get monthly accounting metrics.","description":"<p>Get accounting metrics for a given period (up to 18 months). The data is aggregated by months.</p>\n<p>The response contains 2 main sections : <strong>tenant</strong> and <strong>months</strong>.</p>\n<p>The <strong>tenant</strong> section gives useful information related to the customer. It returns the current values, whatever has been specified in startMonth and endMonth parameters :</p>\n<ul>\n        <li>id : Live Objects identifier</li>\n        <li>name : tenant name in Live Objects</li>\n        <li>detailed offer and options, including the display name</li>\n        <li>properties : custom fields</li>\n</ul>\n<p><br/>The <strong>months</strong> section provides connectors and service metrics for each month.</p>\n        <ul>\n          <li><strong>connectors</strong> section (LoRa, mqtt (device),\n        mqtt application, http, lwm2m, sms<strong>_[server phone number]</strong>,external):\n<ul>\n<li><strong>connectors</strong> section (LoRa, mqtt (device), mqtt application, http, lwm2m, sms<strong>_[server phone number]</strong>, external) :\n<ul>\n<li><strong>traffic</strong> metrics:\n<ul>\n    <li><strong>msg</strong>: number of messages (no unit)</li>\n    <li><strong>bytes</strong>: sum of the volume of all messages (unit: bytes)</li>\n    <li><strong>virtualMsg</strong>: number of messages split by a size of 5kB (no unit).<br />Example: 1 msg with a size of 7kB = 1 msg and 2 virtualMsg</li>\n    <li><strong>msgAckRequest</strong>: Deprecated. Always 0. LoRa specific. Number of acknowledgement requests sent for uplink messages.</li>\n</ul>\n</li>\n      <li><strong>inventory</strong> metrics:\n       <ul>\n          <li><strong>numberOfCommunicatingNodes</strong>: this counter is available by connector: LoRa, mqtt, sms_[server phone number] or external.\n              It is a unique count of devices that send at least one uplink message to the platform (except for mqtt, see below).\n              More precisely, by connector:\n              <ul>\n                  <li>LoRa: distinct devEUIs sending an uplink</li>\n                  <li>mqtt: distinct clientIds that have been connected at least one time</li>\n                  <li>external: distinct nodeIds behind an external connector that have been declared online or have published a dataMessage</li>\n                  <li>sms: distinct MSISDNs sending a message</li>\n              </ul>\n          </li>\n          <li><strong>numberOfActivatedNodes</strong>: LoRa specific: count of unique devices allowed to communicate and paired to the network. Corresponding LoRa status : ACTIVATED or INITIALIZED.</li>\n          <li><strong>numberOfActivatedLocationNodes</strong>: LoRa specific: count of unique Activated devices that had location lora option for the month.</li>\n          <li><strong>numberOfActivatedAckUlNodes</strong>: LoRa specific: count of unique Activated devices that had AckUL lora option for the month.\n         </ul>\n      </ul>\n     </li>\n<li><strong>service</strong> section:\n    <ul>\n        <li><strong>deviceManagement</strong></li>\n        <ul><li><strong>numberOfSuccessfulDownloads</strong>: count of all firmware downloads in success</li></ul>\n        <li><strong>storage</strong></li>\n        <ul><li><strong>storedDataMessagesInMB</strong>: the total size of messages stored in database.\n        This size does not include technical data (for ex. Index).\n        Values in MB are rounded up.\n        The value differs from the sum of “IN” bytes sent to the platform because it includes data coming from enrichment/decoding/event processing features.\n        This information is available from June 2019.</li></ul>\n        <li><strong>twin</strong></li>\n        <ul><li><strong>traffic virtualMsg In</strong>: number of incoming virtual messages generated by the twin service (amplification factor)</li></ul>\n      </ul>\n  </li>\n<li><strong>devices</strong> section:\n     <ul><li><strong>numberOfRegisteredDevices</strong>: max number of registered devices during the month. </li></ul>\n </li>\n</ul>\n        <p><span style=\"text-decoration: underline;\">Additional info</span> :</p>\n        <p>Traffic is split by connector type (mqtt, mqtt application, sms_[server phone number], LoRa, http, lwm2m, external) and by directions (in/out).</p>\n         <ul>\n             <li><strong>In</strong>: means incoming traffic (i.e. from \"outside\" into Live Objects) (mostly from objects) also called <strong>Uplink</strong>.</li>\n             <li><strong>Out</strong>: any outgoing message (i.e. from Live Objects to \"outside\") except protocol messages (MQTT CONNACK, SUBACK … ) and messages consumed by applications on top of Live Objects (subscribe in MQTT application mode).<br /><br /></li>\n          </ul>\n          <p><strong>http specific:</strong></p>\n          <ul>\n             <li>IN traffic: sum (POST /api/v0/data/bulk &amp; POST /api/v0/data/streams/{streamId})</li>\n          </ul>\n          <p><strong>mqtt specific:</strong></p>\n          <ul>\n             <li>IN & OUT traffic: after may 2020 : the mqtt section contains only traffic in device mode. Mqtt application mode is computed only for incoming traffic (IN).</li>\n          </ul>\n<br/><br/>No specific role on API key required.","operationId":"getMonthlyStatistics","parameters":[{"name":"startMonth","in":"query","description":"the requested start month as yyyy-MM. If missing, the current month is used. e.g. '2026-01'.","required":false,"schema":{"type":"string"}},{"name":"endMonth","in":"query","description":"the requested end month as yyyy-MM. If missing, the current month is used. e.g. '2026-01'.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantMonthsMetrics"}}}}}}},"/api/v1/accounting/daily":{"get":{"tags":["Accounting - V1"],"summary":"Get daily accounting metrics (Beta).","description":"<p>Get accounting metrics for a given period (from one day to 2 months) over the past 18 months. The data is aggregated by days.</p><p>The response contains 2 main sections : <strong>tenant</strong> and <strong>days</strong>.</p><p>The <strong>tenant</strong> section gives useful information related to the customer. It returns the current values, whatever has been specified in startDay and endDay parameters :</p><ul>\n        <li>id : Live Objects identifier</li>\n        <li>name : tenant name in Live Objects</li>\n        <li>detailed offer and options, including the display name</li>\n        <li>properties : custom fields</li>\n</ul>\n<p><br/>The <strong>days</strong> section provides connectors and service metrics for each day.</p>                            <ul>\n                                <li><strong>connectors</strong> section (LoRa, mqtt (device), mqtt application, http, lwm2m, sms<strong>_[server phone number]</strong>, external) :\n                                     <ul>\n                                       <li><strong>traffic</strong> metrics:\n                                         <ul>\n                                           <li><strong>msg</strong>: number of messages (no unit)</li>\n                                           <li><strong>bytes</strong>: sum of the volume of all messages (unit: bytes)</li>\n                                           <li><strong>virtualMsg</strong>: number of messages split by a size of 5kB (no unit).<br />Example: 1 msg with a size of 7kB = 1 msg and 2 virtualMsg</li>\n                                           <li><strong>msgAckRequest</strong>: Deprecated. Always 0. LoRa specific. Number of acknowledgement requests sent for uplink messages.</li>\n                                         </ul>\n                                       </li>\n                                       <li><strong>inventory</strong> metrics:\n                                           <ul>\n                                                  <li><strong>maxNumberOfEnabledNodes</strong>: LoRa specific: max number of simultaneously registered LoRa interfaces for the day. Corresponding LoRa status : all status except DEACTIVATED.</li>\n                                           </ul>\n                                        </li>\n                                     </ul>\n                                     <li><strong>service</strong> section:\n                                     <ul>\n                                         <li><strong>deviceManagement</strong></li>\n                                            <ul><li><strong>numberOfSuccessfulDownloads</strong>: count of all firmware downloads in success</li></ul>\n                                         <li><strong>storage</strong></li>\n                                            <ul>\n                                                   <li><strong>storedDataMessagesInMB</strong>: the total size of messages stored in database.\n                                           This size does not include technical data (for ex. Index).\n                                           Values in MB are rounded up.\n                                           The value differs from the sum of “IN” bytes sent to the platform because it includes data coming from enrichment/decoding/event processing features.\n                                           This information is available from June 2019.\n                                                  </li>\n                                           </ul>\n                                         <li><strong>twin</strong></li>\n                                           <ul><li><strong>traffic virtualMsg In</strong>: number of incoming virtual messages generated by the twin service (amplification factor)</li></ul>\n                                           </ul>\n                                         </li>\n                                         <li><strong>devices</strong> section:\n                                           <ul><li><strong>numberOfRegisteredDevices</strong>: number of registered devices. </li></ul>\n                                         </li>\n                                     </ul>\n                                           <p><span style=\"text-decoration: underline;\">Additional info</span> :</p>\n                                           <p>Traffic is split by connector type (mqtt, mqtt application, lwm2m, sms_[server phone number], LoRa, http, external) and by directions (in/out).</p>\n                                     <ul>\n                                         <li><strong>In</strong>: means incoming traffic (i.e. from \"outside\" into Live Objects) (mostly from objects) also called <strong>Uplink</strong>.</li>\n                                         <li><strong>Out</strong>: any outgoing message (i.e. from Live Objects to \"outside\") except protocol messages (MQTT CONNACK, SUBACK … ) and messages consumed by applications on top of Live Objects (subscribe in MQTT application mode).<br /><br /></li>\n                                     </ul>\n                                           <p><strong>http specific:</strong></p>\n                                     <ul>\n                                         <li>IN traffic: sum (POST /api/v0/data/bulk &amp; POST /api/v0/data/streams/{streamId})</li>\n                                     </ul>\n                                         <p><strong>mqtt specific:</strong></p>\n                                     <ul>\n                                         <li>IN & OUT traffic: after may 2020 : the mqtt section contains only traffic in device mode.</li>\n                                         <li>Mqtt application mode is computed only for incoming traffic (IN).</li>\n                                         <li>The <strong>external</strong> section contains the mqtt traffic and inventory for applications used as cloud gateways for devices.</li>\n                                      </ul>\n<ul>\n<li><strong>connectors</strong> section (LoRa, mqtt (device), mqtt application, http, lwm2m, sms<strong>_[server phone number]</strong>, external) :\n<ul>\n<li><strong>traffic</strong> metrics:\n<ul>\n    <li><strong>msg</strong>: number of messages (no unit)</li>\n    <li><strong>bytes</strong>: sum of the volume of all messages (unit: bytes)</li>\n    <li><strong>virtualMsg</strong>: number of messages split by a size of 5kB (no unit).<br />Example: 1 msg with a size of 7kB = 1 msg and 2 virtualMsg</li>\n    <li><strong>msgAckRequest</strong>: Deprecated. Always 0. LoRa specific. Number of acknowledgement requests sent for uplink messages.</li>\n</ul>\n</li>\n      <li><strong>inventory</strong> metrics:\n       <ul>\n          <li><strong>numberOfCommunicatingNodes</strong>: this counter is available by connector: LoRa, mqtt, sms_[server phone number] or external.\n              It is a unique count of devices that send at least one uplink message to the platform (except for mqtt, see below).\n              More precisely, by connector:\n              <ul>\n                  <li>LoRa: distinct devEUIs sending an uplink</li>\n                  <li>mqtt: distinct clientIds that have been connected at least one time</li>\n                  <li>external: distinct nodeIds behind an external connector that have been declared online or have published a dataMessage</li>\n                  <li>sms: distinct MSISDNs sending a message</li>\n              </ul>\n          </li>\n          <li><strong>numberOfActivatedNodes</strong>: LoRa specific: count of unique devices allowed to communicate and paired to the network. Corresponding LoRa status : ACTIVATED or INITIALIZED.</li>\n          <li><strong>numberOfActivatedLocationNodes</strong>: LoRa specific: count of unique Activated devices that had location lora option for the month.</li>\n          <li><strong>numberOfActivatedAckUlNodes</strong>: LoRa specific: count of unique Activated devices that had AckUL lora option for the month.\n         </ul>\n      </ul>\n     </li>\n<li><strong>service</strong> section:\n    <ul>\n        <li><strong>deviceManagement</strong></li>\n        <ul><li><strong>numberOfSuccessfulDownloads</strong>: count of all firmware downloads in success</li></ul>\n        <li><strong>storage</strong></li>\n        <ul><li><strong>storedDataMessagesInMB</strong>: the total size of messages stored in database.\n        This size does not include technical data (for ex. Index).\n        Values in MB are rounded up.\n        The value differs from the sum of “IN” bytes sent to the platform because it includes data coming from enrichment/decoding/event processing features.\n        This information is available from June 2019.</li></ul>\n        <li><strong>twin</strong></li>\n        <ul><li><strong>traffic virtualMsg In</strong>: number of incoming virtual messages generated by the twin service (amplification factor)</li></ul>\n      </ul>\n  </li>\n<li><strong>devices</strong> section:\n     <ul><li><strong>numberOfRegisteredDevices</strong>: max number of registered devices during the month. </li></ul>\n </li>\n</ul>\n        <p><span style=\"text-decoration: underline;\">Additional info</span> :</p>\n        <p>Traffic is split by connector type (mqtt, mqtt application, sms_[server phone number], LoRa, http, lwm2m, external) and by directions (in/out).</p>\n         <ul>\n             <li><strong>In</strong>: means incoming traffic (i.e. from \"outside\" into Live Objects) (mostly from objects) also called <strong>Uplink</strong>.</li>\n             <li><strong>Out</strong>: any outgoing message (i.e. from Live Objects to \"outside\") except protocol messages (MQTT CONNACK, SUBACK … ) and messages consumed by applications on top of Live Objects (subscribe in MQTT application mode).<br /><br /></li>\n          </ul>\n          <p><strong>http specific:</strong></p>\n          <ul>\n             <li>IN traffic: sum (POST /api/v0/data/bulk &amp; POST /api/v0/data/streams/{streamId})</li>\n          </ul>\n          <p><strong>mqtt specific:</strong></p>\n          <ul>\n             <li>IN & OUT traffic: after may 2020 : the mqtt section contains only traffic in device mode. Mqtt application mode is computed only for incoming traffic (IN).</li>\n          </ul>\n<br/><br/>No specific role on API key required.","operationId":"getDailyStatistics","parameters":[{"name":"startDay","in":"query","description":"the requested start day as yyyy-MM-dd. If missing, the current day is used. e.g. '2026-01-19'.","required":false,"schema":{"type":"string"}},{"name":"endDay","in":"query","description":"the requested end day as yyyy-MM-dd. If missing, the current day is used. e.g. '2026-01-19'.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TenantDaysMetrics"}}}}}}},"/api/v0/whoami":{"get":{"tags":["User authentication management"],"summary":"Get your tenant id","description":"No specific role on API key required.","operationId":"getTenantId","responses":{"200":{"description":"The tenant id associated with the API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WhoAmiInfo"}}}}}}},"/api/v0/users/me":{"get":{"tags":["Self User management"],"summary":"Get a \"myself\" user data of Tenant","description":"No specific role on API key required.","operationId":"getCurrentUser","responses":{"200":{"description":"The User data are available","content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/topics/fifo/{fifoName}":{"get":{"tags":["Deprecated - Bus management"],"summary":"Deprecated - Getting a FIFO. ","description":"Use 'Triggers and Actions' instead. <br/><br/>Restricted to API keys with at least one of the following roles: BUS_CONFIG_R.","operationId":"getFifoV0","parameters":[{"name":"fifoName","in":"path","description":"name of the fifo. Fifo name must respect the following regular expression <code>[A-Za-z\\d\\-_~]+</code> (max 255 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"A FIFO","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FifoTopic"}}}},"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"}}}}},"deprecated":true},"delete":{"tags":["Deprecated - Bus management"],"summary":"Deprecated - Deleting a FIFO. ","description":"Use 'Triggers and Actions' instead, deleting an action targeting a FIFO will automatically delete the corresponding FIFO if it is not targeted by any other action. <br/><br/>Usage of this API will be reported in your access log under 'routing' category.<br/><br/>Restricted to API keys with at least one of the following roles: BUS_CONFIG_W.","operationId":"deleteFifoV0","parameters":[{"name":"fifoName","in":"path","description":"name of the fifo. Fifo name must respect the following regular expression <code>[A-Za-z\\d\\-_~]+</code> (max 255 characters)","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","description":"false: Live Objects prevents deleting fifo while there is at least one consumer,\ntrue: the fifo will be deleted in any cases.","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"FIFO deleted (if true)"},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}},"deprecated":true}},"/api/v0/tenants/me":{"get":{"tags":["Self tenant account"],"summary":"Get details of your account","description":"<p>You will get details of your tenant account, including the offers you are subscribed to.<p><strong>Beware</strong>: The information contained in the following 3 fields is restricted to Live Objects Portal application only. It may change without notice, no backward compatibility is guaranteed to customer applications<ul><li>\"offerSettings\"<li>\"technicalSettings\"<li>\"userSettings\"<ul><br/><br/>No specific role on API key required.","operationId":"getMyTenant","responses":{"200":{"description":"The tenant details is returned","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Tenant"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/rm/{resourceId}/compatibleVersion/{currentVersion}":{"get":{"tags":["Device management - Resources management"],"summary":"List the versions from which a resource update to the version can be done","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getResourceCompatibleVersions","parameters":[{"name":"resourceId","in":"path","description":"the resource id. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}},{"name":"currentVersion","in":"path","description":"current version. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The set of all the compatible versions","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/rm/connectors":{"get":{"tags":["Device management - Resources management"],"summary":"Get all available connectors","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getAllConnectors","responses":{"200":{"description":"The set of all the available connectors","content":{"application/json":{"schema":{"type":"array","items":{"type":"string"},"uniqueItems":true}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/rm/connectors/{connector}/metadata":{"get":{"tags":["Device management - Resources management"],"summary":"Get mandatory and optional metadata of a connector","description":"Restricted to API keys with at least one of the following roles: DEVICE_R.","operationId":"getConnectorMandatoryAndOptionalMetadata","parameters":[{"name":"connector","in":"path","description":"the resource's connector (ex. \"http-updater\"). A connector must respect the following regular expression <code>([\\w\\-]{1,128})</code> (max 128 characters)","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"The set of all the mandatory and optional metadata for the connector","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MetadataResourceConnectors"}}}},"400":{"description":"Invalid request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Request forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v0/eventprocessing/geozones":{"get":{"tags":["Event processing - Geozone"],"summary":"retrieve paginated list of geozones","description":"The Geozone repository is a database that allows storing geographical sites/zones of interest. The geozones are stored as polygons (array of geopoints coordinates in decimal degrees). Meta information like a description and tags can be stored with the geozone. The Geozone format : coordinates for polygon definition, use longitude as the first coordinate and latitude as the second coordinate, polygons are closed linestrings, with at least four coordinate pairs and specify the same position as the first and last coordinates. You can define several polygons in the same geozone, for example to define a zone with holes (first polygon is the external limit of the zone and the following polygons are holes in this zone). e.g. [[[1.780892, 48.091452], [2.301382, 48.000565], [2.281961, 47.509630], [1.252634, 47.729556], [1.780892, 48.091452]]]<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listEventProcessingGeozones","parameters":[{"name":"page","in":"query","description":"The requested page number. Starts from 0.","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","description":"The maximum number of items per page. Must be between 1 and 1000.","required":false,"schema":{"type":"integer","format":"int32","default":20}}],"responses":{"200":{"description":"Geozones retrieved successfully","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/GeozoneContainer"}}}}}}}},"/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.<br/><br/>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.<br/><br/>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/context":{"get":{"tags":["Event processing - Context"],"summary":"Retrieve the list of contexts data with optional tag filtering","description":"The context repository is a database that allows storing user data that can be used in the MatchingRules and StateProcessingRules when the value is not present in the data messages. The context may include thresholds definition, geographical zones, a list of device identifiers, a user preference, a group of contexts. The context has a key-value format. The key is a string and the value can be a primitive (string, numeric…​), a JSON object or an array.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listEventProcessingContexts","parameters":[{"name":"page","in":"query","description":"The requested page number","required":false,"schema":{"type":"integer","format":"int32","default":0}},{"name":"size","in":"query","description":"The maximum number of items per page","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"tags","in":"query","description":"Filtering tags","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"list of contexts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageableContextContainer"}}}}}},"delete":{"tags":["Event processing - Context"],"summary":"Delete all context entries","description":"The context repository is a database that allows storing user data that can be used in the MatchingRules and StateProcessingRules when the value is not present in the data messages. The context may include thresholds definition, geographical zones, a list of device identifiers, a user preference, a group of contexts. The context has a key-value format. The key is a string and the value can be a primitive (string, numeric…​), a JSON object or an array.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_W.","operationId":"clearEventProcessingContext","responses":{"200":{"description":"all entries deleted","content":{"application/json":{"schema":{"type":"integer","format":"int64"}}}}}}},"/api/v0/eventprocessing/activity/states":{"get":{"tags":["Event processing - Activity"],"summary":"Retrieve the list of all the ActivityStates linked to a specific device and/or rule","description":"You can retrieve current state of a the device, as well as its last activity timestamp and next alarm timestamp.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"getDeviceActivityStates","parameters":[{"name":"deviceId","in":"query","description":"id of the device targeted by the states to retrieve. At least one of deviceId/activityRuleId must be set.","required":false,"schema":{"type":"string"}},{"name":"activityRuleId","in":"query","description":"id of the rule targeted by the states to retrieve. At least one of deviceId/activityRuleId must be set.","required":false,"schema":{"type":"string"}},{"name":"limit","in":"query","description":"when listing by activityRuleId, thousands of devices could be targeted. Indicates the number of ActivityStates to return (one per targeted device). Default and maximum value is 1000. To get next results use bookmarkDeviceId field.","required":false,"schema":{"type":"integer","format":"int32"}},{"name":"bookmarkDeviceId","in":"query","description":"'bookmark' of previous listing by activityRuleId request : this is the last deviceId retrieved in previous request. If null, first ActivityStates results will be returned.","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"list of ActivityStates","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ActivityState"}}}}}}}},"/api/v0/deviceMgt/campaigns/{campaignId}/targets":{"get":{"tags":["Campaign management"],"summary":"Get the campaign status per device","description":"Restricted to API keys with at least one of the following roles: CAMPAIGN_R.","operationId":"getCampaignDetails","parameters":[{"name":"campaignId","in":"path","description":"identifier of a campaign","required":true,"schema":{"type":"string"}},{"name":"status","in":"query","description":"Status of the device","required":false,"schema":{"type":"string"}},{"name":"size","in":"query","description":"the maximum number of items per page (optional, highest value is 1000)","required":false,"schema":{"type":"integer","format":"int32","default":20}},{"name":"page","in":"query","description":"the requested page number (optional)","required":false,"schema":{"type":"integer","format":"int32","default":0}}],"responses":{"200":{"description":"Campaign status per device","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PageableCampaignPerTarget"}}}}}}},"/api/v0/decoders":{"get":{"tags":["Decoders"],"summary":"Retrieve the list of all your private decoders (binary, csv, js)","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. This list contains only common fields of all type of decoders. To get a list with decoder type's specific fields, use the dedicated API for this type of decoder.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listAllDecodersV0","parameters":[{"name":"tags","in":"query","description":"filter on decoders containing at least one of these tags","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"list all decoders","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PayloadDescription"}}}}}}}},"/api/v0/decoders/public":{"get":{"tags":["Decoders - public"],"summary":"Retrieve the list of all public decoders (binary, csv, js)","description":"A data decoder allows you to decode your data message payload into a json format. When an encoding is defined in the device interface or in the data message, the decoder will be be applied and the data message will be updated accordingly. A public decoder is a decoder that can be used by any customer. It is maintained by Live Objects. The list of public decoders may evolve over time.<br/><br/>Restricted to API keys with at least one of the following roles: DATA_PROCESSING_R.","operationId":"listAllPublicDecoders","parameters":[{"name":"tags","in":"query","description":"filter on decoders containing at least one of these tags","required":false,"schema":{"type":"array","items":{"type":"string"}}}],"responses":{"200":{"description":"list all decoders","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/PayloadDescription"}}}}}}}},"/api/v0/certificates/ca/{certificateId}":{"get":{"tags":["CA certificates"],"summary":"Retrieve CA certificate","description":"Restricted to API keys with at least one of the following roles: API_KEY_R.","operationId":"getCertificate","parameters":[{"name":"certificateId","in":"path","description":"id of the CA certificate","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CA certificate Successfully retrieved","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaCertificate"}}}},"404":{"description":"Unknown CA certificate","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CaCertificate"}}}}}},"delete":{"tags":["CA certificates"],"summary":"Delete CA certificate","description":"Usage of this API will be reported in your access log under 'security' category.<br/><br/>Restricted to API keys with at least one of the following roles: API_KEY_W.","operationId":"deleteCertificate","parameters":[{"name":"certificateId","in":"path","description":"id of the CA certificate to delete","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"CA certificate Successfully deleted"},"404":{"description":"Unknown CA certificate"}}}},"/api/v0/auditlog/messages":{"get":{"tags":["Audit Log"],"summary":"Query your AuditLogs","description":"Restricted to API keys with at least one of the following roles: LOGS_R.","operationId":"searchAuditLog","parameters":[{"name":"from","in":"query","description":"Search for messages after this date. Use ISO-8601 normalization.","required":false,"schema":{"type":"string"},"example":"2018-10-05T15:45:51Z"},{"name":"to","in":"query","description":"Search for messages before this date. Use ISO-8601 normalization.","required":false,"schema":{"type":"string"},"example":"2018-10-05T15:45:51Z"},{"name":"offset","in":"query","description":"Offset from the first result you want to fetch. offset + limit should not exceed 10.000.","required":false,"schema":{"type":"string","default":"0"}},{"name":"limit","in":"query","description":"Maximum amount of messages to return. limit should not exceed 1.000.","required":false,"schema":{"type":"string","default":"100"}},{"name":"sort","in":"query","description":"Sort order, based on timestamp field of the AuditLog message.","required":false,"schema":{"type":"string","default":"desc"}},{"name":"filters","in":"query","description":"Filter query based on field path and expected value to search for : {fiedlName}={value}. You can put several filters that way, they will all be treated with an AND operator. Common filters field names you can use : level, category, subcategory, type, source.deviceId, source.nodeId, description, detailedDescription. e.g. : level=error&source.deviceId=urn:lora:0E5EAB0ABCD00000","required":false,"schema":{"type":"string","example":"level=error&source.deviceId=urn:lora:0E5EAB0ABCD00000"}},{"name":"@any","in":"query","description":"List of values that should present in any of the Auditlog message fields. e.g. @any=quota&@any=daily&@any=notification.","required":false,"schema":{"type":"array","items":{"type":"string"}},"example":"@any=quota&@any=daily&@any=notification"}],"responses":{"200":{"description":"list of AuditLogMessages","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/AuditLogMessage"}}}}}}}},"/api/v0/apiKeys/current_key":{"get":{"tags":["Api self keys"],"summary":"Get API key information from current authentification","description":"Useful to get information about the API key you are using, like current roles.<br/><br/>No specific role on API key required.","operationId":"getApiKeyFromAuthentication","responses":{"200":{"description":"The ApiKey","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiKey"}}}},"400":{"description":"An ErrorMessage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"403":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}},"404":{"description":"Unknown","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebErrorResponse"}}}}}}},"/api/v1/deviceMgt/devices/{deviceId}/resources/{resourceId}/requested":{"delete":{"tags":["Device management - Resources"],"summary":"Reset device resource requested version","description":"Restricted to API keys with at least one of the following roles: DEVICE_W.","operationId":"resetRequestedDeviceResourceVersionV1","parameters":[{"name":"deviceId","in":"path","description":"device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","required":true,"schema":{"type":"string"}},{"name":"resourceId","in":"path","description":"device resource identifier. Expected string (max 255 characters)","required":true,"schema":{"type":"string"}},{"name":"force","in":"query","required":false,"schema":{"type":"boolean","default":false}}],"responses":{"204":{"description":"Device resource requested version reset done"}}}},"/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.<br/><br/>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":{"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"}}},"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"}}}},"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}}},"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"]},"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"]},"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}}},"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"]},"ConnectivityManagementPlatformFilter":{"type":"object","properties":{"eventPayloadTypes":{"type":"array","description":"List of filtered event types.","items":{"type":"string"},"maxItems":20,"minItems":0,"uniqueItems":true}}},"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"]},"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. <br>e.g. [[\"ALERT\"]] will match all messages containing tag 'ALERT'.<br>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}}},"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"]},"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}}},"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"]},"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. <br>e.g. [[\"ALERT\"]] will match all messages containing tag 'ALERT'.<br>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}}},"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"]},"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. <br>e.g. [[\"ALERT\"]] will match all messages containing tag 'ALERT'.<br>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}}},"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"]},"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}}},"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"]},"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"]},"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"]},"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"]},"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"]},"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"]},"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}}},"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"]},"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}}},"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"]},"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"]},"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}}},"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"]},"GroupUpdateRequest":{"type":"object","description":"The group to register","properties":{"parentId":{"type":"string","description":"reference to group's parent (id). Expected string (max 6 characters)","example":"123456","maxLength":6,"minLength":0},"pathNode":{"type":"string","description":"group's local id in path (unique for groups in same parent).Authorized: letter (lowercase and uppercase), accented characters, number, space, dash, underscore and simple quote. A valid path must respect the following regular expression <code>[\\wÀ-ÖØ-öø-ÿ' -]{1,255}</code>.Expected string (max 255 characters)","example":"france","maxLength":255,"minLength":0},"description":{"type":"string","description":"group description. Expected string (max 255 characters)","maxLength":255,"minLength":0}},"required":["pathNode"]},"Group":{"type":"object","properties":{"id":{"type":"string","description":"Group identifier","example":"IbN89a"},"pathNode":{"type":"string","description":"Path node","example":"group2"},"path":{"type":"string","description":"Path","example":"/group1/group2"},"parentId":{"type":"string","description":"Parent group identifier","example":"PjFg6J"},"description":{"type":"string","description":"Group description","example":"Moisture sensor"},"created":{"type":"string","format":"date-time","description":"Date/time when group was first registered","example":"2017-12-27T12:59:59.877Z"},"updated":{"type":"string","format":"date-time","description":"Date/time when group status has been lastly updated","example":"2017-12-27T14:13:09.231Z"}},"required":["created","description","id","parentId","path","pathNode","updated"]},"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"]},"ServiceErrorResponse":{"type":"object","description":"Generic Error in 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"},"category":{"type":"string","description":"Error category","enum":["PERMANENT","TRANSIENT","UNEXPECTED"]}},"required":["category","code","id","message"]},"AnalyticsRule":{"type":"object","description":"defines the device analytics rule that will be performed","properties":{"id":{"type":"string","description":"id of the AnalyticsRule. Should be null when used for POST."},"name":{"type":"string","description":"user-defined name for the rule, must be unique and not empty."},"fleet":{"$ref":"#/components/schemas/Fleet","description":"defines the targeted devices of a this AnalyticsRule"},"report":{"$ref":"#/components/schemas/ReportDefinition","description":"defines the analytics report to send by email"},"enabled":{"type":"boolean","description":"activate or not the rule. Default is false."}},"required":["fleet","name"]},"EmailRecipients":{"type":"object","properties":{"to":{"type":"array","items":{"type":"string"}},"cc":{"type":"array","items":{"type":"string"}},"cci":{"type":"array","items":{"type":"string"}}}},"Fleet":{"type":"object","properties":{"connectors":{"type":"array","description":"list of connectivity that targeted devices must declare. 1 and only 1 connector must be defined.","items":{"type":"string"}},"groupPaths":{"type":"array","description":"list of targeted group paths","items":{"$ref":"#/components/schemas/GroupPath"}}},"required":["connectors"]},"ReportDefinition":{"type":"object","properties":{"recipients":{"$ref":"#/components/schemas/EmailRecipients","description":"email recipients to send the report to. At least one 'to' recipient is mandatory. No more than 10 recipients can be set."},"language":{"type":"string","description":"language of the report : 'fr' or 'en'."}},"required":["language","recipients"]},"NotificationChannelEmailRecipients":{"type":"object","description":"Email recipients for a notification channel.","properties":{"to":{"type":"array","example":["to@example.com"],"items":{"type":"string"},"maxItems":20,"minItems":1},"cc":{"type":"array","example":["cc@example.com"],"items":{"type":"string"},"maxItems":20,"minItems":0},"bcc":{"type":"array","example":["bcc@example.com"],"items":{"type":"string"},"maxItems":20,"minItems":0}},"required":["to"]},"NotificationChannelRequest":{"type":"object","properties":{"name":{"type":"string","description":"User-defined name for the notification channel. Must not be null, must contain at least one non-whitespace character and at most 255 characters.","example":"OPS Team","maxLength":255,"minLength":0},"language":{"type":"string","description":"Language to use for this notification channel. Must be either 'en' or 'fr.","example":"en","pattern":"^(en|fr)$"},"emails":{"$ref":"#/components/schemas/NotificationChannelEmailRecipients"}},"required":["emails","language","name"]},"NotificationChannel":{"type":"object","properties":{"id":{"type":"string","description":"The notification channel unique identifier. The default notification channel ID is 'default'.","example":"6798a90560fe8807d0d58f64"},"name":{"type":"string","description":"User-defined name for the notification channel. Must not be null, must contain at least one non-whitespace character and at most 255 characters.","example":"OPS Team"},"language":{"type":"string","description":"Language to use for this notification channel. Must be either 'en' or 'fr.","example":"en"},"emails":{"$ref":"#/components/schemas/NotificationChannelEmailRecipients"},"created":{"type":"string","format":"date-time","description":"Notification channel creation datetime."},"updated":{"type":"string","format":"date-time","description":"Notification channel update datetime."}},"required":["emails","id","language","name"]},"BootstrapPreSharedKeyInfo":{"type":"object","properties":{"identity":{"type":"string","description":"The PSK Identity","example":"urn:imei:123456789012345","maxLength":128,"minLength":0},"secret":{"type":"string","description":"The PSK secret. Must be encoded in hexadecimal.","example":"0123456789ABCDEF0123456789ABCDEF","maxLength":128,"minLength":32}},"required":["identity","secret"]},"BootstrapSecurityInfo":{"type":"object","description":"the new Bootstrap security info","properties":{"mode":{"type":"string","description":"The security mode used to authenticate to the LwM2M Bootstrap server","enum":["PSK"],"example":"PSK"},"pskInfo":{"$ref":"#/components/schemas/BootstrapPreSharedKeyInfo","description":"The Pre-Shared Key (PSK) information"}},"required":["mode"]},"RunPreSharedKeyInfo":{"type":"object","properties":{"identity":{"type":"string","description":"The PSK Identity. If it is not defined, the Identity of the PSK used to authenticate to the LwM2M Bootstrap server is used.","example":"urn:imei:123456789012345","maxLength":128,"minLength":1},"secret":{"type":"string","description":"The PSK secret. Must be encoded in hexadecimal.","example":"0123456789ABCDEF0123456789ABCDEF","maxLength":128,"minLength":32}},"required":["secret"]},"RunSecurityInfo":{"type":"object","properties":{"pskInfo":{"$ref":"#/components/schemas/RunPreSharedKeyInfo","description":"The Pre-Shared Key (PSK) information."}},"required":["pskInfo"]},"RunServerConfigParams":{"type":"object","description":"the new Run Server info","properties":{"id":{"type":"string","description":"Run server unique identifier for which the following parameters will apply. Must correspond to the one defined in the BootstrapConfig Must respect the following regular expression <code>^[a-zA-Z0-9]{1,128}$</code> (max 128 characters).","example":"server01","pattern":"^[a-zA-Z0-9]{1,128}$"},"security":{"$ref":"#/components/schemas/RunSecurityInfo","description":"The security information to authenticate to the LwM2M Run server."}},"required":["id"]},"AutoProvisioning":{"type":"object","properties":{"enabled":{"type":"boolean","description":"If true, the LwM2M device will be automatically created or updated in the Device Inventory on bootstrap, based on its Entry definition, even if it has not been provisioned beforehand. Can only be defined if useLiveObjects is true.","example":true}}},"BootstrapConfigOperations":{"type":"object","properties":{"externalConfigServer":{"$ref":"#/components/schemas/ExternalConfigServer","description":"Define an external server which will dynamically provide additional write operations on each bootstrap request."},"objectVersionUrns":{"type":"array","description":"List of the targeted object version urns.","example":["urn:oma:lwm2m:ext:3300:1.1","urn:oma:lwm2m:ext:36050:1.0"],"items":{"type":"string"},"maxItems":100,"minItems":0},"writeOperations":{"type":"array","description":"List of write operations to execute during bootstrap. Write operations will be performed at object level, which means it will replace all existing resources in the targeted object and only include the resources explicitly defined here.","items":{"$ref":"#/components/schemas/BootstrapWriteOperation"},"maxItems":100,"minItems":0}}},"BootstrapConfigRequest":{"type":"object","description":"Bootstrap config to create","properties":{"name":{"type":"string","description":"Name of bootstrap configuration","example":"My bootstrap config","maxLength":255,"minLength":0},"description":{"type":"string","description":"Description of bootstrap configuration","example":"My description of my bootstrap config","maxLength":1024,"minLength":0},"runServers":{"type":"array","description":"List of run servers","items":{"$ref":"#/components/schemas/RunServer"},"maxItems":1,"minItems":1},"additionalOperations":{"$ref":"#/components/schemas/BootstrapConfigOperations","description":"Write operations on additional objects (other than /0, /1, /2 and /21), optionally defining an external server"}},"required":["name","runServers"]},"BootstrapWriteOperation":{"type":"object","properties":{"path":{"type":"string","description":"Path of the write operation. Must target a resource or a resource instance. Can not target /0, /1, /2 and /21 objects.","example":"/3300/1/5750"},"value":{"type":"string","description":"Value of the write operation","example":"VOC Index"}},"required":["path","value"]},"ExternalConfigServer":{"type":"object","properties":{"url":{"type":"string","description":"The url of the target server webhook (only the ports 80, 443, 8080, 8443 and 9243 are allowed).","example":"https://myserver/lwm2m/bootstrap-request"},"headers":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"Additional custom headers that will be used for the HTTP request","example":{"apiKey":["fhpao4654feae46463Z"]}}},"required":["url"]},"Lwm2mDefinition":{"type":"object","properties":{"security":{"$ref":"#/components/schemas/Lwm2mSecurity","description":"Lwm2m definition for `LWM2M Security` object (ObjectID=0)"},"server":{"$ref":"#/components/schemas/Lwm2mServer","description":"Lwm2m definition for `LWM2M Server` object (ObjectID=1)"}},"required":["security","server"]},"Lwm2mSecurity":{"type":"object","properties":{"settings":{"$ref":"#/components/schemas/ObjectSettings","description":"Settings for this Security Object (for example, on which instance to write it)"},"lwm2mServerUri":{"type":"string","description":"Uniquely identifies the LwM2M Server or LwM2M Bootstrap-Server. Must be set if and only if useLiveObjects is false.","example":"coaps://myserver:5684","maxLength":255,"minLength":5},"securityMode":{"type":"string","description":"Determines what credentials are being used by the LwM2M Client and the LwM2M Server. Must be set if and only if useLiveObjects is false. Allowed values are : 0 (PSK), 1 (RPK), 2 (CERTIFICATE), 3 (NO_SEC), 4 (CERTIFICATE_WITH_EST).","example":"0"},"serverPublicKey":{"type":"string","description":"Stores the LwM2M Server's, respectively LwM2M Bootstrap-Server's, certificate, public key (RPK mode) or trust anchor.The Certificate Mode Resource determines the content of this resource. Must be encoded in hexadecimal.","example":"0123456789ABCDEF"},"smsSecurityMode":{"type":"integer","format":"int32","description":"Determines which SMS security mode is used: \n0: Reserved for future use\n1: DTLS mode (Device terminated) PSK mode assumed\n2: Secure Packet Structure mode (Smartcard terminated)\n3: NoSec mode\n4: Reserved mode (DTLS mode with multiplexing Security Association support)\n5-203 : Reserved for future use\n204-255: Proprietary modes","example":1,"maximum":255,"minimum":0},"lwm2mServerSmsNumber":{"type":"string","description":"MSISDN used by the LwM2M Client to send messages to the LwM2M Server via the SMS binding.","example":"1234"},"shortServerId":{"type":"integer","format":"int32","description":"This identifier is used only as a link to associate the server/security object instance. Must be between 1 and 65534.","maximum":65534,"minimum":1},"clientHoldOffTime":{"type":"integer","format":"int32","description":"The number of seconds to wait before initiating a Client Initiated Bootstrap once the LwM2M Client has determined it should initiate this bootstrap mode","example":30,"minimum":0},"bootstrapServerAccountTimeout":{"type":"integer","format":"int32","description":"The LwM2M Client MUST purge the LwM2M Bootstrap-Server Account after the timeout value given by this resource","example":20,"minimum":0},"matchingType":{"type":"string","description":"The Matching Type Resource specifies how the certificate or raw public key in in the Server Public Key is presented. Four values are currently defined:\n0: Exact match. This is the default value and also corresponds to the functionality of LwM2M v1.0. Hence, if this resource is not present then the content of the Server Public Key Resource corresponds to this value.\n1: SHA-256 hash [RFC6234]\n2: SHA-384 hash [RFC6234]\n3: SHA-512 hash [RFC6234]","example":"0"},"sni":{"type":"string","description":"This resource holds the value of the Server Name Indication (SNI) value to be used during the TLS handshake.When this resource is present then the LwM2M Server URI acts as the address of the service while the SNI value is used formatching a presented certificate, or PSK identity.","example":"myserver"},"certificateUsage":{"type":"string","description":"The Certificate Usage Resource specifies the semantic of the certificate or \nraw public key stored in the Server Public Key Resource, which is used to match \nthe certificate presented in the TLS/DTLS handshake. The currently defined values are \n0 for \"CA constraint\", 1 for \"service certificate constraint\", 2 for \"trust anchor \nassertion\", and 3 for \"domain-issued certificate\". When this resource is absent, \nvalue (3) for domain issued certificate mode is assumed. More details about the \nsemantic of each value can be found in the security consideration section of the \nLwM2M specification.","example":"0"},"dtlsTlsCiphersuite":{"type":"array","description":"When this resource is present it instructs the TLS/DTLS client to propose the indicated ciphersuite(s) in the ClientHello of the handshake. A ciphersuite is indicated as a 32-bit integer value. The IANA TLS ciphersuite registry is maintained at https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml. As an example, the TLS_PSK_WITH_AES_128_CCM_8 ciphersuite is represented with the following string \"0xC0,0xA8\". To form an integer value the two values are concatenated. In this example, the value is 0xc0a8 or 49320.","example":[49320],"items":{"type":"integer","format":"int64","maximum":65535,"minimum":0},"maxItems":100,"minItems":1}},"required":["shortServerId"]},"Lwm2mServer":{"type":"object","properties":{"settings":{"$ref":"#/components/schemas/ObjectSettings","description":"Settings for this Server Object (for example, on which instance to write it)"},"shortServerId":{"type":"integer","format":"int32","description":"This identifier is used only as a link to associate the server/security object instance. Must be between 1 and 65534.","example":1,"maximum":65534,"minimum":1},"lifetime":{"type":"integer","format":"int32","description":"Specify the lifetime of the registration in seconds","example":300,"minimum":0},"defaultMinimumPeriod":{"type":"integer","format":"int32","description":"The default value the LwM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation","example":200,"minimum":0},"defaultMaximumPeriod":{"type":"integer","format":"int32","description":"The default value the LwM2M Client should use for the Maximum Period of an Observation in the absence of this parameter being included in an Observation","example":20,"minimum":0},"disableTimeout":{"type":"integer","format":"int32","description":"A period to disable the Server. After this period, the LwM2M Client MUST perform registration process to the Server","example":0,"minimum":0},"notificationStoringWhenDisabledOrOffline":{"type":"boolean","description":"If true, the LwM2M Client stores 'Notify' operations to the LwM2M Server while the LwM2M Server account is disabled or the LwM2M Client is offline. After the LwM2M Server account is enabled or the LwM2M Client is online, the LwM2M Client reports the stored 'Notify' operations to the Server. If false, the LwM2M Client discards all the 'Notify' operations or temporarily disables the Observe function while the LwM2M Server is disabled or the LwM2M Client is offline","example":false},"binding":{"type":"string","description":"This Resource defines the transport binding configured for the LwM2M Client. If the LwM2M Client supports the binding specified in this Resource, the LwM2M Client MUST use that transport for the Current Binding Mode. Allowed BindingModes are U, T, S, N (and Q restricted to LwM2M 1.0)","example":"U","maxLength":10,"minLength":1},"apnLink":{"type":"integer","format":"int32","description":"If this resource is defined, it provides a link to the APN connection profile Object Instance (OMNA registered Object ID:11) to be usedto communicate with this server. The instance id must be provided.","example":0,"minimum":0},"registrationPriorityOrder":{"type":"integer","description":"The LwM2M Client sequences the LwM2M Server registrations in increasing order of this value. If this value is not defined,registration attempts to this server are not impacted by other server registrations. Must be 64-bit unsigned integer.","example":0},"initialRegistrationDelayTimer":{"type":"integer","description":"The delay before registration is attempted for this LwM2M Server based upon the completion of registration of the previous LwM2M Server in the registration order. This is only applied until the first successful registration after a successful bootstrapping sequence. Must be 64-bit unsigned integer.","example":0},"registrationFailureBlock":{"type":"boolean","description":"When set to true and registration to this LwM2M server fails, the LwM2M Client blocks registration to other servers in the order.When set to false, the LwM2M Client proceeds with registration to the next server in the order.","example":true},"bootstrapOnRegistrationFailure":{"type":"boolean","description":"If set to true, this indicates that the LwM2M Client should re-bootstrap when either registration is explicitly rejected by the LwM2M Server or registration is considered as failing as dictated by the other resource settings. If set to false, the LwM2M Client will continue with the registration attempts as dictated by the other resource settings.","example":true},"communicationRetryCount":{"type":"integer","description":"The number of successive communication attempts before which a communication sequence is considered as failed. Must be 64-bit unsigned integer.","example":0},"communicationRetryTimer":{"type":"integer","description":"The delay between successive communication attempts in a communication sequence. This value is multiplied by two to the power of the communication retry attempt minus one (2**(retry attempt-1)) to create an exponential back-off. Must be 64-bit unsigned integer.","example":0},"communicationSequenceDelayTimer":{"type":"integer","description":"The delay between successive communication sequences. A communication sequence is defined as the exhaustion of the Communication Retry Count and Communication Retry Timer values. A communication sequence can be applied to server registrations or bootstrapping attempts. MAX_VALUE means do not perform another communication sequence. Must be 64-bit unsigned integer.","example":0},"communicationSequenceRetryCount":{"type":"integer","description":"The number of successive communication sequences before which a registration attempt is considered as failed. Must be 64-bit unsigned integer.","example":3},"trigger":{"type":"boolean","description":"Using the Trigger Resource a LwM2M Client can indicate whether it is reachable over SMS (value set to 'true') or not (value set to 'false')","example":true},"preferredTransport":{"type":"string","description":"Only a single transport binding SHALL be present. When the LwM2M client supports multiple transports, it MAY use this transport to initiate a connection. This resource can also be used to switch between multiple transports e.g. a non-IP device can switch to UDP transport to perform firmware updates.","enum":["U","T","S","N","Q"],"example":"U"},"muteSend":{"type":"boolean","description":"If true or the Resource is not present, the LwM2M Client Send command capability is de-activated. \nIf false, the LwM2M Client Send Command capability is activated."}},"required":["binding","lifetime","shortServerId"]},"ObjectSettings":{"type":"object","properties":{"objectInstanceId":{"type":"integer","format":"int32","description":"The instance ID that will be used for this Object. If not specified, the ID is automatically assigned incrementally from 0 for the first Run Server in the list. For the Security Object, the instance used for the Bootstrap Server is avoided (a Discover operation is performed to identify the ID used).","maximum":65534,"minimum":0}}},"RunServer":{"type":"object","properties":{"id":{"type":"string","description":"Run server unique identifier. Will be used also in BootstrapEntry. Must respect the following regular expression <code>^[a-zA-Z0-9]{1,128}$</code> (max 128 characters).","example":"server01","pattern":"^[a-zA-Z0-9]{1,128}$"},"useLiveObjects":{"type":"boolean","default":false,"description":"If true, will define specific 'lwm2mDefinition' for LO. If false, need to customize 'lwm2mDefinition'"},"renewSecurityOnBootstrap":{"type":"boolean","description":"If true, credentials to connect the LiveObjects run server will be generated at each bootstrap. Can only be defined if useLiveObjects is true","example":false},"autoProvisionDeviceOnBootstrap":{"$ref":"#/components/schemas/AutoProvisioning","description":"Defines the 'auto-provisioning device on the runServer' behavior for a bootstrap when the runServer does not previously know the device"},"lwm2mDefinition":{"$ref":"#/components/schemas/Lwm2mDefinition","description":"Lwm2m definition for `LWM2M Security` and `LWM2M Server` objects"}},"required":["id","lwm2mDefinition","useLiveObjects"]},"BootstrapConfig":{"type":"object","properties":{"id":{"type":"string","description":"Bootstrap configuration unique identifier","example":"61b34a6da51c1b5f84e6a802"},"name":{"type":"string","description":"Name of bootstrap configuration","example":"My bootstrap config"},"description":{"type":"string","description":"Description of bootstrap configuration","example":"My description of my bootstrap config"},"runServers":{"type":"array","description":"List of run servers","items":{"$ref":"#/components/schemas/RunServer"}},"additionalOperations":{"$ref":"#/components/schemas/BootstrapConfigOperations","description":"Write operations on additional objects (other than /0, /1, /2 and /21), optionally defining an external server"},"created":{"type":"string","format":"date-time","description":"Date on which the bootstrap config was created","example":"2022-10-21T10:30:58Z"},"updated":{"type":"string","format":"date-time","description":"Date on which the bootstrap config was last updated","example":"2022-10-25T17:45:02Z"}},"required":["created","id","name","runServers","updated"]},"AlarmNotifications":{"type":"object","properties":{"notificationChannelIds":{"type":"array","description":"ids of notification channels that define the recipients of the alarm","example":"default","items":{"type":"string"}}},"required":["notificationChannelIds"]},"AlarmRule":{"type":"object","description":"defines an alarm configuration","properties":{"id":{"type":"string","description":"id of the AlarmRule. Should be null when used for POST."},"enabled":{"type":"boolean","description":"activate or not the rule"},"type":{"type":"string","description":"specific type of the alarm","example":"actionPolicySuspended"},"name":{"type":"string","description":"user-defined name for the rule, must not be empty, should be unique"},"throttle":{"$ref":"#/components/schemas/ThrottleConfig","description":"Configuration for throttling alarm notifications. Throttling prevents sending repeated notifications for the same alarm."},"trigger":{"$ref":"#/components/schemas/AlarmTrigger","description":"alarm trigger configuration"},"notifications":{"$ref":"#/components/schemas/AlarmNotifications","description":"notification configuration"}},"required":["name","notifications","type"]},"AlarmTrigger":{"type":"object","properties":{"condition":{"$ref":"#/components/schemas/TriggerCondition","description":"trigger condition configuration"}}},"ThrottleConfig":{"type":"object","properties":{"muteDuration":{"type":"string","description":"The duration for which notifications for the same alarm are muted after being sent.\nDuring this period, additional notifications for the same alarm will not be sent,\neven if the alarm is repeatedly triggered.\nSpecify the duration using the ISO 8601 duration format (e.g., 'PT1H' for 1 hour, 'P1D' for 1 day).\n","example":"P7D"}}},"TriggerCondition":{"type":"object","properties":{"comparisonOperator":{"type":"string","description":"the type of operator used for comparison","example":"lessThanOrEqualTo"},"threshold":{"type":"number","format":"double","description":"the threshold value"},"evaluationWindow":{"type":"string","description":"the time window (as an ISO 8601 duration) over which the data will be aggregated and evaluated","example":"PT1H"}},"required":["comparisonOperator","threshold"]},"UpdateResourceVersionRequest":{"type":"object","description":"body of resource version update","properties":{"description":{"type":"string","description":"the version's description. Expected string (max 255 characters)","example":"1.1.1"},"compatibleVersions":{"type":"array","description":"set of the versions from which a resource update to the version can be done. Max number of versions is 100. A version max length is 255. ","example":["1.0.0","1.0.1","0.9"],"items":{"type":"string"},"uniqueItems":true}}},"ResourceVersion":{"type":"object","properties":{"tenantId":{"type":"string"},"resourceId":{"type":"string"},"resourceVersionId":{"type":"string"},"description":{"type":"string"},"compatibleVersions":{"type":"array","items":{"type":"string"},"uniqueItems":true},"creationTs":{"type":"integer","format":"int64"},"updateTs":{"type":"integer","format":"int64"},"file":{"type":"string"},"checksum":{"type":"string"}}},"UpdateResourceRequest":{"type":"object","description":"body of resource update","properties":{"label":{"type":"string","description":"the resource's label. Expected string (max 255 characters)","example":"My resource Label"},"description":{"type":"string","description":"the resource's description. Expected string (max 255 characters)","example":"It the last provided resource"},"connector":{"type":"string","description":"the resource's connector. A connector must respect the following regular expression <code>([\\w\\-]{1,128})</code> (max 128 characters)"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"the operation metadata. Max number of metadata is 100. Metadata name max length is 255. A Metadata name must not include following characters <code>$.</code>. Invalid Metadata names are : 'class', '_class'. Metadata value max length is 255. Optional metadata key '<code>secured</code>': controls the transfer protocol for firmware download. Value '<code>true</code>' generates HTTPS URL, '<code>false</code>' or absent generates HTTP URL (default). Supported by http-updater connector only.","example":{"secured":"true"}},"versionAliases":{"type":"object","additionalProperties":{"type":"string"},"description":"the resource version aliases. Max number of alias is 5. Alias name max length is 128. Alias value max length is 255.","example":{"prod":"1.1"}}},"required":["label"]},"Resource":{"type":"object","description":"Resource data","properties":{"tenantId":{"type":"string","description":"identifier of tenant account","example":"57xxxxxxxxxxxxxxxxxxxxxx"},"resourceId":{"type":"string","description":"the resource's identifier","example":"MyResource001"},"label":{"type":"string","description":"the resource's label","example":"My resource Label"},"description":{"type":"string","description":"the resource's description","example":"It the last provided resource"},"connector":{"type":"string","description":"the resource's connector"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"the resource metadata. Max number of metadata is 100. Metadata name max length is 255. A Metadata name must not include following characters <code>$.</code>. Invalid Metadata names are : 'class', '_class'. Metadata value max length is 255. Optional metadata key '<code>secured</code>': controls the transfer protocol for firmware download. Value '<code>true</code>' generates HTTPS URL, '<code>false</code>' or absent generates HTTP URL (default). Supported by http-updater connector only.","example":{"secured":"true"}},"versionAliases":{"type":"object","additionalProperties":{"type":"string"},"description":"the resource version aliases","example":{"prod":"1.1"}},"creationTs":{"type":"integer","format":"int64","description":"creation timestamp","example":"2016-06-03T15:50:39.669Z"},"updateTs":{"type":"integer","format":"int64","description":"last update timestamp","example":"2016-06-04T14:40:40.444Z"}}},"ExternalTransformationStepDescription":{"allOf":[{"$ref":"#/components/schemas/PipelineStepDescription"},{"type":"object","properties":{"url":{"type":"string","description":"url of the external transformation service to call. (only the ports 80, 443, 8080, 8443 and 9243 are allowed).","example":"http://lo-data-transformation.appspot.com/enrich"},"headers":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"A map of header to be passed in the http POST headers of the transformation request.","example":{"x-my-header":["account-1234"]}},"name":{"type":"string","description":"Name of the step (will be added in the http POST headers of the transformation request).","maxLength":1000,"minLength":0}}}],"required":["url"]},"Pipeline":{"type":"object","description":"DataMessage Pipeline definition","properties":{"id":{"type":"string","description":"id of the pipeline. Should be null when used for POST. Required for update.","readOnly":true},"name":{"type":"string","description":"pipeline name (length limit : 1000).","maxLength":1000,"minLength":1},"description":{"type":"string","description":"pipeline description (length limit : 2000).","maxLength":2000,"minLength":0},"priorityLevel":{"type":"integer","format":"int64","description":"Pipeline's priority level. Up to 1 pipeline will be applied to a data message. When several pipelines match the input filter, then the priority is given to the pipeline with lowest priorityLevel. If several pipelines match filter and the share the same priorityLevel, then the oldest pipeline is chosen (based on 'created' field)."},"enabled":{"type":"boolean","description":"pipeline activation. Default is false."},"filter":{"$ref":"#/components/schemas/PipelineFilter","description":"Define which DataMessage can be processed by this pipeline. A null filter means the pipeline matches all data."},"steps":{"type":"array","anyOf":[{"$ref":"#/components/schemas/ExternalTransformationStepDescription"}],"description":"list of steps of the pipelines. Should contain at least 1 step. For now, only externalTransformation steps are available. ExternalTransformationStep forwards DataMessage on a webhook url that enriched it before it is stored in LiveObjects.","example":[{"type":"externalTransformation","name":"appspot data enricher","url":"http://lo-data-transformation.appspot.com/enrich","headers":{"x-my-header":["account-1234"]}}],"items":{"oneOf":[{"$ref":"#/components/schemas/ExternalTransformationStepDescription"}]},"maxItems":10,"minItems":1},"created":{"type":"string","format":"date-time","description":"Pipeline's creation date (ISO-8601). Should be null for post and update action.","readOnly":true}},"required":["enabled","name","priorityLevel","steps"]},"PipelineFilter":{"type":"object","properties":{"connectors":{"type":"array","description":"list of filtered connectors. Null or empty to accept all connectors. e.g. lora, sms, mqtt, lwm2m.","example":["lora"],"items":{"type":"string"},"uniqueItems":true},"encodings":{"type":"array","description":"list of filtered datamessage's encodings. Null or empty to accept all datamessage's encodings","items":{"type":"string"},"uniqueItems":true},"groupPaths":{"type":"array","description":"list of filtered group paths. Null or empty to accept all group paths","items":{"$ref":"#/components/schemas/GroupPath"},"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.<br>e.g. [[\"ALERT\"]] will match all messages containing tag 'ALERT'.<br>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"},"uniqueItems":true},"uniqueItems":true}}},"PipelineStepDescription":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"type":{"type":"string","enum":["externalTransformation"]}}},"StateProcessingRule":{"type":"object","description":"StateProcessingRule to add","properties":{"id":{"type":"string","description":"id of the StateProcessingRule. Should be null when used for POST, and set for PUT."},"name":{"type":"string","description":"name of the StateProcessingRule. Must be unique."},"enabled":{"type":"boolean","description":"activate or not the StateProcessingRule. Default is false."},"stateFunction":{"description":"the JsonLogic (http://jsonlogic.com/) state function. This is the core of the state processing logic. There are additional operators : 'currentstate' to retrieve the current state value, 'ctx' to retrieve values stored in Event Processing Context, 'distance' and 'inside' for geographic operators. This function takes as input a data message and computes a state associated whith the state key. It can return any primitive value : String, Number, Boolean. e.g. '{\"if\":[{\"<\":[{\"var\":\"value.temp\"},0]},\"cold\",{\"<=\":[{\"var\":\"value.temp\"},100]},\"normal\",\"hot\"]}'"},"filterPredicate":{"description":"the JsonLogic (http://jsonlogic.com/) filter predicate applied before state function : if it does match, the stateFunction is applied, else it is not. If no filter predicate is specified, state function is applied to every data message. e.g. '{\"in\":[{\"var\":\"metadata.connector\"},[\"mqtt\",\"lwm2m\"]]}'"},"stateKeyPath":{"type":"string","description":"the json path applied on dataMessage used to compute the stateKey. The state comparison is then restricted to dataMessages sharing the same stateKeyPath. e.g. 'streamId', 'metadata.source', 'metadata.group.id'"}},"required":["name","stateFunction"]},"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"]},"GeozoneContainerBase":{"type":"object","description":"JSON geozone object to store","properties":{"description":{"type":"string","description":"Description of the geozone"},"properties":{"type":"object","additionalProperties":{},"description":"Properties of the geozone you can add to ease managing them"},"geometry":{"$ref":"#/components/schemas/Polygon","description":"Coordinates of the GeoZone"},"tags":{"type":"array","description":"Tags of the geozone you can add to ease managing them","items":{"type":"string"}}},"required":["geometry"]},"Polygon":{"type":"object","properties":{"type":{"type":"string","description":"Type of the Polygon. Only 'Polygon' is supported.","enum":["Polygon"]},"coordinates":{"type":"array","description":"Coordinates of the closed line strings. You can define several closed line strings. The last position of a line string must be the same as the first one.","items":{"type":"array","items":{"type":"array","description":"Position defined by longitude and latitude. Use longitude as the first coordinate and latitude as the second coordinate.\"","items":{"type":"number","format":"double","description":"Position defined by longitude and latitude. Use longitude as the first coordinate and latitude as the second coordinate.\""},"properties":{"empty":{"type":"boolean"}}}}}},"required":["coordinates","type"]},"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"]},"ContextContainer":{"type":"object","description":"Hold context data that can be used inside matching rules and state processing functions","properties":{"contextKey":{"type":"string","description":"context key","minLength":1},"contextData":{"description":"context data"},"tags":{"type":"array","description":"optional tags list for description and filtering","items":{"type":"string"}}},"required":["contextData","contextKey"]},"ActivityStateMuteRequest":{"type":"object","description":"request to mute or reset the nextAlarm of ActivityStates targeting specific deviceId and/or ruleId","properties":{"deviceId":{"type":"string","description":"id of the targeted device. At least one of deviceId/activityRuleId must be set."},"activityRuleId":{"type":"string","description":"id of the targeted activityRule. At least one of deviceId/activityRuleId must be set."},"nextAlarmOrder":{"type":"string","description":"set the order type : mute or reset (from now) the next alarm","enum":["MUTE","RESET"]}},"required":["nextAlarmOrder"]},"ActivityRule":{"type":"object","description":"defines the targets and the triggering behavior to watch for silent devices","properties":{"id":{"type":"string","description":"id of the ActivityRule. Should be null when used for POST."},"name":{"type":"string","description":"user-defined name for the rule, must be unique and not empty."},"targets":{"$ref":"#/components/schemas/Targets","description":"define the targeted devices of the ActivityRule."},"silentPolicy":{"$ref":"#/components/schemas/SilentPolicy","description":"defines the 'silent device' triggering behavior"},"tags":{"type":"array","description":"list of tags that will be set on alarms triggered by this rule. e.g. 'level:HIGH'","items":{"type":"string"}},"enabled":{"type":"boolean","description":"activate or not the ActivityRule. Default is false."}},"required":["name","silentPolicy","targets"]},"SilentPolicy":{"type":"object","properties":{"duration":{"type":"string","description":"the duration (ISO 8601) after which the device will be considered as silent if it had no contact with the platform. If less than 10 minutes, this duration will be handled as a 10 minutes delay. A silent event/alarm will be sent after expiration.","example":"PT6H"},"repeatInterval":{"type":"string","description":"if the device previously triggered a silent alarm and still had no contact with the platform; duration (ISO 8601) after which a new silent event/alarm will be sent. If less than 10 minutes, this duration will be handled as a 10 minutes delay. If null, no further alarm will be sent until the new active/silent cycle.","example":"P1DT12H"}},"required":["duration"]},"Targets":{"type":"object","properties":{"deviceIds":{"type":"array","description":"List of targeted device ids. This field should not be empty if groupPaths is empty.","items":{"type":"string"}},"groupPaths":{"type":"array","description":"list of targeted group paths. This field should not be empty if deviceIds is empty.","items":{"$ref":"#/components/schemas/GroupPath"}}}},"AssetParameterValue":{"type":"object","properties":{"type":{"type":"string","enum":["INT32","UINT32","BINARY","STRING","FLOAT","UNKNOWN"]},"valueInt32":{"type":"integer","format":"int32"},"valueUInt32":{"type":"integer","format":"int64"},"valueBinary":{"type":"string","format":"byte"},"valueString":{"type":"string"},"valueFloat":{"type":"number","format":"double"}}},"Campaign":{"type":"object","properties":{"id":{"type":"string","description":"campaign id","example":"auto-generated id"},"name":{"type":"string","description":"campaign name","example":"My campaign"},"description":{"type":"string","description":"Campaign description","example":"A campaign that configures parameters, sends command and updates a resource"},"planning":{"$ref":"#/components/schemas/CampaignPlanning","description":"Campaign planning","example":{"startDate":"2119-07-19T09:23:11Z","endDate":"2119-07-20T09:23:11Z"}},"target":{"$ref":"#/components/schemas/DeviceSelector","description":"Device selector","example":{"idList":["urn:lo:nsid:myNamespace:myDeviceId","urn:lo:nsid:myNamespace:myDeviceId2"]}},"operations":{"type":"array","description":"requested operations","example":[{"action":"command","definition":{"event":"reset","data":{"delay":"5000"}}}],"items":{"oneOf":[{"$ref":"#/components/schemas/CampaignCommandOperationV1"},{"$ref":"#/components/schemas/CampaignConfigureOperation"},{"$ref":"#/components/schemas/CampaignResourceOperation"},{"$ref":"#/components/schemas/CampaignResourceUpdateOperation"},{"$ref":"#/components/schemas/CampaignTwinAddObservationOperation"},{"$ref":"#/components/schemas/CampaignTwinClearObservationsOperation"},{"$ref":"#/components/schemas/CampaignTwinExecuteOperation"},{"$ref":"#/components/schemas/CampaignTwinReadOperation"},{"$ref":"#/components/schemas/CampaignTwinWriteMetadataOperation"},{"$ref":"#/components/schemas/CampaignTwinWriteOperation"}]}},"options":{"$ref":"#/components/schemas/CampaignOptions","description":"Campaign options","example":{"dynamicallyAddEligibleDevice":false}},"numberOfTargets":{"type":"integer","format":"int32","description":"number of targets after deduplication","example":1,"readOnly":true},"totalTargetsPerStatus":{"$ref":"#/components/schemas/CampaignStatsPerStatus","description":"statistics per status","readOnly":true},"campaignStatus":{"type":"string","description":"current campaign status","enum":["SCHEDULED","RUNNING","SERVER_ERROR","INCOMPLETE","COMPLETE","CANCELED","CANCELING"],"example":"RUNNING","readOnly":true},"created":{"type":"string","format":"date-time","description":"date from when the campaign was created","example":"2119-07-19T09:23:11Z","readOnly":true},"updated":{"type":"string","format":"date-time","description":"date from when the campaign was last time updated","example":"2119-07-19T09:23:11Z","readOnly":true}},"required":["id","name","operations","planning","target"]},"CampaignCommandOperationV1":{"allOf":[{"$ref":"#/components/schemas/CampaignOperation"},{"type":"object","properties":{"definition":{"$ref":"#/components/schemas/CampaignCommandV1Definition","description":"Definition of a command operation","example":{"event":"reboot"}}}}],"required":["action","definition"]},"CampaignCommandV1Definition":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/DefinitionRequest","description":"command request"},"policy":{"$ref":"#/components/schemas/DefinitionPolicy","description":"Delivery policy for this command"},"maxRetry":{"type":"integer","format":"int32","description":"max operation retry","example":2}},"required":["request"]},"CampaignConfigureDefinition":{"type":"object","properties":{"assetParameters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/AssetParameterValue"},"description":"Device parameters to update","example":{"myParam":{"type":"INT32","valueInt32":123}}},"maxRetry":{"type":"integer","format":"int32","description":"max operation retry","example":2}},"required":["assetParameters"]},"CampaignConfigureOperation":{"allOf":[{"$ref":"#/components/schemas/CampaignOperation"},{"type":"object","properties":{"definition":{"$ref":"#/components/schemas/CampaignConfigureDefinition","description":"Definition of a configure operation","example":{"assetParameters":{"myParam":{"type":"INT32","valueInt32":123}}}}}}],"required":["action","definition"]},"CampaignOperation":{"type":"object","discriminator":{"propertyName":"action"},"properties":{"action":{"type":"string","description":"Type of operation","example":"configure"},"version":{"type":"integer","format":"int32","description":"Version of operation (default:0)","example":1}},"required":["action"]},"CampaignOptions":{"type":"object","properties":{"dynamicallyAddEligibleDevice":{"type":"boolean","description":"Devices matching the target filter can be dynamically added to the campaign","example":true}}},"CampaignPlanning":{"type":"object","properties":{"startDate":{"type":"string","format":"date-time","description":"Date from when the campaign starts"},"endDate":{"type":"string","format":"date-time","description":"Date when the campaign is finished"}},"required":["endDate","startDate"]},"CampaignRequestedContentFormat":{"type":"object","properties":{"request":{"type":"string"},"response":{"type":"string"}}},"CampaignResourceDefinition":{"type":"object","properties":{"resourceId":{"type":"string","description":"Resource id","example":"webkit-ocr"},"targetVersion":{"type":"string","description":"Resource target version","example":"v2"},"maxRetry":{"type":"integer","format":"int32","description":"max operation retry","example":2},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"the update operation metadata"}},"required":["resourceId","targetVersion"]},"CampaignResourceOperation":{"allOf":[{"$ref":"#/components/schemas/CampaignOperation"},{"type":"object","properties":{"definition":{"$ref":"#/components/schemas/CampaignResourceDefinition"}}}],"required":["action"]},"CampaignResourceUpdateDefinition":{"type":"object","properties":{"resourceId":{"type":"string","description":"Resource id","example":"webkit-ocr"},"connector":{"type":"string","description":"Resource update connector","example":"lwm2m-updater"},"requestedVersion":{"type":"string","description":"Resource update requested version","example":"v2"},"maxRetry":{"type":"integer","format":"int32","description":"max operation retry","example":2},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"the update operation metadata"}},"required":["requestedVersion","resourceId"]},"CampaignResourceUpdateOperation":{"allOf":[{"$ref":"#/components/schemas/CampaignOperation"},{"type":"object","properties":{"definition":{"$ref":"#/components/schemas/CampaignResourceUpdateDefinition"}}}],"required":["action"]},"CampaignStatsPerStatus":{"type":"object","description":"Statistics about devices with a given status","properties":{"notStarted":{"type":"integer","format":"int32","description":"Number of devices with status 'not started'"},"pending":{"type":"integer","format":"int32","description":"Number of devices with status 'pending'"},"inProgress":{"type":"integer","format":"int32","description":"Number of devices with status 'in progress'"},"success":{"type":"integer","format":"int32","description":"Number of devices with status 'success'"},"failure":{"type":"integer","format":"int32","description":"Number of devices with status 'failure'"},"canceled":{"type":"integer","format":"int32","description":"Number of devices with status 'canceled'"}},"required":["canceled","failure","inProgress","notStarted","pending","success"]},"CampaignTwinAddObservationOperation":{"allOf":[{"$ref":"#/components/schemas/CampaignOperation"},{"type":"object","properties":{"definition":{"$ref":"#/components/schemas/TwinAddObservationDefinition"}}}],"required":["action"]},"CampaignTwinClearObservationsOperation":{"allOf":[{"$ref":"#/components/schemas/CampaignOperation"},{"type":"object","properties":{"definition":{"$ref":"#/components/schemas/TwinClearObservationsDefinition"}}}],"required":["action"]},"CampaignTwinExecuteDefinition":{"type":"object","properties":{"type":{"type":"string","description":"EXECUTE operation: this operation is used to execute a target object attribute.","enum":["READ","WRITE","EXECUTE","WRITE-METADATA","UNKNOWN"],"example":"EXECUTE"},"options":{"$ref":"#/components/schemas/CampaignTwinOperationOptions","description":"Operations options"},"policy":{"$ref":"#/components/schemas/CampaignTwinOperationPolicy","description":"Operation policy"},"paths":{"type":"array","items":{"type":"string","description":"Path of attribute to execute. There can only be one path to execute","example":"/1/0/8"},"uniqueItems":true}},"required":["type"]},"CampaignTwinExecuteOperation":{"allOf":[{"$ref":"#/components/schemas/CampaignOperation"},{"type":"object","properties":{"definition":{"$ref":"#/components/schemas/CampaignTwinExecuteDefinition","description":"Definition of a twin EXECUTE operation"}}}],"required":["action","definition"]},"CampaignTwinOperationMetadata":{"type":"object","properties":{"name":{"type":"string","description":"Name of the metadata. (see \"NOTIFICATION class attributes\" from OMA LwM2M 1.0 specification)","example":"pmin"},"value":{"type":"string","description":"Value of the metadata. If not provided the metadata will be unset.","example":"10"}},"required":["name"]},"CampaignTwinOperationOptions":{"type":"object","properties":{"lwm2m":{"$ref":"#/components/schemas/CampaignTwinOperationOptionsLwm2m"}}},"CampaignTwinOperationOptionsLwm2m":{"type":"object","properties":{"contentFormat":{"$ref":"#/components/schemas/CampaignRequestedContentFormat","description":" `content format` requested by the customer for the operation (request, response)","example":{"request":"SENML_CBOR","response":"SENML_CBOR"}}}},"CampaignTwinOperationPolicy":{"type":"object","properties":{"attempts":{"type":"integer","format":"int32","default":1,"description":"maximum number of attempts until operation successfully reached device (default 1 means no retry)","maximum":5,"minimum":1}}},"CampaignTwinOperationWriteMetadataValue":{"type":"object","properties":{"path":{"type":"string","description":"Path of the object | instance on which metadata will be applied.","example":"/1/0/7"},"metadata":{"type":"array","description":"Set of metadata. Only provided metadata will be set | updated | unset.","example":[{"name":"pmin","value":"20"},{"name":"gt","value":"50"},{"name":"lt"}],"items":{"$ref":"#/components/schemas/CampaignTwinOperationMetadata"},"uniqueItems":true}},"required":["metadata","path"]},"CampaignTwinOperationWriteValue":{"type":"object","properties":{"path":{"type":"string","description":"Path of attribute, or attribute instance","example":"/1/0/3"},"value":{"type":"string","description":"value to write for \"WRITE\" operations","example":"\"tutu\""}},"required":["path","value"]},"CampaignTwinReadDefinition":{"type":"object","properties":{"type":{"type":"string","description":"READ operation: this operation is used to read attribute(s) value(s) of device object(s).","enum":["READ","WRITE","EXECUTE","WRITE-METADATA","UNKNOWN"],"example":"READ"},"options":{"$ref":"#/components/schemas/CampaignTwinOperationOptions","description":"Operations options"},"policy":{"$ref":"#/components/schemas/CampaignTwinOperationPolicy","description":"Operation policy"},"paths":{"type":"array","items":{"type":"string","description":"Paths of attribute, attribute instance, array of attribute instances, object instance or all the object instances of an object to read","example":"/1/0/7"},"uniqueItems":true}},"required":["type"]},"CampaignTwinReadOperation":{"allOf":[{"$ref":"#/components/schemas/CampaignOperation"},{"type":"object","properties":{"definition":{"$ref":"#/components/schemas/CampaignTwinReadDefinition","description":"Definition of a twin READ operation"}}}],"required":["action","definition"]},"CampaignTwinWriteDefinition":{"type":"object","properties":{"type":{"type":"string","description":"WRITE operation: this operation is used to write attribute(s) value(s) on device object(s). <br>A `WRITE` operation relies on `writeMode`: `UPDATE` act like a 'patch' while `REPLACE` will override target path.","enum":["READ","WRITE","EXECUTE","WRITE-METADATA","UNKNOWN"],"example":"WRITE"},"options":{"$ref":"#/components/schemas/CampaignTwinOperationOptions","description":"Operations options"},"policy":{"$ref":"#/components/schemas/CampaignTwinOperationPolicy","description":"Operation policy"},"paths":{"type":"array","items":{"type":"string","description":"Paths of attribute, attribute instance, array of attribute instances, object instance or all the object instances of an object to replace/update. There can only be one path","example":"/1/0"},"uniqueItems":true},"writeMode":{"type":"string","description":"Write mode","enum":["UPDATE","REPLACE"],"example":"UPDATE"},"values":{"type":"array","description":"Paths and value to write","example":[{"path":"/1/0/7","value":"tutu"},{"path":"/1/0/25/2","value":"toto"}],"items":{"$ref":"#/components/schemas/CampaignTwinOperationWriteValue"},"uniqueItems":true}},"required":["type","values","writeMode"]},"CampaignTwinWriteMetadataDefinition":{"type":"object","properties":{"type":{"type":"string","description":"WRITE METADATA operation: this operation is used to write (set, update, unset) metadata on device object(s).","enum":["READ","WRITE","EXECUTE","WRITE-METADATA","UNKNOWN"],"example":"WRITE-METADATA"},"options":{"$ref":"#/components/schemas/CampaignTwinOperationOptions","description":"Operations options"},"policy":{"$ref":"#/components/schemas/CampaignTwinOperationPolicy","description":"Operation policy"},"values":{"type":"array","description":"Path and set of metadata to write. This set must contains only one path.","example":[{"path":"/1/0/7","metadata":[{"name":"pmin","value":"20"},{"name":"gt","value":"50"},{"name":"lt"}]}],"items":{"$ref":"#/components/schemas/CampaignTwinOperationWriteMetadataValue"},"uniqueItems":true}},"required":["type","values"]},"CampaignTwinWriteMetadataOperation":{"allOf":[{"$ref":"#/components/schemas/CampaignOperation"},{"type":"object","properties":{"definition":{"$ref":"#/components/schemas/CampaignTwinWriteMetadataDefinition","description":"Definition of a twin WRITE-METADATA operation"}}}],"required":["action","definition"]},"CampaignTwinWriteOperation":{"allOf":[{"$ref":"#/components/schemas/CampaignOperation"},{"type":"object","properties":{"definition":{"$ref":"#/components/schemas/CampaignTwinWriteDefinition","description":"Definition of a twin WRITE operation"}}}],"required":["action","definition"]},"DefinitionPolicy":{"type":"object","properties":{"expirationInSeconds":{"type":"integer","format":"int64","description":"Expiration in seconds since command creation date. Default is no expiry. Min value is 5 seconds","example":120,"maximum":9223372036854775,"minimum":5},"ackTimeoutInSeconds":{"type":"integer","format":"int64","description":"Ack timeout in seconds since command was sent. Default is no ack timeout. Min value is 10 seconds","example":120},"ackMode":{"type":"string","description":"Ack mode for this command. NONE ack means that the command is automatically acknowledged (set to 'PROCESSED' status) as the command is sent to the device. NETWORK ack requires a reception acknowledge. APPLICATIVE ack requires a command response from the device to change its status. Default ack mode is connectivity dependant.","enum":["NONE","NETWORK","APPLICATIVE"],"example":"APPLICATIVE"}}},"DefinitionRequest":{"type":"object","properties":{"connector":{"type":"string","description":"connector/protocol to use to forward the command","enum":["mqtt","lora","sms","x-connector"],"example":"mqtt"},"value":{"description":"command value (protocol/connector-dependant). The length is limited.","example":{"req":"reboot","arg":{"delay":1000}}}},"required":["connector","value"]},"DeviceSelector":{"type":"object","properties":{"idList":{"type":"array","description":"List of device IDs in the form urn:lo:nsid:${assetNamespace}:${assetId}","example":["urn:lo:nsid:myNamespace:myDeviceId"],"items":{"type":"string"}},"filterQuery":{"type":"string","description":"Filtering expression using RSQL notation. Supported device properties are 'groupPath', 'groupId', 'tags', 'properties'. Supported RSQL operators are '==','!=','=in=','=out=','=re=','=lt=','=le=','=gt=','=ge=','and','or'","example":"tags=in=(FUT,TEST1)"}}},"TwinAddObservationDefinition":{"type":"object","properties":{"paths":{"type":"array","description":"Paths of attribute, attribute instance, object instance or all the object instances of an object to observe","example":["/1","/3/0","/3442/0/110","/3442/0/1110/0"],"items":{"type":"string","maxLength":255,"minLength":0},"maxItems":100,"minItems":0,"uniqueItems":true},"name":{"type":"string","description":"User-defined name for the observation, must not be null, must contain at least one non-whitespace character and at most 255 characters","example":"myObservation","maxLength":255,"minLength":0}},"required":["name","paths"]},"TwinClearObservationsDefinition":{},"CsvColumn":{"type":"object","properties":{"name":{"type":"string","description":"the name of the column that will be used as field name","example":"column1"},"jsonType":{"type":"string","description":"the json type of the value : STRING, NUMERIC, BOOLEAN","example":"NUMERIC"}},"required":["jsonType","name"]},"CsvOptions":{"type":"object","properties":{"columnSeparator":{"type":"string","description":"Character used to separate values. Default is comma ','","example":";"},"quoteChar":{"type":"string","description":"Character used for quoting values that contain column separator characters or linefeed. Default is double-quote '\"'.","example":"'"},"useEscapeChar":{"type":"boolean","description":"Set to true if you want to use an escape char. Default is false."},"escapeChar":{"type":"string","description":"Character used to escape values. Default is backslash '\\'","example":"\\"},"skipWhiteSpace":{"type":"boolean","description":"if set to true, it will trim the decoded values (white spaces before and after will be removed). Default is false."},"lineFeedSeparator":{"type":"string","description":"Character used to separate data rows. If the message payload contains several rows, only the first one will be decoded. Default is line feed '\\n'.","example":"\\n"}}},"CsvPayloadDescription":{"type":"object","description":"binary decoder provisioning information","properties":{"id":{"type":"string","description":"id of the decoder. Should be null when used for POST. Required for update."},"encoding":{"type":"string","description":"unique decoder name. Will be used to trigger the decoding function. To be applied, it must match exactly the data message 'metadata.encoding' field or the 'encoding' property of the device's interface."},"enabled":{"type":"boolean","description":"decoder activation. Default is false. If disabled, the decoder will not be applied on the data messages."},"model":{"type":"string","description":"if empty, the decoded data will use the value of 'model' field from encoded data. If set, this value will be used to override 'model' field in decoded data."},"type":{"type":"string","description":"decoder type : csv, binary, javascript, javascript-split","readOnly":true},"template":{"type":"string","description":"decoding result optional template. Use mustache-like format. Available mustache functions : math, toUpperCase, toLowerCase. e.g. '{{#math}}{{temperature}} * 1.8 + 32{{/math}}'The template will be applied on the decoded result only if the decoder is enabled and the decoding is successful. If not set, the decoded result will be used as is."},"mathEvalEnabled":{"type":"boolean","description":"Applying, or not, math evaluation on templated decoded result. Default is true"},"tags":{"type":"array","description":"tags used for description and filtering","items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/PayloadDescriptionMetadata","description":"decoder metadata. Read-only, set by the platform.","readOnly":true},"updated":{"type":"string","description":"date of the last update. ISO 8601 date time. Read-only, set by the platform.","example":"2019-05-15T07:55:55.555Z","readOnly":true},"columns":{"type":"array","description":"columns description for the CSV format","items":{"$ref":"#/components/schemas/CsvColumn"}},"options":{"$ref":"#/components/schemas/CsvOptions","description":"CSV decoding options to apply"}},"required":["columns","enabled","encoding"]},"PayloadDescriptionMetadata":{"type":"object","properties":{"certified":{"type":"boolean","description":"the decoder is certified for the specified encoding. Only a public decoder can be certified. The default value is false.","readOnly":true},"certifiedSince":{"type":"string","description":"date since when the decoder is certified. ISO 8601 date time.","example":"2019-05-15T07:55:55.555Z","readOnly":true}}},"BinaryPayloadDescription":{"type":"object","properties":{"id":{"type":"string","description":"id of the decoder. Should be null when used for POST. Required for update."},"encoding":{"type":"string","description":"unique decoder name. Will be used to trigger the decoding function. To be applied, it must match exactly the data message 'metadata.encoding' field or the 'encoding' property of the device's interface."},"enabled":{"type":"boolean","description":"decoder activation. Default is false. If disabled, the decoder will not be applied on the data messages."},"model":{"type":"string","description":"if empty, the decoded data will use the value of 'model' field from encoded data. If set, this value will be used to override 'model' field in decoded data."},"type":{"type":"string","description":"decoder type : csv, binary, javascript, javascript-split","readOnly":true},"template":{"type":"string","description":"decoding result optional template. Use mustache-like format. Available mustache functions : math, toUpperCase, toLowerCase. e.g. '{{#math}}{{temperature}} * 1.8 + 32{{/math}}'The template will be applied on the decoded result only if the decoder is enabled and the decoding is successful. If not set, the decoded result will be used as is."},"mathEvalEnabled":{"type":"boolean","description":"Applying, or not, math evaluation on templated decoded result. Default is true"},"tags":{"type":"array","description":"tags used for description and filtering","items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/PayloadDescriptionMetadata","description":"decoder metadata. Read-only, set by the platform.","readOnly":true},"updated":{"type":"string","description":"date of the last update. ISO 8601 date time. Read-only, set by the platform.","example":"2019-05-15T07:55:55.555Z","readOnly":true},"format":{"type":"string","description":"the JBBP (Java Binary Block Parser) binary payload format with LO additional tokens (float, utf8). e.g. 'int pressure;float temperature;utf8[2] tags;'. Available operators are : int, uint, long, float, double, short, ushort, byte, ubyte, asciichar, utf8. The array size can be defined with [n].","example":"int pressure;"}},"required":["enabled","encoding","format"]},"DebugModeConfiguration":{"type":"object","description":"body for API key debug mode","properties":{"activated":{"type":"boolean","description":"The state of the debug mode"},"durationSeconds":{"type":"integer","format":"int64","description":"The duration in second during which the debug mode will be activated (default = 900 seconds, i.e 15 minutes)"}},"required":["activated"]},"ApiKey":{"type":"object","properties":{"id":{"type":"string","description":"API key unique identifier, randomly generated at creation","example":"52FFCAFEDECAFFFFFFFFFFF"},"parentId":{"type":"string","description":"identifier of the parent API key, can be null if API key is a master API key","example":"57FFFFFFFFFFFFFFFFFFFFFF"},"tenantId":{"type":"string","description":"identifier of tenant account this API key belongs to","example":"57FFFFFFFFFFFFFFFFFFFFFF"},"userId":{"type":"string","description":"identifier of the user account this API key belongs to (or null if not a user session API key)","example":"57FFFFFFFFFFFFFFFFFFFFFF"},"value":{"type":"string","description":"API key value (= the secret!)","example":"e45ffc0d97c64cd6b959436f9200d5d1"},"nonce":{"type":"string","description":"Nonce","example":"875fd664f97540f0ad9ec2f889a40ce9"},"creationTs":{"type":"integer","format":"int64","description":"Date/time of creation (in ms)","example":1473078982518},"from":{"type":"integer","format":"int64","description":"Date/time of start of validity (in ms)","example":1473078900000},"to":{"type":"integer","format":"int64","description":" Date/time of end of validity (in ms)","example":1475224200000},"lastActivity":{"type":"integer","format":"int64","description":"Date/time of last activity (in ms)","example":1473078982518},"sessionTTL":{"type":"integer","format":"int64","description":"Duration of validity since the last activity (in ms)","example":144410},"label":{"type":"string","description":"Title of the key","example":"My Api Key Name"},"description":{"type":"string","description":"Short description of the key","example":"My description of Api Key target"},"active":{"type":"boolean","description":"Switch to activate/deactivate the API Key","example":true},"rateLimit":{"$ref":"#/components/schemas/RateLimit"},"roles":{"type":"array","description":"list of API key associated roles.","example":["USER_R","APIKEY_R"],"items":{"type":"string"},"uniqueItems":true},"scope":{"$ref":"#/components/schemas/ScopeApplication","description":"List of scope to apply"},"debugModeEndTs":{"type":"integer","format":"int64","description":"Timestamp indicating the end date for the debug mode","example":1475224200000},"clientCert":{"$ref":"#/components/schemas/ClientCertificatesConfiguration"},"masterKey":{"type":"boolean"},"sessionKey":{"type":"boolean"},"expired":{"type":"boolean"}},"required":["roles"]},"ClientCertificatesConfiguration":{"type":"object","properties":{"required":{"type":"boolean","description":"Indicates if the client must use TLS client cert authentication","example":true},"caCertIds":{"type":"array","description":"List of Ca Certificate Ids used to authenticate devices. Expected array of string (max 100 elements, value max 255 characters)","example":["5b057d0fb8605a5e80758e42"],"items":{"type":"string"}}},"required":["required"]},"RateLimit":{"type":"object","properties":{"mqttBridgeWindowSize":{"type":"integer","format":"int64","description":"mqtt bridge rate limit: window size in seconds","example":1},"mqttBridgeMaxMessages":{"type":"integer","format":"int64","description":"mqtt bridge rate limit: maximum messages allowed per time window","example":1},"mqttDeviceWindowSize":{"type":"integer","format":"int64","description":"mqtt device rate limit: window size in seconds","example":1},"mqttDeviceMaxMessages":{"type":"integer","format":"int64","description":"mqtt device rate limit: maximum messages allowed per time window","example":1},"httpWindowSize":{"type":"integer","format":"int64","description":"http rate limit: window size in seconds","example":1},"httpMaxCalls":{"type":"integer","format":"int64","description":"http rate limit: maximum api calls allowed per time window","example":1}}},"ScopeApplication":{"type":"object","properties":{"fifos":{"type":"array","description":"List of allowed FIFOs to publish or subscribe. Expected array of string (max 100 elements, value max 255 characters)","example":["default","supplierA"],"items":{"type":"string"},"uniqueItems":true}}},"SearchSubscriptionsRequest":{"type":"object","description":"Search subscriptions request","properties":{"type":{"type":"string","description":"Search type of the subscription, allowed types : \"msisdn\", \"imei\" or \"deviceId\"","example":"msisdn"},"value":{"type":"string","description":"Search value of the subscription (max 269 characters)","example":"337000003543020"}},"required":["type","value"]},"CellularDevice":{"type":"object","properties":{"imei":{"type":"string","description":"International Mobile Equipment Identity","example":"352753093029773"},"lastUpdate":{"type":"string","format":"date-time","description":"Last update date of device","example":"2021-02-03T10:45:35+01:00"}}},"Provider":{"type":"object","description":"Customer Cellular-Network provider","properties":{"type":{"type":"string","description":"Provider type. Allowed values: [malima] (case insensitive)","example":"malima"},"configuration":{"$ref":"#/components/schemas/ProviderConfiguration","description":"Provider customer account configuration","example":{"cen":"cen111","instanceId":"OFR"}},"accountName":{"type":"string","description":"Provider account name","example":"MyAccountName"},"link":{"type":"string","description":"link to access portal M2M","example":"https://m2mexpress.fr.orange-business.com/mac/customer/fleet/details.do?subId=06361404&category=SIM"}}},"ProviderConfiguration":{"description":"Provider customer account configuration"},"Sim":{"type":"object","properties":{"status":{"type":"string","description":"Status of SIM","enum":["PRE_ACTIVATED","ACTIVATED_FOR_TEST","ACTIVATED","SLEEPING","SUSPENDED","CANCELLED","PAUSE","WAITING_FOR_SUSPENSION","TEST","BLOCKED_BY_CUSTOMER","BLOCKED_BY_BRULES_PERM","UNKNOWN"],"example":"PRE_ACTIVATED, ACTIVATED_FOR_TEST, ACTIVATED, SLEEPING, SUSPENDED, CANCELLED, PAUSE"},"iccid":{"type":"string","description":"Integrated Circuit Card Identifier","example":"89330129210007850940"},"serialNumber":{"type":"string","description":"Serial Number of SIM","example":"2921000785084"},"lastUpdate":{"type":"string","format":"date-time","description":"Last update date of SIM","example":"2021-01-09T18:22:28+01:00"},"capabilities":{"$ref":"#/components/schemas/SimCapabilities","description":"List of SIM capabilities"}}},"SimCapabilities":{"type":"object","properties":{"smartSim":{"type":"boolean","description":"Status of Smart SIM","example":true}}},"SubscriptionResponse":{"type":"object","description":"Subscription Response","properties":{"id":{"type":"string","description":"Subscription unique identifier","example":"06361404"},"msisdn":{"type":"string","description":"Number uniquely identifying a subscription in a Global System for Mobile communications","example":"337000003543020"},"imsi":{"type":"string","description":"International Mobile Subscriber Identity","example":"208017401123509"},"sim":{"$ref":"#/components/schemas/Sim","description":"Sim"},"provider":{"$ref":"#/components/schemas/Provider","description":"Provider"},"device":{"$ref":"#/components/schemas/CellularDevice","description":"Device"}}},"InterfaceDefinition":{"type":"object","properties":{"connector":{"type":"string","description":"Interface connector","example":"lwm2m"},"nodeId":{"type":"string","description":"Interface node identifier","example":"12345A0409001C1A"}},"required":["connector"]},"NetworkMetricsFilters":{"type":"object","properties":{"direction":{"type":"string","description":"Direction of the exchange. `uplink` (from device to Live Objects), `downlink` (from Live Objects to device)","example":"uplink"},"messageTypes":{"type":"array","description":"Message types filters","example":["REGISTER_REQUEST","UPDATE_REQUEST","DEREGISTER_REQUEST","READ_REQUEST","READ_RESPONSE","NOTIFY","SEND_REQUEST"],"items":{"type":"string"},"uniqueItems":true},"groupPath":{"type":"string","description":"Group path filter, if it ends with `/*` it includes subgroups","example":"/myGroup/*"},"tags":{"type":"array","description":"Tags filters (OR between tags)","example":["demo","v1"],"items":{"type":"string"},"uniqueItems":true},"from":{"type":"string","format":"date-time","description":"Date and time from which the search for network metrics begins. Use ISO-8601 normalization.","example":"2003-09-06T20:05:00Z"},"to":{"type":"string","format":"date-time","description":"Date and time until which the search for network metrics ends. Use ISO-8601 normalization.","example":"2003-09-07T15:12:13Z"},"interface":{"$ref":"#/components/schemas/InterfaceDefinition","description":"Interface"}},"required":["from","interface","to"]},"NetworkMetricsRequest":{"type":"object","description":"Filters applying to the network metrics search","properties":{"filters":{"$ref":"#/components/schemas/NetworkMetricsFilters","description":"Network metrics filters"},"timeAggregation":{"$ref":"#/components/schemas/TimeAggregation","description":"Time aggregation"},"subAggregation":{"$ref":"#/components/schemas/SubAggregation","description":"Sub aggregation"}},"required":["filters","timeAggregation"]},"SubAggregation":{"type":"object","description":"Sub aggregation","properties":{"field":{"type":"string","description":"Aggregated results on specify field. Supported value is `messageType`","example":"messageType"}},"required":["field"]},"TimeAggregation":{"type":"object","description":"Time aggregation","properties":{"interval":{"type":"string","description":"Interval of the aggregated results.Available values are `15m`, `hour`, `day`, `week`","example":"hour"},"timezone":{"type":"string","description":"Timezone applied to the aggregated result on the filtered period. This field matches ISO 8601 UTC offset (e.g. +01:00)","example":"+01:00"}},"required":["interval"]},"NetworkMetricsResult":{"type":"object","properties":{"timeStart":{"type":"string","format":"date-time","description":"Date/time","example":"2019-01-01T00:00:00.000Z"},"messageCount":{"type":"integer","format":"int64","description":"count","example":5},"subAggregationBuckets":{"type":"array","description":"sub aggregation buckets","items":{"$ref":"#/components/schemas/SubAggregationBucket"}}}},"SubAggregationBucket":{"type":"object","properties":{"key":{"type":"string","description":"key of sub aggregation","example":"UPDATE_REQUEST"},"messageCount":{"type":"integer","format":"int64","description":"count","example":5}}},"LostMessagesFilters":{"type":"object","properties":{"from":{"type":"string","format":"date-time","description":"Date and time from which the search for lost messages begins. Use ISO-8601 normalization.","example":"2003-09-06T20:05:00Z"},"to":{"type":"string","format":"date-time","description":"Date and time until which the search for lost messages ends. Use ISO-8601 normalization.","example":"2003-09-07T15:12:13Z"},"interface":{"$ref":"#/components/schemas/InterfaceDefinition","description":"Interface"}},"required":["from","interface","to"]},"LostMessagesRatioRequest":{"type":"object","description":"Filters applying to the lost messages ratio search","properties":{"filters":{"$ref":"#/components/schemas/LostMessagesFilters","description":"Lost messages filters"},"timeAggregation":{"$ref":"#/components/schemas/TimeAggregation","description":"Time aggregation"}},"required":["filters","timeAggregation"]},"LostMessagesRatioResult":{"type":"object","properties":{"timeStart":{"type":"string","format":"date-time","description":"Date/time","example":"2019-01-01T00:00:00.000Z"},"value":{"type":"number","format":"double","description":"ratio","example":0.1}}},"HttpPushWebhookTest":{"type":"object","description":"Http push request to be tested","properties":{"webhookUrl":{"type":"string","description":"The url of the target service webhook (only the ports 80, 443, 8080, 8443 and 9243 are allowed)."},"headers":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"A map of header to be passed in the http POST headers"},"requestBody":{"type":"string","description":"The body of the http POST test request"},"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},"requestTimeout":{"type":"integer","format":"int64","description":"The maximum delay allowed to complete the http POST test request, in milliseconds"}}},"HttpPushTestResult":{"type":"object","properties":{"success":{"type":"boolean"},"urlBlacklisted":{"type":"boolean"},"errorMessage":{"type":"string"},"httpResponseStatusCode":{"type":"integer","format":"int32"},"httpResponseBody":{"type":"string"}}},"FifoTestRequest":{"type":"object","description":"FIFO test message request","properties":{"fifoName":{"type":"string","description":"name of the fifo to publish in"},"payload":{"description":"Fifo message to send, must be not null and json Object serializable"}},"required":["fifoName","payload"]},"FifoTestResult":{"type":"object","properties":{"success":{"type":"boolean","description":"Indicates if the test message was successfully published"},"errorMessage":{"type":"string","description":"Details about the error if any"}}},"AttributeDefinition":{"type":"object","properties":{"pathSegment":{"type":"string","description":"Used to build a part of the full path to access an instance of this element","example":"1"},"name":{"type":"string","description":"The full original name","example":"Maximum Defer Period"},"description":{"type":"string","description":"Description of the attribute","example":"Attribute description"},"minOccurs":{"type":"integer","format":"int32","description":"Minimal occurrence (0 means optional, 1 means mandatory and at least 1 is required)","example":0},"maxOccurs":{"type":"integer","format":"int32","description":"Maximal occurrence (0 means infinite instances are allowed (unbounded), 1 means maximum 1 instance is allowed","example":1},"type":{"type":"string","description":"<p><span style=\"text-decoration: underline;\">Attribute type supported values are :</span></p><ul><li>\"STRING\": represented as UTF-8 string</li><li>\"INTEGER\": represented as ASCII signed integer 1, 2,4 or 8 bytes</li><li>\"UNSIGNED_INTEGER\": represented as ASCII unsigned integer 1, 2,4 or 8 bytes</li><li>\"BOOLEAN\": represented as ASCII value 0 or 1</li><li>\"FLOAT\": represented as a 32 or 64-bit floating point values</li><li>\"BASE64\": represented as a sequence of binary octets</li><li>\"DATETIME\": represented as a Unix Time. A signed integer representing the number of seconds since Jan 1st, 1970 in the UTC time zone</li></ul><br/>","enum":["STRING","INTEGER","UNSIGNED_INTEGER","BOOLEAN","FLOAT","BASE_64","DATE_TIME"],"example":"FLOAT"},"operations":{"type":"array","description":"List of attribute operations among [\"READ\", \"WRITE\", \"EXECUTE\"]","example":"WRITE","items":{"type":"string","enum":["READ","WRITE","EXECUTE"]}},"mandatory":{"type":"boolean"}}},"ObjectDefinition":{"type":"object","properties":{"objectDefinitionId":{"type":"string","description":"Unique identifier of the object-definition","example":"urn:oma:lwm2m:oma:32769:1.1"},"pathSegment":{"type":"string","description":"Part of the full path to access an instance of this element","example":"32769"},"name":{"type":"string","description":"The full original name","example":"My object"},"description":{"type":"string","description":"Description of the object","example":"info ..."},"minOccurs":{"type":"integer","format":"int32","description":"Minimal occurrence (0 means optional, 1 means mandatory and at least 1 is required)","example":0},"maxOccurs":{"type":"integer","format":"int32","description":"Maximal occurrence (0 means infinite instances are allowed (unbounded), 1 means maximum 1 instance is allowed","example":1},"type":{"type":"string","description":"<p><span style=\"text-decoration: underline;\">Object type supported values are :</span></p><ul><li>\"OBJECT\": means that this is a single object</li><li>\"OBJECT_MAP\": means that this object is a map of object, and that a path of such an object instance is always using a map index</li></ul><br/>","enum":["OBJECT","OBJECT_MAP"],"example":"OBJECT"},"operations":{"type":"array","description":"List of object operations among [\"READ\", \"WRITE\"]","example":"WRITE","items":{"type":"string","enum":["READ","WRITE"]}},"attributes":{"type":"array","description":"List of attribute type for this object.","items":{"$ref":"#/components/schemas/AttributeDefinition"}},"parent":{"type":"string","description":"the objectDefinitionId of the parent object.\nThe parent must be another Object. In LwM2M all LwM2M objects are direct children of \"root\":urn:oma:lwm2m There is just 1 level of object hierarchy","example":"urn:oma:lwm2m"},"owner":{"type":"string","description":"The customer identifier in case of private model","example":"c10772fa-0577-11ec-9a03-0242ac130003"}}},"TwinModelResponse":{"type":"object","properties":{"objectDefinitionId":{"type":"string","description":"Unique identifier of the object-definition","example":"urn:oma:lwm2m:oma:32769:1.1"},"pathSegment":{"type":"string","description":"Part of the full path to access an instance of this element","example":"32769"},"name":{"type":"string","description":"The full original name","example":"My object"},"description":{"type":"string","description":"Description of the object","example":"info ..."},"minOccurs":{"type":"integer","format":"int32","description":"Minimal occurrence (0 means optional, 1 means mandatory and at least 1 is required)","example":0},"maxOccurs":{"type":"integer","format":"int32","description":"Maximal occurrence (0 means infinite instances are allowed (unbounded), 1 means maximum 1 instance is allowed","example":1},"type":{"type":"string","description":"<p><span style=\"text-decoration: underline;\">Object type supported values are :</span></p><ul><li>\"OBJECT\": means that this is a single object</li><li>\"OBJECT_MAP\": means that this object is a map of object, and that a path of such an object instance is always using a map index</li></ul><br/>","enum":["OBJECT","OBJECT_MAP"],"example":"OBJECT"},"operations":{"type":"array","description":"List of object operations among [\"READ\", \"WRITE\"]","example":"WRITE","items":{"type":"string","enum":["READ","WRITE"]}},"attributes":{"type":"array","description":"List of attribute type for this object.","items":{"$ref":"#/components/schemas/AttributeDefinition"}},"parent":{"type":"string","description":"the objectDefinitionId of the parent object.\nThe parent must be another Object. In LwM2M all LwM2M objects are direct children of \"root\":urn:oma:lwm2m There is just 1 level of object hierarchy","example":"urn:oma:lwm2m"},"owner":{"type":"string","description":"The customer identifier in case of private model","example":"c10772fa-0577-11ec-9a03-0242ac130003"},"children":{"type":"array","description":"List of objectDefinitionId","items":{"$ref":"#/components/schemas/ObjectDefinition"}}}},"TwinDataRuleRequest":{"type":"object","properties":{"name":{"type":"string","description":"name of data rule","example":"my twin data rule"},"type":{"type":"string","description":"type of data rule, must be \"passthrough\"","example":"passthrough"},"paths":{"type":"array","description":"paths used as data new filter, must be [\"/\"]","example":["/"],"items":{"type":"string"},"uniqueItems":true}},"required":["name","paths","type"]},"TwinDataRule":{"type":"object","properties":{"id":{"type":"string","description":"data rule unique identifier","example":"623df1ba014fd248812e5ee9"},"name":{"type":"string","description":"name of data rule","example":"my twin data rule"},"type":{"type":"string","description":"type of data rule","enum":["PASSTHROUGH","UNKNOWN"],"example":"passthrough"},"paths":{"type":"array","description":"paths used as data new filter","example":["/"],"items":{"type":"string"},"uniqueItems":true},"created":{"type":"string","format":"date-time","description":"data rule creation date/time","example":"2022-02-08T11:32:25.055Z"}},"required":["created","id","name","paths","type"]},"GroupCreateRequest":{"type":"object","description":"The group to register","properties":{"parentId":{"type":"string","description":"reference to group's parent (id). Use 'root' for a top level group.Expected string (max 6 characters)","example":"123456"},"pathNode":{"type":"string","description":"group's local id in path (unique for groups in same parent).Authorized: letter (lowercase and uppercase), accented characters, number, space, dash, underscore and simple quote. A valid path must respect the following regular expression <code>[\\wÀ-ÖØ-öø-ÿ' -]{1,255}</code>.Expected string (max 255 characters)","example":"france"},"description":{"type":"string","description":"group description. Expected string (max 255 characters)"}},"required":["pathNode"]},"ActivityRuleFilters":{"type":"object","properties":{"id":{"type":"string"}}},"ActivityStatesFilters":{"type":"object","properties":{"rule":{"$ref":"#/components/schemas/ActivityRuleFilters"},"states":{"type":"array","items":{"type":"string"},"uniqueItems":true}}},"Coordinates":{"type":"object","properties":{"lat":{"type":"number","format":"double","description":"latitude","example":52.369219},"lon":{"type":"number","format":"double","description":"longitude","example":4.901618}},"required":["lat","lon"]},"GeoBounds":{"type":"object","properties":{"topLeft":{"$ref":"#/components/schemas/Coordinates","description":"top-left coordinate"},"bottomRight":{"$ref":"#/components/schemas/Coordinates","description":"bottom-right coordinate"}},"required":["bottomRight","topLeft"]},"GroupBy":{"type":"object","properties":{"groupBy":{"description":"group by"},"field":{"type":"string","enum":["tags","description","group.path","aggregatedActivityState","network.lora.lostMessagesRangeLabel"]},"compositeField":{"type":"string","enum":["connectors"]},"interfaces":{"$ref":"#/components/schemas/GroupByInterfaces"},"properties":{"$ref":"#/components/schemas/GroupByProperties"},"activityStates":{"$ref":"#/components/schemas/GroupByActivityStates"},"location":{"$ref":"#/components/schemas/GroupByLocation"}}},"GroupByActivityRule":{"type":"object","properties":{"field":{"type":"string","enum":["id"]}}},"GroupByActivityStates":{"type":"object","properties":{"groupBy":{"description":"group by"},"field":{"type":"string","enum":["state","rule.id"]},"rule":{"$ref":"#/components/schemas/GroupByActivityRule"},"filter":{"$ref":"#/components/schemas/ActivityStatesFilters"}}},"GroupByInterfaceDefinition":{"type":"object","properties":{"field":{"type":"string","enum":["profile"]}}},"GroupByInterfaces":{"type":"object","properties":{"groupBy":{"description":"group by"},"field":{"type":"string","enum":["definition.profile","connector","status"]},"definition":{"$ref":"#/components/schemas/GroupByInterfaceDefinition"},"filter":{"$ref":"#/components/schemas/InterfacesFilters"}}},"GroupByLocation":{"type":"object","properties":{"groupBy":{"description":"group by"},"precision":{"type":"integer","format":"int32"}}},"GroupByProperties":{"type":"object","properties":{"groupBy":{"description":"group by"},"field":{"type":"string","enum":["key","value"]},"filter":{"$ref":"#/components/schemas/PropertiesFilters"}}},"InterfacesFilters":{"type":"object","properties":{"connector":{"type":"string"},"status":{"type":"string"},"definition":{"$ref":"#/components/schemas/InterfaceDefinition"}}},"PropertiesFilters":{"type":"object","properties":{"key":{"type":"string"},"value":{"type":"string"}}},"StatsFilters":{"type":"object","properties":{"geoBounds":{"$ref":"#/components/schemas/GeoBounds","description":"Geo bounds"},"queryString":{"type":"string","description":"Filtering expression using RSQL notation (max 512 characters)."}}},"StatsOptions":{"type":"object","properties":{"includeTotalKeys":{"type":"boolean","description":"should include total keys"},"includeMissingDevicesCount":{"type":"boolean","description":"should include missing devices count"},"includeGeoBoundsInBuckets":{"type":"boolean","description":"should include geo bounds in bucket"}}},"StatsRequest":{"type":"object","description":"Stats request","properties":{"groupBy":{"$ref":"#/components/schemas/GroupBy","description":"group by"},"options":{"$ref":"#/components/schemas/StatsOptions","description":"Statistics options"},"filters":{"$ref":"#/components/schemas/StatsFilters","description":"Statistics filters"}}},"FieldAggregation":{"type":"object","description":"Field aggregation","properties":{"count":{"type":"integer","format":"int64","description":"total number of entries (interfaces,properties, or activityState) in aggregation buckets"},"devices":{"type":"integer","format":"int64","description":"total number of devices in aggregation buckets"},"buckets":{"type":"array","description":"aggregation buckets","items":{"$ref":"#/components/schemas/FieldBucket"}},"missing":{"type":"integer","format":"int64","description":"total number of devices not matching group-by clause"},"keys":{"type":"integer","format":"int64","description":"unique keys count"}}},"FieldBucket":{"type":"object","properties":{"key":{},"count":{"type":"integer","format":"int64"},"devices":{"type":"integer","format":"int64"},"fieldAggregation":{"description":"Field aggregation"}}},"GeoAggregation":{"type":"object","description":"Geo aggregation","properties":{"count":{"type":"integer","format":"int64","description":"total number of entries (interfaces,properties, or activityState) in aggregation buckets"},"devices":{"type":"integer","format":"int64","description":"total number of devices in aggregation buckets"},"buckets":{"type":"array","description":"aggregation buckets","items":{"$ref":"#/components/schemas/LocationBucket"}},"missing":{"type":"integer","format":"int64","description":"total number of devices not matching group-by clause"},"geoBounds":{"$ref":"#/components/schemas/GeoBounds","description":"geo bounds (bounding box containing all geo values)"}}},"LocationBucket":{"type":"object","description":"Location bucket","properties":{"geoKey":{"$ref":"#/components/schemas/Coordinates","description":"location coordinate"},"geoBounds":{"$ref":"#/components/schemas/GeoBounds","description":"geo bounds coordinates"},"devices":{"type":"integer","format":"int64","description":"location total number of devices"},"fieldAggregation":{"$ref":"#/components/schemas/FieldAggregation","description":"location field sub aggregation"}}},"StatsResponse":{"type":"object","description":"Stats response","properties":{"devices":{"type":"integer","format":"int64","description":"devices count after applying global filters"},"fieldAggregation":{"$ref":"#/components/schemas/FieldAggregation","description":"field aggregation"},"geoAggregation":{"$ref":"#/components/schemas/GeoAggregation","description":"geo aggregation"}}},"SearchFilters":{"type":"object","properties":{"geoBounds":{"$ref":"#/components/schemas/GeoBounds","description":"Geo bounds filter"},"queryString":{"type":"string","description":"Filtering expression using RSQL notation (max 512 characters)."}}},"SearchRequest":{"type":"object","description":"Search request","properties":{"query":{"type":"string","description":"<p>Partial search (max 256 characters)</p><p>Complementary information :</p><ul><li> case insensitive</li><li> searched among the following fields: id, name, group.path, tags, interfaces.nodeId\nproperties.key, properties.value</li><li> if there are multiple words, they are filtered with OR operator</li></ul>"},"filters":{"$ref":"#/components/schemas/SearchFilters","description":"search filters"},"sort":{"type":"array","description":"<p>List of sort by attributes (supported fields are : id, name, group.path, created, updated, lastCommunication, interfaces.status, interfaces.enabled, interfaces.lastContact, relevance, network.lora.lostMessagesRatio).</p><p>Complementary syntax to use :</p><ul><li> add '-' before field to sort in descending order</li><li> set id always at the end of sort list</li></ul>","example":["name","-created"],"items":{"type":"string"}},"bookmark":{"type":"array","description":"list of bookmarks of the last search response (must respect the sort list order). When it is using, a bookmark id must always be set even if sort list is empty or \"id\" criteria is missing.","example":["Auto-created device (lora / EE00EF0000000011)",1593700879802],"items":{}},"size":{"type":"integer","format":"int32","description":"Max number of devices per page","example":20}}},"ActivityInfo":{"type":"object","properties":{"ruleId":{"type":"string","description":"Activity rule identifier","example":"ab12"},"state":{"type":"string","description":"Activity state of the device according to the activity rules set for this device","example":"ACTIVE"}}},"DeviceInfoClient":{"type":"object","properties":{"id":{"type":"string","description":"device identifier","example":"urn:lo:nsid:sensor:1234"},"name":{"type":"string","description":"device name","example":"MyDevice"},"description":{"type":"string","description":"device description","example":"This is my device"},"group":{"$ref":"#/components/schemas/GroupInfo","description":"device group"},"tags":{"type":"array","description":"device tags","example":["door","bell"],"items":{"type":"string"},"uniqueItems":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"device properties","example":{"horn":"cucaracha"}},"interfaces":{"type":"array","description":"List of this device's interfaces (i.e. 'connectivity nodes')","items":{"$ref":"#/components/schemas/DeviceInterfaceInfo"}},"location":{"$ref":"#/components/schemas/LocationInfo","description":"device location"},"activities":{"type":"array","description":"List of activities of the device according to the activity rules set for this device","items":{"$ref":"#/components/schemas/ActivityInfo"}},"aggregatedActivityState":{"type":"string","description":"Aggregated activity state for this device in (ACTIVE, SILENT, UNKNOWN) possible values","example":"ACTIVE"},"defaultDataStreamId":{"type":"string","description":"default data streamId","example":"urn:lo:nsid:mysensor:001"},"lastCommunication":{"type":"string","format":"date-time","description":"Last communication date","example":"2019-01-01T00:00:00.000Z"},"network":{"$ref":"#/components/schemas/NetworkInfo","description":"network traffic data"},"created":{"type":"string","format":"date-time","description":"Date/time when device was first registered","example":"2019-01-01T00:00:00.000Z"},"updated":{"type":"string","format":"date-time","description":"Date/time when device status has been lastly updated","example":"2019-01-01T00:00:00.000Z"}}},"DeviceInterfaceInfo":{"type":"object","properties":{"connector":{"type":"string","description":"Interface connector","example":"mqtt"},"nodeId":{"type":"string","description":"Interface node identifier","example":"urn:lo:nsid:sensor:1234"},"enabled":{"type":"boolean","description":"Indicates whether the interface is enabled","example":true},"status":{"type":"string","description":"Interface status","example":"ONLINE"},"definition":{"description":"Base definition"},"capabilities":{"$ref":"#/components/schemas/InterfaceCapabilitiesInfo","description":"Interface capabilities"},"activity":{"description":"Interface activity"},"lastContact":{"type":"string","format":"date-time","description":"Last contact date","example":"2019-01-01T00:00:00.000Z"},"created":{"type":"string","format":"date-time","description":"Date/time of the device creation","example":"2019-01-01T00:00:00.000Z"},"updated":{"type":"string","format":"date-time","description":"Date/time of the device update","example":"2019-01-01T00:00:00.000Z"}}},"GroupInfo":{"type":"object","properties":{"id":{"type":"string","description":"group identifier","example":"ABC123"},"path":{"type":"string","description":"group path","example":"/awesome/donkey"}}},"InterfaceCapabilitiesInfo":{"type":"object","properties":{"configuration":{"$ref":"#/components/schemas/InterfaceCapabilityInfo","description":"Interface configuration capability"},"command":{"$ref":"#/components/schemas/InterfaceCapabilityInfo","description":"Interface command capability"},"resource":{"$ref":"#/components/schemas/InterfaceCapabilityInfo","description":"Interface resource capability"},"twin":{"$ref":"#/components/schemas/InterfaceCapabilityInfo","description":"Interface twin capability"}}},"InterfaceCapabilityInfo":{"type":"object","properties":{"available":{"type":"boolean"},"version":{"type":"integer","format":"int32"}}},"LocationInfo":{"type":"object","properties":{"lat":{"type":"number","format":"double","description":"Latitude value. The latitude must be between -90 and 90 ","example":45.000009},"lon":{"type":"number","format":"double","description":"Longitude value. The longitude must be between -180 and 180","example":-30.00001},"alt":{"type":"number","format":"double","description":"Altitude value. The altitude must be between -10000 and 10000","example":5.00001},"accuracy":{"type":"number","format":"double","description":"Accuracy value (in meter).","example":20.0},"provider":{"type":"string","description":"Location provider.","example":"GPS"},"lastUpdate":{"type":"string","format":"date-time","description":"Location date.","example":"2016-06-03T15:55:36.944Z"}}},"LoraInfo":{"type":"object","properties":{"lostMessagesRatio":{"type":"number","format":"float","description":"Lost messages ratio on Lora connectivity (1.0 if all messages are lost)","example":0.02}}},"NetworkInfo":{"type":"object","properties":{"lora":{"$ref":"#/components/schemas/LoraInfo","description":"Lora network traffic data"}}},"SearchResponse":{"type":"object","description":"Search response","properties":{"bookmark":{"type":"array","description":"last indexes of the search corresponding to the sort order","example":["Auto-created device (lora / EE00EF0000000011)",1593700879802],"items":{}},"devices":{"type":"array","description":"devices aggregation after applying global filters","items":{"$ref":"#/components/schemas/DeviceInfoClient"}}}},"DeviceCreateRequest":{"type":"object","description":"The device to register","properties":{"id":{"type":"string","description":"device unique identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","example":"urn:lo:nsid:sensor:2327398"},"name":{"type":"string","description":"human-readable device name. Expected string (max 255 characters)","example":"sensor #12"},"description":{"type":"string","description":"human-readable device description. Expected string (max 500 characters)","example":"MyDeviceMaker sensor #12"},"defaultDataStreamId":{"type":"string","description":"default data streamId. Expected not empty string. Following character are forbidden <code>\"'\\\"\\\\;{}() \"</code> (max 255 characters)","example":"urn:lo:nsid:sensor:2327398!measures"},"tags":{"type":"array","description":"set of tags associated with the new device. Max number of tags depends on your offer settings. Tag value max length is 32.","example":["demo","sensor"],"items":{"type":"string"},"uniqueItems":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"map of key/value string pairs detailing properties of the device. Max number of properties depends of your offer settings. A property name must not include following characters <code>$.NULL</code> and max length is 128. Invalid property names are : 'class', '_class'. Property value max length is 256.","example":{"manufacturer":"MyDeviceMaker, Inc.","hwVersion":"2.0.1.7-us_64"}},"interfaces":{"type":"array","description":"list of device network interfaces","example":[{"connector":"lora","enabled":true,"definition":{"activationType":"OTAA","connectivityOptions":{"ackUl":true,"location":false},"connectivityPlan":"orange-cs/deactivate_device","profile":"defaultProfile","devEUI":"0123456789ABCDEF","appEUI":"1234567890ABCDEF","appKey":"123456789012345678901234567890ab"}},{"connector":"sms","enabled":true,"definition":{"msisdn":"3387654321","serverPhoneNumber":"3387654321","encoding":"string"}}],"items":{"$ref":"#/components/schemas/InterfaceCreateRequest"}},"group":{"$ref":"#/components/schemas/DeviceGroup","description":"group this device belongs to. Default is 'root' group."},"staticLocation":{"$ref":"#/components/schemas/StaticLocation","description":"the static location of device"}},"required":["id"]},"DeviceGroup":{"type":"object","properties":{"id":{"type":"string","description":"group identifier. Expected string (max 6 characters)","example":"E89AE"},"path":{"type":"string","description":"group path. Authorized: letter (lowercase and uppercase), accented characters, number, space, dash, underscore and simple quote. A valid path must respect the following regular expression <code>[\\wÀ-ÖØ-öø-ÿ' -]{1,255}</code>.Expected string (max 255 characters)","example":"/france/paris"}}},"InterfaceCreateRequest":{"type":"object","description":"The device interface to add","properties":{"connector":{"type":"string","description":"Connector ID. A connector must respect the following regular expression <code>([\\w\\-]{1,128})</code> (max 128 characters)","example":"lora"},"enabled":{"type":"boolean","description":"Indicates whether the interface is enabled","example":true},"definition":{"description":"Base definition. Expected string (max 10000 characters)"}},"required":["connector","definition"]},"StaticLocation":{"type":"object","description":"the static location of device","properties":{"lat":{"type":"number","format":"double","description":"Latitude value. The latitude must be between -90 and 90 ","example":45.000009},"lon":{"type":"number","format":"double","description":"Longitude value. The longitude must be between -180 and 180","example":-30.00001},"alt":{"type":"number","format":"double","description":"Altitude value. The altitude must be between -10000 and 10000","example":5.00001}}},"ConnectorNodeLocation":{"type":"object","properties":{"lat":{"type":"number","format":"double","description":"Last geolocation latitude (GPS coordinate system)","example":10.11212,"readOnly":true},"lon":{"type":"number","format":"double","description":"Last geolocation longitude (GPS coordinate system)","example":7.44464,"readOnly":true},"alt":{"type":"number","format":"double","description":"Last geolocation altitude (meter)","example":50,"readOnly":true},"provider":{"type":"string","description":"Computing geolocation method","example":"RSSI","readOnly":true},"accuracy":{"type":"number","format":"double","description":"Last global geolocation tolerance (meter)","example":100,"readOnly":true},"lastUpdateTs":{"type":"string","format":"date-time","description":"Date/time of the last location","example":"2016-06-14T11:09:22.125Z","readOnly":true}}},"Device":{"type":"object","properties":{"id":{"type":"string","description":"Device URN"},"name":{"type":"string","description":"Human readable name","example":"Pretty moisture sensor"},"description":{"type":"string","description":"Device description","example":"Moisture sensor"},"tags":{"type":"array","description":"Device tags","example":["sensor","moisture"],"items":{"type":"string"},"uniqueItems":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"Device properties (from device provisioning)"},"group":{"$ref":"#/components/schemas/DeviceGroup","description":"Reference to a device associated group"},"config":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DeviceParameterValue"},"description":"Device configuration (last reported parameter values)","example":{"logLevel":{"type":"STRING","value":"debug"},"frequency":{"type":"INT32","value":200}}},"defaultDataStreamId":{"type":"string","description":"default data streamId","example":"urn:lo:nsid:mysensor:001"},"created":{"type":"string","format":"date-time","description":"Date/time when device was first registered"},"updated":{"type":"string","format":"date-time","description":"Date/time when device status has been lastly updated"},"activityState":{"type":"string","description":"Activity state of the device according to the activity rules set for this device","enum":["NOT_MONITORED","UNKNOWN","SILENT","ACTIVE"]},"staticLocation":{"$ref":"#/components/schemas/StaticLocation","description":"the static location of device"},"interfaces":{"type":"array","description":"List of this device's interfaces (i.e. 'connectivity nodes')","items":{"$ref":"#/components/schemas/DeviceInterface"}},"firmwares":{"type":"object","additionalProperties":{"type":"string","deprecated":true},"deprecated":true,"description":"Device firmware versions"},"resources":{"type":"object","additionalProperties":{"type":"string"},"description":"Device resource versions"}},"required":["created","id"]},"DeviceInterface":{"type":"object","description":"Full details about a device interface","properties":{"connector":{"type":"string","description":"Interface connector ID"},"nodeId":{"type":"string","description":"Interface node ID"},"deviceId":{"type":"string","description":"Device identifier (URN)"},"enabled":{"type":"boolean","description":"Indicates whether the interface is enabled"},"status":{"type":"string","description":"Interface status","enum":["REGISTERED","INITIALIZING","INITIALIZED","REACTIVATED","ONLINE","ACTIVATED","OFFLINE","SLEEPING","DEACTIVATED","CONNECTIVITY_ERROR","UNKNOWN","DELETED"],"example":"ONLINE"},"definition":{"description":"Base definition"},"lastContact":{"type":"string","format":"date-time","description":"Last contact date"},"activity":{"description":"Interface activity"},"locations":{"type":"array","description":"Last device location","items":{"$ref":"#/components/schemas/ConnectorNodeLocation"},"readOnly":true},"created":{"type":"string","description":"Date/time of the device creation","example":"2016-06-03T15:55:36.944Z","readOnly":true},"updated":{"type":"string","description":"Date/time of the device update","example":"2016-06-03T15:55:36.944Z","readOnly":true},"capabilities":{"$ref":"#/components/schemas/InterfaceCapabilities","description":"Interface capabilities"}}},"DeviceParameterValue":{"type":"object","properties":{"type":{"type":"string","description":"configuration parameter value type (INT32, UINT32, FLOAT, STRING or BINARY)","enum":["INT32","UINT32","BINARY","STRING","FLOAT","UNKNOWN"]},"value":{"description":"configuration parameter value (number for INT32/UINT32 type, string for STRING type,float for FLOAT type, base64-encoded string for BINARY type) "},"timestamp":{"type":"string","format":"date-time","description":"configuration parameter value associated date/time (ISO 8601)"}}},"InterfaceCapabilities":{"type":"object","description":"Full details about an interface capabilities","properties":{"configuration":{"$ref":"#/components/schemas/InterfaceCapability","description":"Interface configuration capability","readOnly":true},"command":{"$ref":"#/components/schemas/InterfaceCapability","description":"Interface command capability","readOnly":true},"resource":{"$ref":"#/components/schemas/InterfaceCapability","description":"Interface resource capability","readOnly":true},"twin":{"$ref":"#/components/schemas/InterfaceCapability","description":"Interface twin capability","readOnly":true}}},"InterfaceCapability":{"type":"object","properties":{"available":{"type":"boolean","description":"Indicates whether the capability is available for the interface","example":true,"readOnly":true},"version":{"type":"integer","format":"int32","description":"Capability version","example":1,"readOnly":true}}},"AbstractTwinOperationRequest":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"type":{"type":"string"},"options":{"$ref":"#/components/schemas/TwinOperationOptions","description":"Operations options"},"contextToken":{"type":"string","description":"optional operation context token.","example":"Campaign 42 operation"},"policy":{"$ref":"#/components/schemas/TwinOperationPolicy","description":"optional operation policy"}},"required":["type"]},"RequestedContentFormat":{"type":"object","properties":{"request":{"type":"string"},"response":{"type":"string"}}},"TwinOperationExecute":{"allOf":[{"$ref":"#/components/schemas/AbstractTwinOperationRequest"},{"type":"object","properties":{"type":{"type":"string","description":"EXECUTE operation: this operation is used to execute a target object attribute.","example":"EXECUTE"},"paths":{"type":"array","items":{"type":"string","description":"Path of attribute to execute. There can only be one path to execute","example":["/1/0/8"]},"uniqueItems":true}}}],"required":["paths","type"]},"TwinOperationMetadata":{"type":"object","properties":{"name":{"type":"string","description":"Name of the metadata. (see \"NOTIFICATION class attributes\" from OMA LwM2M 1.0 specification)","example":"pmin"},"value":{"type":"string","description":"Value of the metadata. If not provided the metadata will be unset.","example":"10"}},"required":["name"]},"TwinOperationOptions":{"type":"object","properties":{"lwm2m":{"$ref":"#/components/schemas/TwinOperationOptionsLwm2m"}}},"TwinOperationOptionsLwm2m":{"type":"object","properties":{"contentFormat":{"$ref":"#/components/schemas/RequestedContentFormat","description":" `content format` requested by the customer for the operation (request, response)","example":{"request":"SENML_CBOR","response":"SENML_CBOR"}}}},"TwinOperationPolicy":{"type":"object","properties":{"attempts":{"type":"integer","format":"int32","default":1,"description":"maximum number of attempts until operation successfully reached device (default 1 means no retry)","maximum":5,"minimum":1}}},"TwinOperationRead":{"allOf":[{"$ref":"#/components/schemas/AbstractTwinOperationRequest"},{"type":"object","properties":{"type":{"type":"string","description":"READ operation: this operation is used to read attribute(s) value(s) of device object(s).","example":"READ"},"paths":{"type":"array","items":{"type":"string","description":"Paths of attribute, attribute instance, array of attribute instances, object instance or all the object instances of an object to read","example":["/1/0/7","/1/0","/1","/1/0/24/4"]},"uniqueItems":true}}}],"required":["paths","type"]},"TwinOperationWrite":{"allOf":[{"$ref":"#/components/schemas/AbstractTwinOperationRequest"},{"type":"object","properties":{"type":{"type":"string","description":"WRITE operation: this operation is used to write attribute(s) value(s) on device object(s). <br>A `WRITE` operation relies on `writeMode`: `UPDATE` act like a 'patch' while `REPLACE` will override target path.","example":"WRITE"},"paths":{"type":"array","items":{"type":"string","description":"Path of attribute, attribute instance, array of attribute instances, object instance or all the object instances of an object to replace/update. There can only be one path","example":["/1/0"]},"uniqueItems":true},"writeMode":{"type":"string","description":"Write mode","enum":["UPDATE","REPLACE"],"example":"UPDATE"},"values":{"type":"array","description":"Paths and value to write","example":[{"path":"/1/0/7","value":"tutu"},{"path":"/1/0/25/2","value":"toto"}],"items":{"$ref":"#/components/schemas/TwinOperationWriteValue"},"uniqueItems":true}}}],"required":["paths","type","values","writeMode"]},"TwinOperationWriteMetadata":{"allOf":[{"$ref":"#/components/schemas/AbstractTwinOperationRequest"},{"type":"object","properties":{"type":{"type":"string","description":"WRITE METADATA operation: this operation is used to write (set, update, unset) metadata on device object(s).","example":"WRITE-METADATA"},"values":{"type":"array","description":"Path and set of metadata to write. This set must contains only one path.","example":"[ {\"path\":\"/1/0/7\", \"metadata\": [{\"name\" : \"pmin\", \"value\" : \"20\"}, {\"name\" : \"gt\", \"value\" : \"50\"}, {\"name\" : \"lt\"}]","items":{"$ref":"#/components/schemas/TwinOperationWriteMetadataValue"},"uniqueItems":true}}}],"required":["type","values"]},"TwinOperationWriteMetadataValue":{"type":"object","properties":{"path":{"type":"string","description":"Path of the object | instance on which metadata will be applied.","example":"/1/0/7"},"metadata":{"type":"array","description":"Set of metadata. Only provided metadata will be set | updated | unset.","example":[{"name":"pmin","value":"20"},{"name":"gt","value":"50"},{"name":"lt"}],"items":{"$ref":"#/components/schemas/TwinOperationMetadata"},"uniqueItems":true}},"required":["metadata","path"]},"TwinOperationWriteValue":{"type":"object","properties":{"path":{"type":"string","description":"Path of attribute, or attribute instance","example":"/1/0/3"},"value":{"type":"string","description":"value to write for \"WRITE\" operations","example":"\"tutu\""}},"required":["path","value"]},"AbstractTwinOperationResponse":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"id":{"type":"string","description":"operation unique identifier","example":"11fd797e674d4607830dfe2daaf15e4c"},"type":{"type":"string","description":"twin operation among [\"READ\", \"WRITE\", \"EXECUTE\", \"WRITE-METADATA\"]","example":"WRITE"},"contextToken":{"type":"string","description":"optional string (Tag like)"},"status":{"type":"string","description":"operation status can be [\"PENDING\", \"SENT\", \"RETRYING\", \"OK\", \"CANCELED\", \"EXPIRED\", \"FAILED\"]","enum":["PENDING","SENT","RETRYING","OK","CANCELED","EXPIRED","FAILED","UNKNOWN"],"example":"SENT"},"options":{"$ref":"#/components/schemas/TwinOperationOptions","description":"operation options","example":{"lwm2m":{"contentFormat":{"request":"SENML_CBOR","response":"SENML_CBOR"}}}},"error":{"$ref":"#/components/schemas/TwinOperationError","description":"operation error when status is FAILED","example":{"code":"OPERATION_TIMEOUT","details":"operation timeout"}},"created":{"type":"string","format":"date-time","description":"operation creation date/time","example":"2021-12-06T11:32:25.055Z"},"updated":{"type":"string","format":"date-time","description":"operation last status update date/time","example":"2021-12-06T11:32:25.055Z"},"policy":{"$ref":"#/components/schemas/TwinOperationPolicy","description":"optional operation policy"}},"required":["created","id","status","type","updated"]},"TwinOperationError":{"type":"object","properties":{"code":{"type":"string","description":"operation error code"},"details":{"type":"string","description":"operation error explanations"},"deviceCode":{"$ref":"#/components/schemas/TwinOperationErrorDeviceCode","description":"operation device error"}}},"TwinOperationErrorDeviceCode":{"type":"object","properties":{"value":{"type":"string","description":"device error code value"},"reason":{"type":"string","description":"device error code reason"}}},"TwinOperationExecuteResponse":{"allOf":[{"$ref":"#/components/schemas/AbstractTwinOperationResponse"},{"type":"object","properties":{"type":{"type":"string","default":"EXECUTE","description":"EXECUTE operation: this operation is used to execute a target object attribute."},"paths":{"type":"array","description":"paths of object","example":["/1/0/7","/1/0","/1","/1/0/25/4"],"items":{"type":"string"},"uniqueItems":true}}}],"required":["created","id","status","type","updated"]},"TwinOperationReadResponse":{"allOf":[{"$ref":"#/components/schemas/AbstractTwinOperationResponse"},{"type":"object","properties":{"type":{"type":"string","default":"READ","description":"READ operation: this operation is used to read attribute(s) value(s) of device object(s)."},"paths":{"type":"array","description":"paths of object","example":["/1/0/7","/1/0","/1","/1/0/25/4"],"items":{"type":"string"},"uniqueItems":true}}}],"required":["created","id","status","type","updated"]},"TwinOperationWriteMetadataResponse":{"allOf":[{"$ref":"#/components/schemas/AbstractTwinOperationResponse"},{"type":"object","properties":{"type":{"type":"string","default":"WRITE-METADATA","description":"WRITE METADATA operation: this operation is used to write (set, update, unset) metadata on device object(s)."},"values":{"type":"array","description":"Path and set of metadata to write","example":"[ {\"path\":\"/1/0/7\",\n\"metadata\": [\n{\"name\" : \"pmin\", \"value\" : \"20\"},\n{\"name\" : \"gt\", \"value\" : \"50\"},\n{\"name\" : \"lt\"}\n]","items":{"$ref":"#/components/schemas/TwinOperationWriteMetadataValue"},"uniqueItems":true}}}],"required":["created","id","status","type","updated","values"]},"TwinOperationWriteResponse":{"allOf":[{"$ref":"#/components/schemas/AbstractTwinOperationResponse"},{"type":"object","properties":{"type":{"type":"string","default":"WRITE","description":"WRITE operation: this operation is used to write attribute(s) value(s) on device object(s). <br>A `WRITE` operation relies on `writeMode` : `UPDATE` act like a 'patch' while `REPLACE` will override target path."},"paths":{"type":"array","description":"paths of object instance","example":["/1/0"],"items":{"type":"string"},"uniqueItems":true},"writeMode":{"type":"string","description":"Write mode","enum":["UPDATE","REPLACE"],"example":"UPDATE"},"values":{"type":"array","description":"list of values to write","example":[{"path":"/1/0/7","value":"tutu"},{"path":"/1/0/25/2","value":"toto"}],"items":{"$ref":"#/components/schemas/TwinOperationWriteValue"},"uniqueItems":true}}}],"required":["created","id","status","type","updated","writeMode"]},"TwinObservationCreateRequest":{"type":"object","description":"Twin observation to create","properties":{"paths":{"type":"array","description":"Paths of attribute, attribute instance, object instance or all the object instances of an object to observe","example":["/1","/3/0","/3442/0/110","/3442/0/1110/0"],"items":{"type":"string","maxLength":255,"minLength":0},"maxItems":100,"minItems":0,"uniqueItems":true},"name":{"type":"string","description":"User-defined name for the observation, must not be null, must contain at least one non-whitespace character and at most 255 characters","example":"myObservation","maxLength":255,"minLength":0}},"required":["name","paths"]},"DeviceErrorCode":{"type":"object","properties":{"value":{"type":"string","description":"device error code value","example":"404"},"reason":{"type":"string","description":"device error code reason","example":"NOT_FOUND"}}},"TwinObservation":{"type":"object","properties":{"id":{"type":"string","description":"Observation unique identifier","example":"62554f236bb22101c8386956"},"paths":{"type":"array","description":"Paths of attribute, attribute instance, object instance or all the object instances of an object to observe","example":["/1","/3/0","/3442/0/110","/3442/0/1110/0"],"items":{"type":"string"},"uniqueItems":true},"status":{"type":"string","description":"Status of the observation","enum":["PENDING","OBSERVING","FAILED","UNKNOWN"],"example":"FAILED"},"lastError":{"$ref":"#/components/schemas/TwinObservationError","description":"Error on last attempt. Only present if the status is 'FAILED'."},"name":{"type":"string","description":"User-defined name for the observation","example":"myObservation"},"created":{"type":"string","format":"date-time","description":"Observation creation date/time","example":"2021-12-06T11:32:25.055Z"}},"required":["created","id","name","paths","status"]},"TwinObservationError":{"type":"object","properties":{"code":{"type":"string","description":"observation error code","example":"DEVICE_ERROR"},"details":{"type":"string","description":"observation error explanations","example":"URIs were not found or are not supported"},"deviceCode":{"$ref":"#/components/schemas/DeviceErrorCode","description":"device error response code, if any"}}},"UpdateDeviceResourceRequest":{"type":"object","description":"The device resource version to register","properties":{"version":{"type":"string","description":"requested resource version. Expected string (max 255 characters)","example":"1.2.0"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"the update metadata. Max number of metadata is 100. Metadata name max length is 255. A Metadata name must not include following characters <code>$.</code>. Invalid Metadata names are : 'class', '_class'. Metadata value max length is 255. Optional metadata key '<code>secured</code>': controls the transfer protocol for firmware download. Value '<code>true</code>' generates HTTPS URL, '<code>false</code>' or absent generates HTTP URL (default). Supported by http-updater connector only.","example":{"secured":"true"}}}},"DeviceResource":{"type":"object","description":"a device resource state","properties":{"reported":{"$ref":"#/components/schemas/DeviceResourceVersionValue","description":"resource status as reported by the device"},"requested":{"$ref":"#/components/schemas/DeviceResourceVersionValue","description":"resource status as requested by the platform"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"metadata associated with this device resource. Max number of metadata is 100. Metadata name max length is 255. A Metadata name must not include following characters <code>$.</code>. Invalid Metadata names are : 'class', '_class'. Metadata value max length is 255. Optional metadata key '<code>secured</code>': controls the transfer protocol for firmware download. Value '<code>true</code>' generates HTTPS URL, '<code>false</code>' or absent generates HTTP URL (default). Supported by http-updater connector only.","example":{"secured":"true"}}}},"DeviceResourceVersionValue":{"type":"object","description":"a resource version","properties":{"version":{"type":"string","description":"resource version. Expected string (max 255 characters)","example":"v2"},"timestamp":{"type":"string","format":"date-time","description":"resource version associated date/time","example":"2020-05-19T10:30:58Z"}}},"UpdateDeviceResourceWithConnectorRequest":{"type":"object","description":"The device resource version to register","properties":{"requestedVersion":{"type":"string","description":"requested resource version. Expected string (max 255 characters)","example":"1.2.0"},"connector":{"type":"string","description":"updater connector. ","example":"http-updater"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"the update metadata. Max number of metadata is 100. Metadata name max length is 255. A Metadata name must not include following characters <code>$.</code>. Invalid Metadata names are : 'class', '_class'. Metadata value max length is 255. Optional metadata key '<code>secured</code>': controls the transfer protocol for firmware download. Value '<code>true</code>' generates HTTPS URL, '<code>false</code>' or absent generates HTTP URL (default). Supported by http-updater connector only.","example":{"secured":"true"}}}},"DeviceResourceUpdate":{"type":"object","properties":{"id":{"type":"string","description":"Id of the resource update","example":"5f3bf1ecb23f3277805478a7"},"resourceId":{"type":"string","description":"Id of the resource","example":"MyFW"},"created":{"type":"string","format":"date-time","description":"Creation date of the update operation","example":"2020-08-18T15:21:16.128Z"},"updated":{"type":"string","format":"date-time","description":"Last update date of the update operation","example":"2020-08-18T15:25:30.517Z"},"initialVersion":{"type":"string","description":"Initial resource version","example":"1.0"},"requestedVersion":{"type":"string","description":"Requested resource version","example":"1.1"},"connector":{"type":"string","description":"updater connector","example":"http-updater"},"status":{"type":"string","description":"Status of the update operation","example":"DONE"},"errorOrigin":{"type":"string","description":"Error origin (DEVICE: Error comes from the device. INTERNAL: Error comes from the platform)","example":"DEVICE"},"errorCode":{"type":"string","description":"Error code from the platform","example":"OK"},"deviceErrorCode":{"type":"string","description":"Error code sent by the device","example":"KO"},"errorDetails":{"type":"string","description":"Error details sent by the device","example":"version not supported by device"},"progress":{"type":"number","format":"double","description":"Progress of the download in percent","example":100.0},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"the update metadata. Max number of metadata is 100. Metadata name max length is 255. A Metadata name must not include following characters <code>$.</code>. Invalid Metadata names are : 'class', '_class'. Metadata value max length is 255. Optional metadata key '<code>secured</code>': controls the transfer protocol for firmware download. Value '<code>true</code>' generates HTTPS URL, '<code>false</code>' or absent generates HTTP URL (default). Supported by http-updater connector only.","example":{"secured":"true"}}}},"DebugModeStartRequest":{"type":"object","properties":{"ttlHours":{"type":"integer","format":"int32","description":"Define how long the debug mode will be activated. Must be between 1 hour and 360 hours (15 days).","maximum":360,"minimum":1}},"required":["ttlHours"]},"DebugModeInfo":{"type":"object","properties":{"ttlHours":{"type":"integer","format":"int32"},"startTime":{"type":"string","format":"date-time"},"endTime":{"type":"string","format":"date-time"}}},"DeviceParametersSetRequest":{"type":"object","description":"a map of requested configuration parameter descriptions (with type: 'INT32', 'UINT32', 'STRING', 'FLOAT', or 'BINARY')","properties":{"parameters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/NewDeviceParameterValue"},"description":"Device configuration update. Max number of parameters is 100. Parameter name max length is 128. Parameter value must be valid according to the type and max length is 2000."}}},"NewDeviceParameterValue":{"type":"object","properties":{"type":{"type":"string","description":"parameter value type (INT32, UINT32, FLOAT, STRING or BINARY)","enum":["INT32","UINT32","BINARY","STRING","FLOAT","UNKNOWN"]},"value":{"description":"configuration parameter value (number for INT32/UINT32 type, string for STRING type,float for FLOAT type, base64-encoded string for BINARY type) "}}},"CommandPolicy":{"type":"object","properties":{"expirationInSeconds":{"type":"integer","format":"int64","description":"Expiration in seconds since command creation date. Min value is 5 seconds. For default, and max value, cf. developer guide.","example":604800,"maximum":9223372036854775,"minimum":5},"ackTimeoutInSeconds":{"type":"integer","format":"int64","description":"Ack timeout in seconds since command was sent. Default is no ack timeout. Min value is 10 seconds","example":120},"ackMode":{"type":"string","description":"Ack mode for this command. NONE (or AUTO) ack means that the command is automatically acknowledged (set to 'PROCESSED' status) as the command is sent to the device. NETWORK ack requires a reception acknowledge. APPLICATIVE (or DEVICE) ack requires a command response from the device to change its status. Default ack mode is connectivity dependant.","enum":["NONE","NETWORK","APPLICATIVE"],"example":"APPLICATIVE"},"attempts":{"type":"integer","format":"int32","description":"Number of attempts in case of ERROR. Default to 1","example":3,"maximum":5,"minimum":1}}},"CommandRequest":{"type":"object","properties":{"connector":{"type":"string","description":"connector/protocol to use to forward the command","enum":["mqtt","lora","sms","x-connector"],"example":"mqtt"},"value":{"description":"command value (protocol/connector-dependant). The length is limited. Examples:\n- For mqtt: \"{ \"req\": \"unlock\", \"arg\": { \"delay\": 1000 }}\" in which \"req\" is a supported command and \"arg\" the appropriate arguments\n- For lora: \"{ \"data\": \"ab12cd34\", \"port\": \"42\" }\" in which \"data\" is the downlink content (in hexadecimal) and \"port\" the target port, between 1 and 223.\n- For sms (text): \"{ \"payload\": \"Hello Live Objects!\", \"type\": \"TEXT\" }\" where \"payload\" is the text message to send\n- For sms (binary):  \"{ \"payload\": \"756e6c6f636b\", \"type\": \"BINARY\"}\" where \"payload\" is the binary message to send\n- For x-connector: \"{ \"req\": \"turn on\", \"arg\": { \"device\": \"6\", \"delay\": \"300\" }\" in which \"req\" is a supported command and \"arg\" the appropriate arguments\n"}},"required":["connector","value"]},"CreationCommandRequest":{"type":"object","description":"new command request","properties":{"request":{"$ref":"#/components/schemas/CommandRequest","description":"command request"},"policy":{"$ref":"#/components/schemas/CommandPolicy","description":"Delivery policy for this command"}},"required":["request"]},"Command":{"type":"object","properties":{"id":{"type":"string","description":"command unique identifier","example":"ae49129f-9ce4-4782-82c4c6a2"},"targetDeviceId":{"type":"string","description":"targeted device identifier (URN)","example":"urn:lo:nsid:sensor:2327398"},"request":{"$ref":"#/components/schemas/CommandRequest","description":"command request"},"response":{"$ref":"#/components/schemas/CommandResponse","description":"command response","example":{"value":{"success":true}}},"status":{"type":"string","description":"command current status","enum":["PENDING","PROCESSING","PROCESSED","CANCELED","ERROR","RETRYING","EXPIRED","UNKNOWN"],"example":"PROCESSING"},"deliveryStatus":{"type":"string","description":"command current delivery status","enum":["SENDING","SENT","DELIVERED","REPLIED"],"example":"SENT"},"errorCode":{"type":"string","description":"error code in case of ERROR status","example":"INVALID_COMMAND_REQUEST"},"policy":{"$ref":"#/components/schemas/CommandPolicy","description":"command policy"},"history":{"type":"array","description":"command history","example":[{"timestamp":"2017-12-06T11:38:22.481Z","status":"PROCESSING","deliveryStatus":"SENT","nodeId":"2327398"}],"items":{"$ref":"#/components/schemas/CommandHistory"}},"created":{"type":"string","format":"date-time","description":"command creation date/time","example":"2017-12-06T11:32:25.055Z"},"updated":{"type":"string","format":"date-time","description":"command last status update date/time","example":"2017-12-06T11:32:25.055Z"}}},"CommandHistory":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"timestamp of the entry","example":"2017-12-06T11:38:22.481Z"},"status":{"type":"string","description":"command status at the timestamp","enum":["PENDING","PROCESSING","PROCESSED","CANCELED","ERROR","RETRYING","EXPIRED","UNKNOWN"],"example":"PROCESSING"},"deliveryStatus":{"type":"string","description":"command delivery status at the timestamp","enum":["SENDING","SENT","DELIVERED","REPLIED"],"example":"SENT"},"errorCode":{"type":"string","description":"error code in case of ERROR status","example":"INVALID_COMMAND_REQUEST"},"nodeId":{"type":"string","description":"node id"}}},"CommandResponse":{"type":"object","properties":{"value":{"description":"command response value (protocol/connector-dependant)","example":{"success":true}}},"required":["value"]},"DataStoredWeb":{"type":"object","description":"data stored from the dataStream","properties":{"streamId":{"type":"string","description":"streamId of the data","example":"urn:tenantName:FFFFFFFFFFFFFFFF!mystream"},"timestamp":{"type":"string","description":"ISO 8601 date time, timestamp of the value","example":"2016-08-24T10:32:52.598Z"},"location":{"$ref":"#/components/schemas/Location"},"model":{"type":"string","description":"Model of the injected data. Data with the same model have coherent types in each value fields.","example":"MyModelSettingName"},"value":{"description":"JsonObject","example":{"hexaFlag001":"2F00","temp":22.0,"pressure":36575.0}},"tags":{"type":"array","description":"Tags of the data. Can be used to ease up advanced search through all streams and models","example":["Motor","Engine"],"items":{"type":"string"}},"extra":{"type":"object","additionalProperties":{"type":"string"},"description":"Extra info of the data: extra information enriched on the collected data (for example from the device inventory) that can be used for cross model or stream queries","example":{"country":"france","city":"lyon","owner":"john.doe@company.com"}},"metadata":{"description":"Metadata of the stored value : may include user metadata (source) as well as additional information (protocol, server, user...)","example":{"source":"urn:tenantName:FFFFFFFFFFFFFFFF!mystream"}},"id":{"type":"string","description":"System id of the data. Can be use as bookmark to paginate results."},"created":{"type":"string","description":"ISO 8601 date time, when the data has been stored in the system","example":"2016-08-25T00:00:00.008Z"}},"required":["created","id","timestamp","value"]},"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"]},"BootstrapMasterEntryDefinition":{"type":"object","properties":{"bootstrapConfigId":{"type":"string","description":"The identifier of the bootstrap config to use (must be defined for the Bootstrap to work).","example":"63c17e68f98ac770eac303fb"}}},"BootstrapMasterEntryRequest":{"type":"object","description":"Bootstrap master entry creation request","properties":{"name":{"type":"string","description":"User-defined name of the bootstrap master entry","example":"My bootstrap master entry","maxLength":255,"minLength":0},"security":{"$ref":"#/components/schemas/BootstrapMasterEntryRequestSecurityInfo","description":"Security info of the bootstrap master entry"},"definition":{"$ref":"#/components/schemas/BootstrapMasterEntryDefinition"}},"required":["name","security"]},"BootstrapMasterEntryRequestSecurityInfo":{"type":"object","properties":{"mode":{"type":"string","description":"The security mode used to authenticate to the LwM2M Bootstrap server","enum":["PSK"],"example":"PSK"}},"required":["mode"]},"BootstrapMasterEntry":{"type":"object","properties":{"id":{"type":"string","description":"The id of the the bootstrap master entry","example":"mQeAYP"},"name":{"type":"string","description":"User-defined name of the bootstrap master entry","example":"My bootstrap master entry"},"security":{"$ref":"#/components/schemas/BootstrapMasterEntrySecurityInfo","description":"Security info of the bootstrap master entry"},"definition":{"$ref":"#/components/schemas/BootstrapMasterEntryDefinition","description":"The bootstrap master entry parameters"},"activity":{"$ref":"#/components/schemas/BootstrapMasterEntryActivity","description":"Information about past Bootstrap sessions"},"created":{"type":"string","format":"date-time","description":"Date on which the bootstrap master entry was created","example":"2022-10-21T10:30:58Z"},"updated":{"type":"string","format":"date-time","description":"Date on which the bootstrap master entry was last updated","example":"2022-10-25T17:45:02Z"}},"required":["created","definition","id","name","security","updated"]},"BootstrapMasterEntryActivity":{"type":"object","properties":{"bootstrapRequestCount":{"type":"integer","format":"int32","description":"The number of times a Bootstrap sequence has been initiated (a Bootstrap-Request has been received by the LwM2M server) using this master entry.","example":1},"lastBootstrapRequestDate":{"type":"string","format":"date-time","description":"The last time a Bootstrap sequence was initiated (a Bootstrap-Request has been received by the LwM2M server) using this master entry.","example":"2022-10-25T18:47:06Z"},"bootstrapFinishCount":{"type":"integer","format":"int32","description":"The number of times a Bootstrap sequence has been successfully completed (a Bootstrap-Finish has been sent by the LwM2M server) using this master entry.","example":1},"lastBootstrapFinishDate":{"type":"string","format":"date-time","description":"The last time a Bootstrap sequence has been successfully completed (a Bootstrap-Finish has been sent by the LwM2M server) using this master entry.","example":"2022-10-25T18:49:10Z"}},"required":["bootstrapFinishCount","bootstrapRequestCount"]},"BootstrapMasterEntryPreSharedKeyInfo":{"type":"object","properties":{"secret":{"type":"string","description":"The PSK master secret. Encoded in hexadecimal.","example":"0123456789ABCDEF0123456789ABCDEF"}},"required":["secret"]},"BootstrapMasterEntrySecurityInfo":{"type":"object","properties":{"mode":{"type":"string","description":"The security mode used to authenticate to the LwM2M Bootstrap server","enum":["PSK"],"example":"PSK"},"pskInfo":{"$ref":"#/components/schemas/BootstrapMasterEntryPreSharedKeyInfo","description":"The master Pre-Shared Key (PSK) information"}},"required":["mode"]},"BootstrapConfigOperationsInfo":{"type":"object","properties":{"writeOperationsInfo":{"type":"array","items":{"$ref":"#/components/schemas/BootstrapConfigWriteOperationInfo"}}}},"BootstrapConfigParams":{"type":"object","properties":{"bootstrapConfigId":{"type":"string","description":"The identifier of the bootstrap config to use for the endpoint (must be defined for the Bootstrap to work).","example":"63c17e68f98ac770eac303fb"},"runServers":{"type":"array","description":"The parameters for the runSevers defined in the BootstrapConfig.","items":{"$ref":"#/components/schemas/RunServerConfigParams"},"maxItems":1,"minItems":0}}},"BootstrapConfigWriteOperationInfo":{"type":"object","properties":{"path":{"type":"string"}}},"BootstrapEntry":{"type":"object","description":"Bootstrap entry to create","properties":{"endpointName":{"type":"string","description":"The endpoint client name","example":"urn:imei:123456789012345","pattern":"^[\\w\\-_:]{1,269}"},"security":{"$ref":"#/components/schemas/BootstrapSecurityInfo","description":"The security information to authenticate to the LwM2M Bootstrap server"},"masterEntry":{"$ref":"#/components/schemas/MasterEntryReference","description":"The link to the master entry if the entry was automatically create from a master entry"},"definition":{"$ref":"#/components/schemas/BootstrapConfigParams","description":"The BootstrapConfig parameters for the endpoint (must be defined for the Bootstrap to work)"},"activity":{"$ref":"#/components/schemas/BootstrapState","description":"Information about past Bootstrap sessions"},"created":{"type":"string","format":"date-time","description":"Date on which the BootstrapEntry was created","example":"2022-10-21T10:30:58Z"},"updated":{"type":"string","format":"date-time","description":"Date on which the BootstrapEntry was last updated","example":"2022-10-25T17:45:02Z"}},"required":["endpointName","security"]},"BootstrapState":{"type":"object","properties":{"status":{"type":"string","description":"Bootstrap Status","enum":["NEVER_REQUESTED","REQUESTED","FINISHED","FAILED"],"example":"FINISHED"},"endpointBootstrapConfig":{"$ref":"#/components/schemas/EndpointBootstrapConfig","description":"The last Bootstrap configuration that was sent to the LwM2M client"},"bootstrapRequestCount":{"type":"integer","format":"int32","description":"The number of times a Bootstrap sequence has been initiated (a Bootstrap-Request has been received by the LwM2M server).","example":1},"lastBootstrapRequestDate":{"type":"string","format":"date-time","description":"The last time a Bootstrap sequence was initiated (a Bootstrap-Request has been received by the LwM2M server).","example":"2022-10-25T18:47:06Z"},"bootstrapFinishCount":{"type":"integer","format":"int32","description":"The number of times a Bootstrap sequence has been successfully completed (a Bootstrap-Finish has been sent by the LwM2M server).","example":1},"lastBootstrapFinishDate":{"type":"string","format":"date-time","description":"The last time a Bootstrap sequence has been successfully completed (a Bootstrap-Finish has been sent by the LwM2M server).","example":"2022-10-25T18:49:10Z"}},"required":["bootstrapFinishCount","bootstrapRequestCount","status"]},"EndpointBootstrapConfig":{"type":"object","properties":{"runServers":{"type":"array","description":"The list of run servers configurations","items":{"$ref":"#/components/schemas/EndpointRunServerConfig"}},"additionalOperationsInfo":{"$ref":"#/components/schemas/BootstrapConfigOperationsInfo"}}},"EndpointRunServerConfig":{"type":"object","properties":{"security":{"$ref":"#/components/schemas/EndpointSecurityObjectConfig","description":"The configuration for the `LWM2M Security` object (ObjectID=0)"},"server":{"$ref":"#/components/schemas/EndpointServerObjectConfig","description":"The configuration for the `LWM2M Server` object (ObjectID=1)"}}},"EndpointSecurityObjectConfig":{"type":"object","properties":{"lwm2mServerUri":{"type":"string","description":"Uniquely identifies the LwM2M Server or LwM2M Bootstrap-Server.","example":"coaps://myserver:5684"},"bootstrapServer":{"type":"boolean","description":"Determines if the current instance concerns a LwM2M Bootstrap-Server (true) or a standard LwM2M Server (false)."},"securityMode":{"type":"string","description":"Determines what credentials are being used by the LwM2M Client and the LwM2M Server. Must be set if and only if useLiveObjects is false. Allowed values are : 0 (PSK), 1 (RPK), 2 (CERTIFICATE), 3 (NO_SEC), 4 (CERTIFICATE_WITH_EST).","example":"0"},"publicKeyOrIdentity":{"type":"string","description":"The LwM2M Client's certificate, public key (RPK mode) or PSK Identity (PSK mode).","example":"urn:imei:123456789012345"},"serverPublicKey":{"type":"string","description":"Stores the LwM2M Server's, respectively LwM2M Bootstrap-Server's, certificate, public key (RPK mode) or trust anchor.The Certificate Mode Resource determines the content of this resource.","example":"0123456789ABCDEF"},"secretKey":{"type":"string","description":"The secret key (PSK mode) or private key (RPK or certificate mode).","example":"0123456789ABCDEF0123456789ABCDEF"},"smsSecurityMode":{"type":"integer","format":"int32","description":"Determines which SMS security mode is used: \n0: Reserved for future use\n1: DTLS mode (Device terminated) PSK mode assumed\n2: Secure Packet Structure mode (Smartcard terminated)\n3: NoSec mode\n4: Reserved mode (DTLS mode with multiplexing Security Association support)\n5-203 : Reserved for future use\n204-255: Proprietary modes","example":1},"lwm2mServerSmsNumber":{"type":"string","description":"MSISDN used by the LwM2M Client to send messages to the LwM2M Server via the SMS binding.","example":"1234"},"shortServerId":{"type":"integer","format":"int32","description":"This identifier is used only as a link to associate the server/security object instance."},"clientHoldOffTime":{"type":"integer","format":"int32","description":"The number of seconds to wait before initiating a Client Initiated Bootstrap once the LwM2M Client has determined it should initiate this bootstrap mode","example":30},"bootstrapServerAccountTimeout":{"type":"integer","format":"int32","description":"The LwM2M Client MUST purge the LwM2M Bootstrap-Server Account after the timeout value given by this resource","example":20},"matchingType":{"type":"string","description":"The Matching Type Resource specifies how the certificate or raw public key in in the Server Public Key is presented. Four values are currently defined:\n0: Exact match. This is the default value and also corresponds to the functionality of LwM2M v1.0. Hence, if this resource is not present then the content of the Server Public Key Resource corresponds to this value.\n1: SHA-256 hash [RFC6234]\n2: SHA-384 hash [RFC6234]\n3: SHA-512 hash [RFC6234]","example":"0"},"sni":{"type":"string","description":"This resource holds the value of the Server Name Indication (SNI) value to be used during the TLS handshake.When this resource is present then the LwM2M Server URI acts as the address of the service while the SNI value is used formatching a presented certificate, or PSK identity.","example":"myserver"},"certificateUsage":{"type":"string","description":"The Certificate Usage Resource specifies the semantic of the certificate or \nraw public key stored in the Server Public Key Resource, which is used to match \nthe certificate presented in the TLS/DTLS handshake. The currently defined values are \n0 for \"CA constraint\", 1 for \"service certificate constraint\", 2 for \"trust anchor \nassertion\", and 3 for \"domain-issued certificate\". When this resource is absent, \nvalue (3) for domain issued certificate mode is assumed. More details about the \nsemantic of each value can be found in the security consideration section of the \nLwM2M specification.","example":"0"},"dtlsTlsCiphersuite":{"type":"array","description":"When this resource is present it instructs the TLS/DTLS client to propose the indicated ciphersuite(s) in the ClientHello of the handshake. A ciphersuite is indicated as a 32-bit integer value. The IANA TLS ciphersuite registry is maintained at https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml. As an example, the TLS_PSK_WITH_AES_128_CCM_8 ciphersuite is represented with the following string \"0xC0,0xA8\". To form an integer value the two values are concatenated. In this example, the value is 0xc0a8 or 49320.","example":[49320],"items":{"type":"integer","format":"int64"}}},"required":["shortServerId"]},"EndpointServerObjectConfig":{"type":"object","properties":{"shortServerId":{"type":"integer","format":"int32","description":"This identifier is used only as a link to associate the server/security object instance.","example":1},"lifetime":{"type":"integer","format":"int32","description":"Specify the lifetime of the registration in seconds","example":300},"defaultMinimumPeriod":{"type":"integer","format":"int32","description":"The default value the LwM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation","example":200},"defaultMaximumPeriod":{"type":"integer","format":"int32","description":"The default value the LwM2M Client should use for the Maximum Period of an Observation in the absence of this parameter being included in an Observation","example":20},"disableTimeout":{"type":"integer","format":"int32","description":"A period to disable the Server. After this period, the LwM2M Client MUST perform registration process to the Server","example":0},"notificationStoringWhenDisabledOrOffline":{"type":"boolean","description":"If true, the LwM2M Client stores 'Notify' operations to the LwM2M Server while the LwM2M Server account is disabled or the LwM2M Client is offline. After the LwM2M Server account is enabled or the LwM2M Client is online, the LwM2M Client reports the stored 'Notify' operations to the Server. If false, the LwM2M Client discards all the 'Notify' operations or temporarily disables the Observe function while the LwM2M Server is disabled or the LwM2M Client is offline","example":false},"binding":{"type":"string","description":"This Resource defines the transport binding configured for the LwM2M Client. If the LwM2M Client supports the binding specified in this Resource, the LwM2M Client MUST use that transport for the Current Binding Mode. Allowed BindingModes are U, T, S, N (and Q restricted to LwM2M 1.0)","example":"U"},"apnLink":{"type":"integer","format":"int32","description":"If this resource is defined, it provides a link to the APN connection profile Object Instance (OMNA registered Object ID:11) to be usedto communicate with this server. The instance id must be provided.","example":0,"minimum":0},"registrationPriorityOrder":{"type":"integer","description":"The LwM2M Client sequences the LwM2M Server registrations in increasing order of this value. If this value is not defined,registration attempts to this server are not impacted by other server registrations. Must be 64-bit unsigned integer.","example":0},"initialRegistrationDelayTimer":{"type":"integer","description":"The delay before registration is attempted for this LwM2M Server based upon the completion of registration of the previous LwM2M Server in the registration order. This is only applied until the first successful registration after a successful bootstrapping sequence. Must be 64-bit unsigned integer.","example":0},"registrationFailureBlock":{"type":"boolean","description":"When set to true and registration to this LwM2M server fails, the LwM2M Client blocks registration to other servers in the order.When set to false, the LwM2M Client proceeds with registration to the next server in the order.","example":true},"bootstrapOnRegistrationFailure":{"type":"boolean","description":"If set to true, this indicates that the LwM2M Client should re-bootstrap when either registration is explicitly rejected by the LwM2M Server or registration is considered as failing as dictated by the other resource settings. If set to false, the LwM2M Client will continue with the registration attempts as dictated by the other resource settings.","example":true},"communicationRetryCount":{"type":"integer","description":"The number of successive communication attempts before which a communication sequence is considered as failed. Must be 64-bit unsigned integer.","example":0},"communicationRetryTimer":{"type":"integer","description":"The delay between successive communication attempts in a communication sequence. This value is multiplied by two to the power of the communication retry attempt minus one (2**(retry attempt-1)) to create an exponential back-off. Must be 64-bit unsigned integer.","example":0},"communicationSequenceDelayTimer":{"type":"integer","description":"The delay between successive communication sequences. A communication sequence is defined as the exhaustion of the Communication Retry Count and Communication Retry Timer values. A communication sequence can be applied to server registrations or bootstrapping attempts. MAX_VALUE means do not perform another communication sequence. Must be 64-bit unsigned integer.","example":0},"communicationSequenceRetryCount":{"type":"integer","description":"The number of successive communication sequences before which a registration attempt is considered as failed. Must be 64-bit unsigned integer.","example":3},"trigger":{"type":"boolean","description":"Using the Trigger Resource a LwM2M Client can indicate whether it is reachable over SMS (value set to 'true') or not (value set to 'false')","example":true},"preferredTransport":{"type":"string","description":"Only a single transport binding SHALL be present. When the LwM2M client supports multiple transports, it MAY use this transport to initiate a connection. This resource can also be used to switch between multiple transports e.g. a non-IP device can switch to UDP transport to perform firmware updates.","enum":["U","T","S","N","Q"],"example":"U"},"muteSend":{"type":"boolean","description":"If true or the Resource is not present, the LwM2M Client Send command capability is de-activated. \nIf false, the LwM2M Client Send Command capability is activated."}},"required":["binding","lifetime","shortServerId"]},"MasterEntryReference":{"type":"object","properties":{"id":{"type":"string","description":"The id of the linked master entry"}}},"BootstrapEntrySearchRequest":{"type":"object","properties":{"endpointNames":{"type":"array","description":"List of entries' endpointNames to filter on.","example":"urn:lo:nsid:lwm2m:sensor12Stream","items":{"type":"string"},"maxItems":100,"minItems":0},"bootstrapConfigIds":{"type":"array","description":"Ids of bootstrap configuration to filter on. Empty string \"\" filters on entries without config.","example":"63c18eb501e3fb673233ba1b","items":{"type":"string"},"maxItems":100,"minItems":0}}},"BootstrapEntryCountRequest":{"type":"object","properties":{"endpointNames":{"type":"array","description":"List of entries' endpointNames to filter on.","example":"urn:lo:nsid:lwm2m:sensor12Stream","items":{"type":"string"},"maxItems":100,"minItems":0},"bootstrapConfigIds":{"type":"array","description":"Ids of bootstrap configuration to filter on. Empty string \"\" filters on entries without config.","example":"63c18eb501e3fb673233ba1b","items":{"type":"string"},"maxItems":100,"minItems":0}}},"BootstrapEntryCountResult":{"type":"object","properties":{"filtered":{"type":"integer","format":"int64","description":"number of entries matching the search request"},"total":{"type":"integer","format":"int64","description":"total number of entries in your account"}}},"UserCreationCustomerDefinition":{"type":"object","description":"body of user creation","properties":{"login":{"type":"string","description":"the user login. If no external identity provider is used, LO identity is used and login must respect the following regular expression <code>[a-zA-Z0-9_-]{3,254}</code> or must be a valid email","example":"MyLoginName"},"email":{"type":"string","description":"the user email. Expected a valid email (max 254 characters)","example":"me.name@mycompagny.mycom"},"roles":{"type":"array","description":"list of user associated roles. Basic roles are \"USER_R\", \"USER_W\", \"API_KEY_R\", \"API_KEY_W\" or any role string supplied at tenant account creation time. Expected array of role names (max all roles, role value max 255 characters). Assigned roles must be included in the roles of the authenticating API key or token.","example":["USER_R","APIKEY_R"],"items":{"type":"string"},"uniqueItems":true},"language":{"type":"string","description":"user language. Expected language ISO 639-1 (example: \"en\", \"fr\", \"sk\", \"ro\", \"es\") (case insensitive, max 2 characters)"}},"required":["email","roles"]},"ExternalIdentity":{"type":"object","description":"user's external identity","properties":{"provider":{"type":"string","description":"the external identity provider. Expected string (max 255 characters)","example":"SIU"},"id":{"type":"string","description":"the external identity identifier. Expected string (max 255 characters)","example":"44b738a0-b280-11e7-abc4-cec278b6b50a"},"login":{"type":"string","description":"the external identity login. Expected string (max 255 characters)","example":"bagginsf"}},"required":["provider"]},"User":{"type":"object","description":"body of user data","properties":{"id":{"type":"string","description":"identifier of user","example":"57FFFFFFFFFFFFFFFFFFFFFF"},"login":{"type":"string","description":"user login","example":"MyLoginName"},"externalIdentity":{"$ref":"#/components/schemas/ExternalIdentity"},"email":{"type":"string","description":"user email","example":"me.name@mycompagny.mycom"},"tenantId":{"type":"string","description":"identifier of tenant account this user will belong to","example":"51FFFFFFFFFFFFFFFFFFFFFF"},"roles":{"type":"array","description":"list of user associated roles.","example":["USER_R","APIKEY_R"],"items":{"type":"string"},"uniqueItems":true},"state":{"type":"string","description":"user state : disabled, enabled or suspended","example":"enabled"},"lastAuthentication":{"type":"integer","format":"int64","description":"user last authentication timestamp in ms","example":1475224200000},"lastResetPassword":{"type":"integer","format":"int64","description":"user last password renewal operation timestamp in ms","example":1475224200000},"passwordExpiration":{"type":"integer","format":"int64","description":"user password expiration timestamp in ms","example":1475224200000},"language":{"type":"string","description":"the user language, in ISO 639-1 format","example":"en"},"portalData":{"description":"user portal data"},"mainUser":{"type":"boolean","description":"user is the tenant's main user"}},"required":["email","id","login","roles","state","tenantId"]},"UpdateUserPasswordInfo":{"type":"object","description":"body of user update password","properties":{"oldPassword":{"type":"string","description":"old password string","example":"MyCurrentPWD"},"newPassword":{"type":"string","description":"new password string","example":"MyNewPWD"},"captcha":{"type":"string","description":"security captcha got from user"},"captchaToken":{"type":"string","description":"captcha token, that will be checked for authorizing the update"},"tokenId":{"type":"string","description":"token identifier"}},"required":["captcha","captchaToken","newPassword","oldPassword","tokenId"]},"UserUpdateCustomerDefinition":{"type":"object","description":"body of user update","properties":{"login":{"type":"string","description":"the user login. If no external identity provider is used, LO identity is used and login must respect the following regular expression <code>[a-zA-Z0-9_-]{3,254}</code> or must be a valid email (deprecated, please use user profiles endpoints instead)","example":"MyLoginName"},"email":{"type":"string","description":"user email. Expected a valid email (max 254 characters) (deprecated, please use user profiles endpoints instead)","example":"me.name@mycompagny.mycom"},"roles":{"type":"array","description":"list of user associated roles. Basic roles are \"USER_R\", \"USER_W\", \"API_KEY_R\", \"API_KEY_W\" or any role string supplied at tenant account creation time. Expected array of role names (max all roles, role value max 255 characters). Assigned roles must be included in the roles of the authenticating API key or token.","example":["USER_R","APIKEY_R"],"items":{"type":"string"},"uniqueItems":true},"state":{"type":"string","description":"user state : disabled, enabled or suspended","example":"enabled"},"language":{"type":"string","description":"user language. Expected language ISO 639-1 (example: \"en\", \"fr\", \"sk\", \"ro\", \"es\") (case insensitive, max 2 characters) (deprecated, please use user profiles endpoints instead)","example":"EN"},"mainUser":{"type":"boolean","description":"Set the user as main user. Expected boolean (true/false)","example":true}}},"DiscoverActivationDefinition":{"type":"object","description":"Trial activation definition","properties":{"password":{"type":"string","description":"Main user's password","example":"MynewPWD"},"tokenId":{"type":"string","description":"Token provided by email"},"company":{"type":"string","description":"Main user's company"},"login":{"type":"string","description":"Main user's email"}},"required":["login","password","tokenId"]},"UpdateEmailValidationInfo":{"type":"object","description":"body of update User Email","properties":{"captcha":{"type":"string","description":"User-provided captcha value"},"captchaToken":{"type":"string","description":"Captcha token"},"tokenId":{"type":"string","description":"Token provided by email"}},"required":["captcha","captchaToken","tokenId"]},"FifoCreateRequest":{"type":"object","description":"body for create a new fifo","properties":{"name":{"type":"string","description":"Topic name of the FIFO. Fifo name must respect the following regular expression <code>[A-Za-z\\d\\-_~]+</code> (max 255 characters)","example":"MyFIFOName"},"maxLengthBytes":{"type":"integer","format":"int64","description":"Deprecated, the value is ignored. There is no limit on the number of messages nor on the total size of messages that can be stored in a FIFO.","example":524288},"messageTtl":{"type":"integer","format":"int32","description":"Deprecated, the value is ignored. The TTL is fixed and depends on your offer. You can set the TTL of message to 0 by setting noRetention=true on the corresponding actionPolicy fifoPublish action.","example":604800}},"required":["name"]},"UpdatePasswordValidationInfo":{"type":"object","description":"body of user update password with token","properties":{"captcha":{"type":"string","description":"User-provided captcha value"},"captchaToken":{"type":"string","description":"Captcha token"},"tokenId":{"type":"string","description":"Token provided by email"},"password":{"type":"string","description":"new user's password","example":"MyP@sswr0d"}},"required":["captcha","captchaToken","password","tokenId"]},"AddResourceRequest":{"type":"object","description":"body of add resource","properties":{"resourceId":{"type":"string","description":"the resource's id. Expected string (max 255 characters)","example":"MyResource001"},"label":{"type":"string","description":"the resource's label. Expected string (max 255 characters)","example":"My resource Label"},"description":{"type":"string","description":"the resource's description. Expected string (max 255 characters)","example":"It the last provided resource"},"connector":{"type":"string","description":"the resource's connector. A connector must respect the following regular expression <code>([\\w\\-]{1,128})</code> (max 128 characters)"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"the resource metadata. Max number of metadata is 100. Metadata name max length is 255. A Metadata name must not include following characters <code>$.</code>. Invalid Metadata names are : 'class', '_class'. Metadata value max length is 255. Optional metadata key '<code>secured</code>': controls the transfer protocol for firmware download. Value '<code>true</code>' generates HTTPS URL, '<code>false</code>' or absent generates HTTP URL (default). Supported by http-updater connector only.","example":{"secured":"true"}}},"required":["resourceId"]},"AddResourceVersionRequest":{"type":"object","description":"body of add resource version","properties":{"file":{"type":"string","description":"the version's Base64-encoded binary. File max size is 10MB"},"checksum":{"type":"string","description":"The Base64-encoded MD5 checksum of the version's raw file (non Base64-encoded)Expected string (max 255 characters)"},"description":{"type":"string","description":"the version's description. Expected string (max 255 characters)"},"resourceVersionId":{"type":"string","description":"the resource version id. Expected string (max 255 characters)"},"compatibleVersions":{"type":"array","description":"set of the versions from which a resource update to the version can be done. Max number of versions is 100. A version max length is 255. ","items":{"type":"string"},"uniqueItems":true}},"required":["checksum","file","resourceVersionId"]},"ResetPasswordValidationInfo":{"type":"object","description":"Reset password request with user login/email and captcha validation","properties":{"userLogin":{"type":"string","description":"User's login","example":"MyLoginName"},"captcha":{"type":"string","description":"User-provided captcha value"},"captchaToken":{"type":"string","description":"Captcha token"}},"required":["captcha","captchaToken","userLogin"]},"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"]},"StateProcessingFunctionTest":{"type":"object","description":"State Processing function test request","properties":{"data":{"$ref":"#/components/schemas/NewData","description":"data to test the stateProcessingFunction with"},"stateProcessingFunction":{"description":"the JsonLogic (http://jsonlogic.com/) state function. This is the core of the state processing logic. This function takes as input a data message and computes a state associated whith the state key. It can return any primitive value : String, Number, Boolean. e.g. '{\"if\":[{\"<\":[{\"var\":\"value.temp\"},0]},\"cold\",{\"<=\":[{\"var\":\"value.temp\"},100]},\"normal\",\"hot\"]}'"},"currentState":{"description":"simulate a current state, it can be used by the state function"}},"required":["data","stateProcessingFunction"]},"StateProcessingFunctionTestResult":{"type":"object","properties":{"stateFunctionValid":{"type":"boolean","description":"indicates if the state function is valid with jsonLogic syntax"},"dataValid":{"type":"boolean","description":"indicates if data is valid"},"stateFunctionResult":{"description":"state function result when applied to data"}}},"DataMatchTest":{"type":"object","description":"jsonLogic predicate and json data of the evaluation test you want to perform","properties":{"dataPredicate":{"description":"JsonLogic predicate that will be used to evaluate the data. 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\"}]}'."},"data":{"description":"Data to test the dataPredicate with. e.g. '{\"streamId\":\"urn:lo:nsid:mqtt:1234\",\"value\":{\"temp\":100,\"pressure\":36575},\"timestamp\":\"2026-02-19T08:51:06.583Z\",\"metadata\":{\"connector\":\"mqtt\",\"source\":\"urn:lo:nsid:mqtt:1234\",\"group\":{\"path\":\"/europe\",\"id\":\"CdoJOs\"}}}'."}},"required":["data","dataPredicate"]},"DataMatchResult":{"type":"object","properties":{"dataPredicateValid":{"type":"boolean","description":"indicates if the dataPredicate is valid"},"dataValid":{"type":"boolean","description":"indicates if data is valid"},"dataPredicateResult":{"type":"boolean","description":"the predicate result applied to data. Will be false is either dataPredicateValid or dataValid is false"}}},"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"]},"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"]},"CampaignDefinition":{"type":"object","properties":{"name":{"type":"string","description":"Campaign name","example":"My Campaign"},"description":{"type":"string","description":"Campaign description","example":"A campaign that configures parameters, sends command or updates a resource"},"planning":{"$ref":"#/components/schemas/CampaignPlanning","description":"Campaign planning","example":{"startDate":"2010-01-01T00:00:00Z","endDate":"2030-01-01T00:00:00Z"}},"targets":{"$ref":"#/components/schemas/DeviceSelector","description":"Device selector","example":{"idList":["urn:lo:nsid:myNamespace:myDeviceId","urn:lo:nsid:myNamespace:myDeviceId2"]}},"operations":{"type":"array","description":"List of operations to be executed","example":[{"action":"resource","definition":{"resourceId":"resourceId","targetVersion":"v2","maxRetry":1,"metadata":{"secured":true}}},{"action":"configure","definition":{"assetParameters":{"param1":{"type":"INT32","valueInt32":123}},"maxRetry":1}},{"action":"command","version":1,"definition":{"request":{"connector":"mqtt","value":{"foo":"bar"}},"validation":true,"policy":{"expirationInSeconds":200,"ackMode":"APPLICATIVE"},"maxRetry":1}}],"items":{"oneOf":[{"$ref":"#/components/schemas/CampaignCommandOperationV1"},{"$ref":"#/components/schemas/CampaignConfigureOperation"},{"$ref":"#/components/schemas/CampaignResourceOperation"},{"$ref":"#/components/schemas/CampaignResourceUpdateOperation"},{"$ref":"#/components/schemas/CampaignTwinAddObservationOperation"},{"$ref":"#/components/schemas/CampaignTwinClearObservationsOperation"},{"$ref":"#/components/schemas/CampaignTwinExecuteOperation"},{"$ref":"#/components/schemas/CampaignTwinReadOperation"},{"$ref":"#/components/schemas/CampaignTwinWriteMetadataOperation"},{"$ref":"#/components/schemas/CampaignTwinWriteOperation"}]}},"options":{"$ref":"#/components/schemas/CampaignOptions","description":"Campaign options","example":{"dynamicallyAddEligibleDevice":false}}},"required":["name","operations","planning","targets"]},"CsvPayloadDescriptionTestRequest":{"type":"object","description":"Csv format and encoded payload on which decoding shall be performed","properties":{"columns":{"type":"array","description":"the colums description of the CSV format","items":{"$ref":"#/components/schemas/CsvColumn"}},"options":{"$ref":"#/components/schemas/CsvOptions","description":"the CSV decoding options to apply"},"csvPayload":{"type":"string","description":"The encoded payload to test, in CSV format"},"template":{"type":"string","description":"The template to apply after the decoding, it can include mustache operations. e.g. '{\"tempF\": {{#math}}{{temperature}} * 1.8 + 32{{/math}} }'"},"mathEvalEnabled":{"type":"boolean","description":"Applying, or not, math evaluation on templated decoded result. Default is true"}},"required":["columns","csvPayload"]},"PayloadDescriptionTestResult":{"type":"object","properties":{"parsingOk":{"type":"boolean","description":"indicates if the data payload can be parsed according to the data payload description"},"decodingResult":{"description":"the decoded data"},"decodingFailureReason":{"type":"string","description":"if decoding has failed, the reason why it failed"},"descriptionValid":{"type":"boolean","description":"indicates if the payload description is valid according to the type of decoding : csv, binary, js, js-split"},"templatingOK":{"type":"boolean","description":"indicates if the template has been successfully applied on decoded data"}}},"BinaryPayloadDescriptionTestRequest":{"type":"object","description":"Binary format and encoded payload on which decoding shall be performed","properties":{"binaryPayloadStructure":{"type":"string","description":"The Java Binary Block Parser format that will be used to decode the payload"},"binaryPayloadHexString":{"type":"string","description":"The encoded payload to test, in Hexadecimal format"},"template":{"type":"string","description":"The template to apply after the decoding, it can include mustache operations. e.g. '{\"tempF\": {{#math}}{{temperature}} * 1.8 + 32{{/math}} }'"},"mathEvalEnabled":{"type":"boolean","description":"Applying, or not, math evaluation on templated decoded result. Default is true"}},"required":["binaryPayloadHexString","binaryPayloadStructure"]},"DataWeb":{"type":"object","description":"DataMessage to add","properties":{"timestamp":{"type":"string","description":"ISO 8601 date time","example":"2016-08-24T10:32:52.598Z"},"location":{"$ref":"#/components/schemas/Location"},"model":{"type":"string","description":"Model of the injected data. Data with the same model must have coherent types in each value fields. This field is required to perform an advanced search on the data. Can not contains space or dot characters.","example":"MyModelSettingName"},"value":{"description":"Must be a JsonObject (primitive objects like string or int are not allowed). It can not contain field names starting with '$' character or containing dot '.' character and its size should not exceed 1 MiB. To use decoding capability, 'value.payload' field must be use to set encoded content as String (in case of binary content, HexBinary String representation of this content)","example":{"hexaFlag001":"2F00","temp":22.0,"pressure":36575.0}},"tags":{"type":"array","description":"Easy way to 'tag' the data in order to ease up advanced search through all streams and models","example":["Motor","Engine"],"items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/Metadata","description":"Metadata of the stored value : may include user metadata (source) as well as additional information (protocol, server, user...)","example":{"source":"urn:tenantName:FFFFFFFFFFFFFFFF!mystream"}}},"required":["value"]},"Metadata":{"type":"object","properties":{"source":{"type":"string","description":"source of the data","example":"urn:tenantName:FFFFFFFFFFFFFFFF!mystream"},"encoding":{"type":"string","description":"encoding format name, that should match the 'encoding' field of the decoder that will process this datamessage."}}},"JsonObjectForSwagger":{"description":"JsonObject"},"DataBulkItemWeb":{"type":"object","description":"Unitary data item in a bulk.","properties":{"timestamp":{"type":"string","description":"ISO 8601 date time","example":"2016-08-24T10:32:52.598Z"},"location":{"$ref":"#/components/schemas/Location"},"model":{"type":"string","description":"Model of the injected data. Data with the same model must have coherent types in each value fields. This field is required to perform an advanced search on the data. Can not contains space or dot characters.","example":"MyModelSettingName"},"value":{"description":"Must be a JsonObject (primitive objects like string or int are not allowed). It can not contain field names starting with '$' character or containing dot '.' character and its size should not exceed 1 MiB. To use decoding capability, 'value.payload' field must be use to set encoded content as String (in case of binary content, HexBinary String representation of this content)","example":{"hexaFlag001":"2F00","temp":22.0,"pressure":36575.0}},"tags":{"type":"array","description":"Easy way to 'tag' the data in order to ease up advanced search through all streams and models","example":["Motor","Engine"],"items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/Metadata","description":"Metadata of the stored value : may include user metadata (source) as well as additional information (protocol, server, user...)","example":{"source":"urn:tenantName:FFFFFFFFFFFFFFFF!mystream"}},"streamId":{"type":"string","description":"StreamId in which the data will be added. Should not contains following character or space : ' \\ \" ; { } ( )","example":"urn:tenantName:FFFFFFFFFFFFFFFF!mystream"}},"required":["value"]},"DataBulkWeb":{"type":"array","description":"Bulk of Data to add","items":{"$ref":"#/components/schemas/DataBulkItemWeb"},"properties":{"empty":{"type":"boolean"}}},"ContactMessage":{"type":"object","description":"Contact information","properties":{"to":{"type":"array","description":"to","items":{"type":"string"}},"cc":{"type":"array","description":"cc","items":{"type":"string"}},"cci":{"type":"array","description":"cci","items":{"type":"string"}},"phoneNumbers":{"type":"array","description":"phoneNumbers","items":{"type":"string"}}}},"SendMessageRequest":{"type":"object","description":"contact and message are mandatory","properties":{"contact":{"$ref":"#/components/schemas/ContactMessage","description":"contact"},"message":{"type":"object","additionalProperties":{"type":"string"},"description":"message"}},"required":["contact","message"]},"CaCertificateDefinition":{"type":"object","description":"Root or intermediate Certification Authority (CA) certificate. Only PEM format is supported. Certificate chains are not allowed. In case that intermediates CA are used, it must be the intermediate CA certificate which signs the devices certificates.","properties":{"certificate":{"type":"string","description":"PEM X.509 public certificate","example":"-----BEGIN CERTIFICATE-----\nMIIDhzCCAm+gAwIBAgIJAKG3BbVszHbbMA0GCSqGSIb3DQEBCwUAMFoxCzAJBgNV\nBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX\naWRnaXRzIFB0eSBMdGQxEzARBgNVBAMMCk15IFJvb3QgQ0EwHhcNMTgwNTI0MDcx\nNDE2WhcNMjEwMzEzMDcxNDE2WjBaMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29t\nZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRMwEQYD\nVQQDDApNeSBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA\nukVDFNxEV7J6+vqmMLqbsm98kJIqKvogvl+yC0HWxpueSrewI5KrNnNGFveNeGCA\nFgk886rK17/nA3wiauZc2st92MbESUYSr0PF+72wsYCHBeMhOiLygaSEYiLEGExc\naIlidYH5b501m/PecbtwfZCs/H0jWqJ34XRzF7yq64iZQ1gt9TzWkYDsH9bjxSmk\n3iSQWkYmpz7SM+b19q0D0punlYNZo5TxmpNF2P8Iiy2Qj2eEKak1BvqOY6xUkNKE\npb9toQ5r+qGH3ZVRWEgdV4PRqhGTY8nsJUq4lAlPGI2GqVSYuY6Z/CUn/ZtB6lq/\niuG9e+6VgQA3zDLq4TdS9QIDAQABo1AwTjAdBgNVHQ4EFgQUClL5PFn9wW3dNoOc\nX7OfrxCc8+YwHwYDVR0jBBgwFoAUClL5PFn9wW3dNoOcX7OfrxCc8+YwDAYDVR0T\nBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAMnVSahn7iaQdZgMqJtuokuijTkFU\ny4IwXGMf9psq18UMvjeWG0LauWQyBGdMQ6yNLC8YeboLbc19xbdvTBrMSAj7c1VY\nMZ3hpOkOo9jpQxAzCF8o+IDEisuZbRN+ZSRnoW5ruIeU9FT/3JlKm6xYFBbP3ijH\nkxFfLlJeLhhgbkB1wPLhQsO5rP/6DRD+CA9ympxn+gO2YX/5gqgzEQSN3RQANaBG\nU4yLz+t2SO2AgIKBDxwFGws+ciTEnu+9NLx9BYUI1BtbKuS/nwFIcJ0FkpAUOn0+\n6yN6vwM0t9bfXG8mLizAecWpbodz0YsizQwA8wJeKnmbR/u0ZOxp4qXpfg==\n-----END CERTIFICATE-----"},"comment":{"type":"string","description":"Certificate description.","example":"my awesome intermediate CA certificate"}},"required":["certificate","comment"]},"CaCertificateRef":{"type":"object","properties":{"id":{"type":"string"}}},"PasswordAuthenticationInfo":{"type":"object","description":"body of authentication request","properties":{"email":{"type":"string","description":"User's email","example":"me.name@mycompagny.mycom"},"login":{"type":"string","description":"User's login","example":"MyLoginName"},"password":{"type":"string","description":"User's password","example":"MyCurrentPWD"}},"required":["password"]},"AuthResWeb":{"type":"object","properties":{"apiKey":{"$ref":"#/components/schemas/ApiKey"},"admin":{"type":"boolean"}}},"ApiKeyCreationDefinition":{"type":"object","description":"body for create API key","properties":{"parentId":{"type":"string","description":"identifier of the parent key to set. Expected identifier (max 24 characters)","example":"57FFFFFFFFFFFFFFFFFFFFFE"},"from":{"type":"integer","format":"int64","description":"Timestamp from which the key is valid","example":1473078900000},"to":{"type":"integer","format":"int64","description":"Timestamp until which the key is valid","example":1475224200000},"ttl":{"type":"integer","format":"int64","description":"Time to live (ms)","example":144410000},"label":{"type":"string","description":"Title of the key. Expected string (limited to 24 first characters)","example":"My Api Key Name"},"description":{"type":"string","description":"Short description of the key. Expected string (limited to 140 first characters)","example":"description of Api Key target"},"active":{"type":"boolean","description":"Status","example":true},"roles":{"type":"array","description":"list of API key associated roles. Basic roles are \"USER_R\", \"USER_W\", \"API_KEY_R\", \"API_KEY_W\" or any role string supplied at tenant account creation time. Expected array of role names (max all roles, role value max 255 characters). Assigned roles must be included in the roles of the authenticating API key or token.","example":["USER_R","APIKEY_R"],"items":{"type":"string"},"uniqueItems":true},"scope":{"$ref":"#/components/schemas/ScopeApplication","description":"List of scope to apply","example":{"fifos":["val1","val2"]}},"clientCert":{"$ref":"#/components/schemas/ClientCertificatesConfiguration","description":"Specify usage of TLS client certificate for mqtt connection and associated CA cert ids if enabled"}},"required":["parentId","roles"]},"ApiKeyUpdateDefinition":{"type":"object","description":"body for update API key","properties":{"from":{"type":"integer","format":"int64","description":"Timestamp from which the key is valid. When its value is  -1, value is reset to the 'from' value in its parent key."},"to":{"type":"integer","format":"int64","description":"Timestamp until which the key is valid. When its value is -1, value is reset to the 'to' value in its parent key."},"sessionTtl":{"type":"integer","format":"int64","description":"Maximum inactivity period (ms)","example":300000},"label":{"type":"string","description":"Title of the key. Expected string (limited to 24 first characters)"},"description":{"type":"string","description":"Short description of the key. Expected string (limited to 140 first characters)"},"active":{"type":"boolean","description":"Status"},"roles":{"type":"array","description":"list of API key associated Roles. Basic roles are \"USER_R\", \"USER_W\", \"API_KEY_R\", \"API_KEY_W\" or any role string supplied at tenant account creation time. Expected array of role names (max all roles, role value max 255 characters). Assigned roles must be included in the roles of the authenticating API key or token.","example":["USER_R","APIKEY_R"],"items":{"type":"string"},"uniqueItems":true},"debugModeEndTs":{"type":"integer","format":"int64","description":"Timestamp until which the debug mode will be activated"},"scope":{"$ref":"#/components/schemas/ScopeApplication","description":"List of scope to apply (this list always replaces the previous one).","example":"\"fifos\" : [ \"val1\",\"val2\" ]"},"clientCert":{"$ref":"#/components/schemas/ClientCertificatesConfiguration","description":"Specify usage of TLS client certificate for mqtt connection and associated CA cert ids if enabled"},"regenerateValue":{"type":"boolean","description":"Request a random value regeneration"}},"required":["regenerateValue"]},"UserProfilePatchRequestWeb":{"type":"object","description":"body for user profile patch request","properties":{"email":{"type":"string","description":"user email. Expected a valid email (max 254 characters)","example":"me.name@mycompagny.mycom"},"language":{"type":"string","description":"the user language. Expected language ISO 639-1 (example: \"en\", \"fr\", \"sk\", \"ro\", \"es\") (case insensitive, max 2 characters)","example":"en"}}},"UserProfile":{"type":"object","description":"User profile","properties":{"id":{"type":"string","description":"identifier of user","example":"57FFFFFFFFFFFFFFFFFFFFFF"},"email":{"type":"string","description":"user email","example":"me.name@mycompagny.mycom"},"language":{"type":"string","description":"the user language, in ISO 639-1 format","example":"en"},"identities":{"type":"array","description":"list of identities used by the user to be authenticated to Live Objects","items":{"$ref":"#/components/schemas/UserProfileIdentity"}},"merged":{"type":"boolean"}},"required":["email","id","identities","language"]},"UserProfileIdentity":{"type":"object","description":"user profile identity","properties":{"provider":{"type":"string","description":"identity provider name","example":"LO"},"id":{"type":"string","description":"unique identifier used by the provider to identify the physical person","example":"jean-jacques"},"lastAuthentication":{"type":"string","format":"date-time","description":"last authentification instant for this provider","example":"2024-07-10T13:22:11.357+00:00"},"login":{"type":"string","description":"identity provider login","example":"jean.jacques"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"identity provider metadata"}},"required":["id","lastAuthentication","provider"]},"DeviceUpdateRequest":{"type":"object","description":"an update to a device definition","properties":{"id":{"type":"string","description":"new device identifier. A Live Objects URN 'urn:lo:nsid:{namespace}:{id}' must respect the following regular expression <code>^urn:lo:nsid:([\\w\\-]{1,128}):([\\w\\-:]{1,128})$</code> (max 269 characters)","example":"urn:lo:nsid:sensor:2327398"},"name":{"type":"string","description":"new device human-readable name. Expected string (max 255 characters)","example":"sensor #12"},"description":{"type":"string","description":"new device description. Expected string (max 500 characters)"},"defaultDataStreamId":{"type":"string","description":"default data streamId. Expected not empty string. Following character are forbidden <code>\"'\\\"\\\\;{}() \"</code> (max 255 characters)","example":"urn:lo:nsid:mysensor:001"},"tags":{"type":"array","description":"new device set of tags. Max number of tags depends on your offer settings. Tag value max length is 32.","example":["demo","sensor"],"items":{"type":"string"},"uniqueItems":true},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"map of key/value string pairs detailing device properties to update. Max number of properties depends of your offer settings. A property name must not include following characters <code>$.NULL</code> and max length is 128. Invalid property names are : 'class', '_class'. Property value max length is 256.","example":{"manufacturer":"MyDeviceMaker, Inc.","hwVersion":"2.0.1.7-us_64"}},"group":{"$ref":"#/components/schemas/DeviceGroup","description":"new device group","example":{"id":"root"}},"staticLocation":{"$ref":"#/components/schemas/StaticLocation","description":"the static location of device"}},"required":["id"]},"InterfaceUpdateRequest":{"type":"object","description":"The fields to update","properties":{"deviceId":{"type":"string","description":"New device id this connector node must be associated with (or null)","example":"urn:lo:nsid:sensor:2327398"},"enabled":{"type":"boolean","description":"New enabled state for this connector node (or null)"},"definition":{"description":"New interface definition"}}},"UpdateConnectorNodeRequest":{"type":"object","description":"The fields to update","properties":{"deviceId":{"type":"string","description":"New device id this connector node must be associated with (or null)","example":"urn:lo:nsid:sensor:2327398"},"enabled":{"type":"boolean","description":"New enabled state for this connector node (or null)"},"definition":{"description":"New interface definition"}}},"ConnectorNode":{"type":"object","description":"Full details about a connector node (=device interface)","properties":{"connector":{"type":"string","description":"Connector ID"},"nodeId":{"type":"string","description":"Connector node ID"},"deviceId":{"type":"string","description":"Device identifier (URN)"},"enabled":{"type":"boolean","description":"Indicates whether the interface is enabled"},"status":{"type":"string","description":"Interface status","enum":["REGISTERED","INITIALIZING","INITIALIZED","REACTIVATED","ONLINE","ACTIVATED","OFFLINE","SLEEPING","DEACTIVATED","CONNECTIVITY_ERROR","UNKNOWN","DELETED"],"example":"ONLINE"},"definition":{"description":"Base definition"},"lastContact":{"type":"string","format":"date-time","description":"Last contact date"},"activity":{"description":"Interface activity"},"locations":{"type":"array","description":"Last device location","items":{"$ref":"#/components/schemas/ConnectorNodeLocation"},"readOnly":true},"created":{"type":"string","description":"Date/time of the device creation","example":"2016-06-03T15:55:36.944Z","readOnly":true},"updated":{"type":"string","description":"Date/time of the device update","example":"2016-06-03T15:55:36.944Z","readOnly":true}}},"LoraGatewayDefinition":{"type":"object","properties":{"name":{"type":"string","description":"Name of the gateway","example":"FF02041D"},"description":{"type":"string","description":"Description"},"location":{"$ref":"#/components/schemas/LoraGatewayLocation","description":"Gateway location"}}},"LoraGatewayLocation":{"type":"object","properties":{"lat":{"type":"number","format":"double","description":"Last geolocation latitude (GPS coordinate system)","example":10.11212},"lon":{"type":"number","format":"double","description":"Last geolocation longitude (GPS coordinate system)","example":7.44464},"alt":{"type":"number","format":"double","description":"Last geolocation altitude (meter)","example":50},"provider":{"type":"string","description":"Computing geolocation method","example":"GPS"},"lastUpdateTs":{"type":"string","format":"date-time","description":"Date/time of the last location","example":"2016-06-14T11:09:22.125Z"}}},"GwConfig":{"type":"object","properties":{"version":{"type":"string","description":"Version","example":"2.2.47"}}},"GwNetworkPartner":{"type":"object","properties":{"instance":{"type":"string","description":"Partner related instance","example":"OCP"}}},"GwSystem":{"type":"object","properties":{"gpsState":{"type":"string","description":"GPS state","example":"UNKNOWN"},"timeSync":{"type":"string","description":"Time synchronization","example":"NTP"}}},"LoraGatewayInfo":{"type":"object","properties":{"id":{"type":"string","description":"Unique id of the gateway","example":"FF02041D"},"name":{"type":"string","description":"Name of the gateway","example":"FF02041D"},"description":{"type":"string","description":"Description"},"manufacturer":{"type":"string","description":"Manufacturer of the gateway","example":"Kerlink"},"model":{"type":"string","description":"Model of the gateway","example":"Warbler"},"status":{"type":"string","description":"Status of the gateway","example":"ONLINE"},"lastReportTs":{"type":"string","description":"Date/time of the last report","example":"2016-06-03T15:55:36.944Z"},"location":{"$ref":"#/components/schemas/LoraGatewayLocation","description":"Gateway location"},"system":{"$ref":"#/components/schemas/GwSystem","description":"System of the gateway:"},"config":{"$ref":"#/components/schemas/GwConfig","description":"Configuration of the gateway:"},"networkPartner":{"$ref":"#/components/schemas/GwNetworkPartner","description":"Network partner"}}},"CampaignUpdating":{"type":"object","properties":{"name":{"type":"string","description":"Campaign name","example":"My Campaign"},"description":{"type":"string","description":"Campaign description","example":"An updated campaign"},"planning":{"$ref":"#/components/schemas/CampaignPlanning","description":"Campaign planning","example":{"startDate":"2120-07-19T09:23:11Z","endDate":"2120-07-20T09:23:11Z"}},"targets":{"$ref":"#/components/schemas/DeviceSelector","description":"Device selector","example":{"idList":["urn:lo:nsid:myNamespace:myDeviceId","urn:lo:nsid:myNamespace:myDeviceId2"]}},"operations":{"type":"array","description":"List of operations to be executed","example":[{"action":"command","definition":{"event":"reboot"}}],"items":{"oneOf":[{"$ref":"#/components/schemas/CampaignCommandOperationV1"},{"$ref":"#/components/schemas/CampaignConfigureOperation"},{"$ref":"#/components/schemas/CampaignResourceOperation"},{"$ref":"#/components/schemas/CampaignResourceUpdateOperation"},{"$ref":"#/components/schemas/CampaignTwinAddObservationOperation"},{"$ref":"#/components/schemas/CampaignTwinClearObservationsOperation"},{"$ref":"#/components/schemas/CampaignTwinExecuteOperation"},{"$ref":"#/components/schemas/CampaignTwinReadOperation"},{"$ref":"#/components/schemas/CampaignTwinWriteMetadataOperation"},{"$ref":"#/components/schemas/CampaignTwinWriteOperation"}]}},"options":{"$ref":"#/components/schemas/CampaignOptions","description":"Campaign options","example":{"dynamicallyAddEligibleDevice":false}}}},"PageableV2UserAccess":{"type":"object","properties":{"page":{"type":"integer","format":"int64","description":"number of the current page: starts at 0.","example":0},"size":{"type":"integer","format":"int64","description":"number of data per page (= maximum number of data in the associated list of data:the last page can have less data)","example":1},"totalCount":{"type":"integer","format":"int64","description":"total count of data in the complete list.","example":1},"data":{"type":"array","description":"list of data in this page.","items":{"$ref":"#/components/schemas/UserAccess"}}},"required":["data","page","size","totalCount"]},"UserAccess":{"type":"object","description":"User access","properties":{"id":{"type":"string","description":"identifier of user access","example":"57FFFFFFFFFFFFFFFFFFFFFF"},"tenantId":{"type":"string","description":"tenant identifier"},"tenantName":{"type":"string","description":"tenant name"},"tenantAccountType":{"type":"string","description":"tenant accountType"},"state":{"type":"string","description":"state of user access","example":"enabled"},"permissions":{"type":"array","description":"list of access's permissions","example":["USER_R"],"items":{"type":"string"},"uniqueItems":true},"permissionSet":{"type":"string","description":"access's permissions corresponding permission set","enum":["CUSTOMER_USERACCESS_USER","CUSTOMER_USERACCESS_ADMIN","CUSTOMER_DEVICE","CUSTOMER_CONNECTOR","CUSTOMER_APPLICATION","CUSTOMIZED"]},"lastAccess":{"type":"string","format":"date-time","description":"user tenant last access instant"},"lastAccessIdentityProvider":{"type":"string","description":"user tenant last access identity provider name"},"portalData":{"description":"user tenant portal data"},"mainUser":{"type":"boolean"}},"required":["id","permissionSet","permissions","state","tenantAccountType","tenantId","tenantName"]},"GetSubscriptionResponse":{"type":"object","description":"Cellular-Network get subscription","properties":{"id":{"type":"string","description":"Subscription unique identifier","example":"06361404"},"msisdn":{"type":"string","description":"Number uniquely identifying a subscription in a Global System for Mobile communications","example":"337000003543020"},"imsi":{"type":"string","description":"International Mobile Subscriber Identity","example":"208017401123509"},"sim":{"$ref":"#/components/schemas/Sim","description":"Sim"},"provider":{"$ref":"#/components/schemas/Provider","description":"Provider"},"network":{"$ref":"#/components/schemas/Network"},"device":{"$ref":"#/components/schemas/CellularDevice","description":"Device"}}},"MobileCountry":{"type":"object","properties":{"code":{"type":"string","description":"Code of mobile country","example":"208"},"value":{"type":"string","description":"Value of mobile country","example":"France"}}},"MobileNetwork":{"type":"object","properties":{"code":{"type":"string","description":"Code of mobile network","example":"208-01"},"value":{"type":"string","description":"Value of mobile network","example":"Orange"}}},"Network":{"type":"object","properties":{"status":{"type":"string","description":"Status of network attachment","enum":["ONLINE","OFFLINE"],"example":"ONLINE, OFFLINE"},"radio":{"type":"string","description":"Radio type of network attachment","example":"3G, 4G"},"lastUpdate":{"type":"string","format":"date-time","description":"Last update date of network attachment","example":"2021-02-03T10:45:35+01:00"},"mobileCountry":{"$ref":"#/components/schemas/MobileCountry","description":"Mobile country"},"mobileNetwork":{"$ref":"#/components/schemas/MobileNetwork","description":"Mobile network"},"lastInteraction":{"type":"string","description":"Last interaction of network attachment","enum":["DATA","SMS"],"example":"DATA, SMS"}}},"TrafficData":{"type":"object","properties":{"timestamp":{"type":"string","format":"date-time","description":"Start date of the traffic data bucket","example":"2021-02-03T10:45:35+01:00"},"smsIn":{"type":"integer","format":"int64","description":"Number of SMS received by the device","example":5},"smsOut":{"type":"integer","format":"int64","description":"Number of SMS sent by the device","example":5},"dataIn":{"type":"integer","format":"int64","description":"Volume in bytes of data received by the device","example":1096},"dataOut":{"type":"integer","format":"int64","description":"Volume in bytes of data sent by the device","example":1096}}},"GetLocationResponse":{"type":"object","description":"Cellular-Network get location","properties":{"lat":{"type":"number","format":"double","description":"Latitude value. The latitude must be between -180 and 180 ","example":45.000009},"lon":{"type":"number","format":"double","description":"Longitude value. The longitude must be between -90 and 90","example":-30.00001},"accuracy":{"type":"number","format":"double","description":"Accuracy value (in meter).","example":20.0},"provider":{"type":"string","description":"Location provider.","example":"network"},"lastUpdateTs":{"type":"string","format":"date-time","description":"Location date.","example":"2016-06-03T15:55:36.944Z"},"link":{"type":"string","description":"link to access portal M2M","example":"https://m2mexpress.fr.orange-business.com/mac/customer/fleet/deviceinfo/localization-details.do?subId=06361404&category=SIM"}}},"ProviderResponse":{"type":"object","description":"Customer Cellular-Network provider","properties":{"id":{"type":"string","description":"Provider unique identifier","example":"601bb1565e92fc53fce1c92d"},"type":{"type":"string","description":"Provider type. Allowed values: [malima] (case insensitive)","example":"malima"},"configuration":{"$ref":"#/components/schemas/ProviderConfiguration","description":"Provider customer account configuration","example":{"cen":"cen111","instanceId":"OFR"}},"accountName":{"type":"string","description":"Provider account name","example":"MyAccountName"}}},"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"}}},"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."}}},"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"}}},"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."}}},"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"}}},"FifoMessageCounters":{"type":"object","properties":{"daily":{"type":"array","items":{"$ref":"#/components/schemas/DailyFifoMessageDeliveryCounters"}},"hourly":{"type":"array","items":{"$ref":"#/components/schemas/HourlyFifoMessageDeliveryCounters"}}}},"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"}}},"FifoSupervision":{"type":"object","properties":{"daily":{"type":"array","items":{"$ref":"#/components/schemas/DailyFifoSupervision"}},"hourly":{"type":"array","items":{"$ref":"#/components/schemas/HourlyFifoSupervision"}}}},"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}}},"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"}}},"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}}},"HttpDeliveryCounters":{"type":"object","properties":{"daily":{"type":"array","items":{"$ref":"#/components/schemas/DailyHttpDeliveryCounters"}},"hourly":{"type":"array","items":{"$ref":"#/components/schemas/HourlyHttpDeliveryCounters"}}}},"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."}}},"HttpRequestCounters":{"type":"object","properties":{"daily":{"type":"array","items":{"$ref":"#/components/schemas/DailyHttpRequestCounters"}},"hourly":{"type":"array","items":{"$ref":"#/components/schemas/HourlyHttpRequestCounters"}}}},"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"]}}}},"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"}}},"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"}}}},"Status":{"type":"object","properties":{"messages":{"type":"integer","format":"int64","description":"Number of messages stored"},"consumers":{"type":"integer","format":"int64","description":"Number of active consumers"}}},"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"]},"ActionPolicyDiagnostics":{"type":"object","properties":{"actionPolicyId":{"type":"string"},"actions":{"type":"array","items":{"$ref":"#/components/schemas/ActionDiagnostic"}}}},"ActionPolicyDiagnosticsList":{"type":"array","items":{"$ref":"#/components/schemas/ActionPolicyDiagnostics"},"properties":{"empty":{"type":"boolean"}}},"Resumption":{"type":"object","properties":{"time":{"type":"string","format":"date-time"}}},"Suspension":{"type":"object","properties":{"reason":{"type":"string"},"time":{"type":"string","format":"date-time"}}},"TwinOperationTypeFilter":{"type":"array","items":{"type":"string","enum":["READ","WRITE","EXECUTE","WRITE-METADATA","UNKNOWN"]},"properties":{"empty":{"type":"boolean"}}},"TwinOperationStatusFilter":{"type":"array","items":{"type":"string","enum":["PENDING","SENT","RETRYING","OK","CANCELED","EXPIRED","FAILED","UNKNOWN"]},"properties":{"empty":{"type":"boolean"}}},"AbbreviatedTwinOperationExecuteResponse":{"allOf":[{"$ref":"#/components/schemas/AbstractAbbreviatedTwinOperationResponse"},{"type":"object","properties":{"type":{"type":"string","default":"EXECUTE","description":"EXECUTE operation: this operation is used to execute a target object attribute."},"paths":{"type":"array","description":"paths of object","example":["/1/0/7","/1/0","/1","/1/0/25/4"],"items":{"type":"string"},"uniqueItems":true}}}],"required":["created","id","status","type","updated"]},"AbbreviatedTwinOperationReadResponse":{"allOf":[{"$ref":"#/components/schemas/AbstractAbbreviatedTwinOperationResponse"},{"type":"object","properties":{"type":{"type":"string","default":"READ","description":"READ operation: this operation is used to read attribute(s) value(s) of device object(s)."},"paths":{"type":"array","description":"paths of object","example":["/1/0/7","/1/0","/1","/1/0/25/4"],"items":{"type":"string"},"uniqueItems":true}}}],"required":["created","id","status","type","updated"]},"AbbreviatedTwinOperationWriteMetadataResponse":{"allOf":[{"$ref":"#/components/schemas/AbstractAbbreviatedTwinOperationResponse"},{"type":"object","properties":{"type":{"type":"string","default":"WRITE-METADATA","description":"WRITE METADATA operation: this operation is used to write (set, update, unset) metadata on device object(s)."},"values":{"type":"array","description":"Path and set of metadata to write","example":"[ {\"path\":\"/1/0/7\",\n\"metadata\": [\n{\"name\" : \"pmin\", \"value\" : \"20\"},\n{\"name\" : \"gt\", \"value\" : \"50\"},\n{\"name\" : \"lt\"}\n]","items":{"$ref":"#/components/schemas/TwinOperationWriteMetadataValue"},"uniqueItems":true}}}],"required":["created","id","status","type","updated","values"]},"AbbreviatedTwinOperationWriteResponse":{"allOf":[{"$ref":"#/components/schemas/AbstractAbbreviatedTwinOperationResponse"},{"type":"object","properties":{"type":{"type":"string","default":"WRITE","description":"WRITE operation: this operation is used to write attribute(s) value(s) on device object(s). <br>A `WRITE` operation relies on `writeMode`: `UPDATE` act like a 'patch' while `REPLACE` will override target path."},"paths":{"type":"array","description":"paths of object instance","example":["/1/0"],"items":{"type":"string"},"uniqueItems":true},"writeMode":{"type":"string","description":"Write mode","enum":["UPDATE","REPLACE"],"example":"UPDATE"},"values":{"type":"array","description":"list of the values to write (values are truncated for display purpose)","example":[{"path":"/1/0/7","truncatedValue":"tutu"},{"path":"/1/0/25/2","truncatedValue":"abcdefghij..."}],"items":{"$ref":"#/components/schemas/AbbreviatedTwinOperationWriteValue"},"uniqueItems":true}}}],"required":["created","id","status","type","updated","writeMode"]},"AbbreviatedTwinOperationWriteValue":{"type":"object","properties":{"path":{"type":"string","description":"Path of attribute, or attribute instance","example":"/1/0/3"},"abbreviatedValue":{"type":"string","description":"abbreviate of the value to write (for display purpose)","example":"\"tutu\""}},"required":["abbreviatedValue","path"]},"AbstractAbbreviatedTwinOperationResponse":{"type":"object","discriminator":{"propertyName":"type"},"properties":{"id":{"type":"string","description":"operation unique identifier","example":"11fd797e674d4607830dfe2daaf15e4c"},"type":{"type":"string","description":"twin operation among [\"READ\", \"WRITE\", \"EXECUTE\", \"WRITE-METADATA\"]","example":"WRITE"},"contextToken":{"type":"string","description":"optional string (Tag like)"},"status":{"type":"string","description":"operation status can be [\"PENDING\", \"SENT\", \"RETRYING\", \"OK\", \"CANCELED\", \"EXPIRED\", \"FAILED\"]","enum":["PENDING","SENT","RETRYING","OK","CANCELED","EXPIRED","FAILED","UNKNOWN"],"example":"SENT"},"options":{"$ref":"#/components/schemas/TwinOperationOptions","description":"operation options","example":{"lwm2m":{"contentFormat":{"request":"SENML_CBOR","response":"SENML_CBOR"}}}},"error":{"$ref":"#/components/schemas/TwinOperationError","description":"operation error when status is FAILED","example":{"code":"OPERATION_TIMEOUT","details":"operation timeout"}},"created":{"type":"string","format":"date-time","description":"operation creation date/time","example":"2021-12-06T11:32:25.055Z"},"updated":{"type":"string","format":"date-time","description":"operation last status update date/time","example":"2021-12-06T11:32:25.055Z"},"policy":{"$ref":"#/components/schemas/TwinOperationPolicy","description":"optional operation policy"}},"required":["created","id","status","type","updated"]},"ParentTwinObject":{"type":"object","properties":{"path":{"type":"string","description":"Root path","example":"/","minLength":1},"objectDefinitionId":{"type":"string","description":"Unique identifier of the object-definition","example":"urn:oma:lwm2m","minLength":1},"children":{"type":"array","description":"List of children objects","items":{"$ref":"#/components/schemas/TwinObject"},"uniqueItems":true}},"required":["objectDefinitionId","path"]},"TwinAttribute":{"type":"object","properties":{"path":{"type":"string","description":"Path of the attribute","example":"/5/0/3","minLength":1},"pathSegment":{"type":"string","description":"Path segment of the attribute","example":"3","minLength":1},"content":{"$ref":"#/components/schemas/TwinAttributeValue","description":"Single attribute value"},"contents":{"type":"array","description":"Multi-instance attribute values","items":{"$ref":"#/components/schemas/TwinAttributeInstanceValue"}}},"required":["path","pathSegment"]},"TwinAttributeInstanceValue":{"type":"object","properties":{"reportedValue":{"type":"string","description":"Attribute reported value"},"timestamp":{"type":"string","description":"Value timestamp"},"pendingValue":{"type":"string","description":"Pending value"},"path":{"type":"string","description":"Attribute multi-instantiable value path"}}},"TwinAttributeValue":{"type":"object","properties":{"reportedValue":{"type":"string","description":"Attribute reported value"},"timestamp":{"type":"string","description":"Value timestamp"},"pendingValue":{"type":"string","description":"Pending value"}}},"TwinObject":{"type":"object","properties":{"path":{"type":"string","description":"Path of the object","example":"/5","minLength":1},"objectDefinitionId":{"type":"string","description":"Unique identifier of the object-definition","example":"urn:oma:lwm2m:oma:5:1.1","minLength":1},"instances":{"type":"array","description":"List of object instances","items":{"$ref":"#/components/schemas/TwinObjectInstance"},"uniqueItems":true}},"required":["objectDefinitionId","path"]},"TwinObjectInstance":{"type":"object","properties":{"path":{"type":"string","description":"Path of the object","example":"/5/0","minLength":1},"objectDefinitionId":{"type":"string","description":"Unique identifier of the object-definition","example":"urn:oma:lwm2m:oma:5:1.1","minLength":1},"attributes":{"type":"array","description":"List of object attributes","items":{"$ref":"#/components/schemas/TwinAttribute"},"uniqueItems":true}},"required":["objectDefinitionId","path"]},"DeviceResourceMapResponse":{"type":"object","properties":{"resourceName":{"$ref":"#/components/schemas/DeviceResource"}}},"DeviceStreamsResponseWeb":{"type":"object","properties":{"streamId":{"type":"string","description":"id of the stream","example":"urn:lo:nsid:sensor:1234!measures"},"count":{"type":"integer","format":"int32","description":"number of messages sent by the device into this stream","example":42},"lastUpdate":{"type":"string","description":"date of the last message sent by the device into this stream","example":"2018-10-30T17:26:53.012Z"}}},"DeviceConfig":{"type":"object","properties":{"parameters":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DeviceParameter"},"description":"device configuration"}}},"DeviceParameter":{"type":"object","properties":{"reported":{"$ref":"#/components/schemas/DeviceParameterValue","description":"configuration parameter value, as reported by the device"},"requested":{"$ref":"#/components/schemas/DeviceParameterValue","description":"configuration parameter value, as it should be set on the device"},"syncStatus":{"type":"string","description":"configuration parameter synchronization status: NONE, PENDING, OK or FAILED","enum":["NONE","PENDING","SENT","CANCELED","OK","FAILED"],"example":"OK"}}},"LoraDeviceManufacturer":{"type":"object","properties":{"name":{"type":"string","description":"Commercial name of the device manufacturer","example":"Adeunis"}}},"LoraDeviceProfile":{"type":"object","properties":{"id":{"type":"string","description":"Unique id of the device profile","example":"Temperature sensor profile id"},"name":{"type":"string","description":"Commercial name of the device profile","example":"Temperature sensor profile name"},"manufacturer":{"$ref":"#/components/schemas/Manufacturer","description":"Commercial name of the device manufacturer","example":"Sensor maker"},"ismBands":{"type":"array","description":"List of the ISM bands supported by the device profile","example":["EU863-870 (EU868)"],"items":{"type":"string"}}}},"Manufacturer":{"type":"object","properties":{"name":{"type":"string","description":"Commercial name of the device manufacturer","example":"Adeunis"}}},"PageableLoraGatewayInfo":{"type":"object","properties":{"page":{"type":"integer","format":"int64","description":"number of the current page: starts at 0.","example":0},"size":{"type":"integer","format":"int64","description":"number of data per page (= maximum number of data in the associated list of data:the last page can have less data)","example":1},"totalCount":{"type":"integer","format":"int64","description":"total count of data in the complete list.","example":1},"data":{"type":"array","description":"list of data in this page.","items":{"$ref":"#/components/schemas/LoraGatewayInfo"}}},"required":["data","page","size","totalCount"]},"LoraNetworkSubscriptionDetail":{"type":"object","properties":{"id":{"type":"string","description":"Unique id of the connectivity plan","example":"orange-cs/cp_ack_location_rep3_adrv2"},"name":{"type":"string","description":"Commercial name of the connectivity plan","example":"Reseau national LoRa Orange"},"parameters":{"type":"object","additionalProperties":{},"description":"List of CP details","example":{"nbTransMax":3,"location":true,"ackUl":false,"sfMax":12,"sfMin":7,"nbTransMin":1}}}},"CommandStatusReport":{"type":"object","properties":{"content":{"type":"string"}}},"DeviceAnalysisStats":{"type":"object","properties":{"analyticsRuleId":{"type":"string","description":"Id of the AnalyticsRule this analysis belongs to."},"deviceId":{"type":"string","description":"Id of the device."},"day":{"type":"string","description":"Day of the analysis. yyyy-MM-dd format."},"analysisStatus":{"type":"string","description":"Status of the analysis computation."},"groupPath":{"type":"string","description":"Group path of the device at the time of the analysis."},"updated":{"type":"string","format":"date-time","description":"Last update timestamp of the analysis."},"historyTimeWindowInDays":{"type":"integer","format":"int32","description":"The number of days the analysis is based on (e.g. to compute means)"},"trafficAnalysis":{"$ref":"#/components/schemas/TrafficAnalysis","description":"Analysis of the device's data traffic."},"interfacesAnalysis":{"$ref":"#/components/schemas/InterfacesAnalysis","description":"Analysis of the device's connectivity behaviour."}}},"DtlsStatistics":{"type":"object","properties":{"packetCount":{"type":"integer","format":"int64","description":"Total number of DTLS packets received over the period."},"lostPacketsPerDay":{"$ref":"#/components/schemas/StatisticAggregation","description":"Average lost DTLS packets per day over the analysis period, based on DTLS sequence number."},"lostPacketsRatio":{"type":"number","format":"double","description":"Ratio of DTLS packets lost over the analysis period, based on DTLS sequence number."}}},"HistoryLoraStatistics":{"type":"object","properties":{"messageCount":{"type":"integer","format":"int64","description":"Total number of LoRa messages received over the period."},"snr":{"$ref":"#/components/schemas/StatisticAggregation","description":"Mean 'Signal-to-Noise Ratio' over the period."},"gatewayCount":{"$ref":"#/components/schemas/StatisticAggregation","description":"Mean 'Gateway Count' over the period."},"rssi":{"$ref":"#/components/schemas/StatisticAggregation","description":"Mean 'Received Signal Strength Indication' over the period."},"sf":{"$ref":"#/components/schemas/StatisticAggregation","description":"Mean 'Spreading Factor' over the period."},"joinRequestPerDay":{"$ref":"#/components/schemas/StatisticAggregation","description":"Mean 'Join Request' messages per day over the period."},"joinAcceptPerDay":{"$ref":"#/components/schemas/StatisticAggregation","description":"Mean 'Join Accept' messages per day over the period."},"lostMessagesPerDay":{"$ref":"#/components/schemas/StatisticAggregation","description":"Mean lost messages per day over the period based on LoRaWan frame counter."},"lostMessagesRatio":{"type":"number","format":"double","description":"Lost messages ratio over the period based on LoRaWan frame counter."},"missingJoinAccept":{"type":"boolean","description":"Unbalanced Join Request / Accept ratio over the period."},"tooManyJoinCycles":{"type":"boolean","description":"Too many Join cycles over the period."}}},"HistoryLwm2mStatistics":{"type":"object","properties":{"dtlsStatistics":{"$ref":"#/components/schemas/DtlsStatistics","description":"Statistics on the DTLS protocol."}}},"HistoryTrafficStatistics":{"type":"object","properties":{"messageCountPerDay":{"$ref":"#/components/schemas/StatisticAggregation"}}},"InterfacesAnalysis":{"type":"object","properties":{"interfacesStatus":{"type":"array","items":{"$ref":"#/components/schemas/InterfacesStatus"}},"lora":{"$ref":"#/components/schemas/LoraStatistics"},"lwm2m":{"$ref":"#/components/schemas/Lwm2mStatistics"}}},"InterfacesStatus":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string","description":"Status of the device connectivity for the day. For LoRa connectivity, it is the last connectivity state of the day. MQTT status will be 'ONLINE' if it has been ONLINE once during the day."}}},"LoraDayStatistics":{"type":"object","properties":{"joinRequestCount":{"type":"integer","format":"int32","description":"Number of 'Join Request' messages received on the analysis day."},"joinAcceptCount":{"type":"integer","format":"int32","description":"Number of 'Join Accept' messages received on the analysis day."}}},"LoraStatistics":{"type":"object","properties":{"dayStatistics":{"$ref":"#/components/schemas/LoraDayStatistics","description":"Statistics related to the specific analysis day."},"historyStatistics":{"$ref":"#/components/schemas/HistoryLoraStatistics","description":"Statistics aggregated over the analysis period."}}},"Lwm2mStatistics":{"type":"object","properties":{"historyStatistics":{"$ref":"#/components/schemas/HistoryLwm2mStatistics","description":"Statistics aggregated over the analysis period."}}},"StatisticAggregation":{"type":"object","properties":{"mean":{"type":"number","format":"double"}}},"TrafficAnalysis":{"type":"object","properties":{"statistics":{"$ref":"#/components/schemas/TrafficStatistics","description":"Statistical aggregations of the device's traffic."},"silent":{"type":"boolean","description":"True if the device sent no messages during the analysis period."}}},"TrafficDayStatistics":{"type":"object","properties":{"messageCount":{"type":"integer","format":"int32"}}},"TrafficStatistics":{"type":"object","properties":{"dayStatistics":{"$ref":"#/components/schemas/TrafficDayStatistics"},"historyStatistics":{"$ref":"#/components/schemas/HistoryTrafficStatistics"}}},"FlattenedDeviceAnalysisResult":{"type":"object","properties":{"device":{"type":"string"},"analysis_status":{"type":"string"},"groupPath":{"type":"string"},"msg_per_day":{"type":"number","format":"double"},"pattern":{"type":"string"},"pattern_analysis_end_date":{"type":"string"},"pattern_transition":{"type":"string"},"pattern_transition_trend":{"type":"string"},"pattern_transition_detection_date":{"type":"string"},"cluster":{"type":"string"},"cluster_analysis_end_date":{"type":"string"},"cluster_transition":{"type":"string"},"cluster_transition_trend":{"type":"string"},"cluster_transition_detection_date":{"type":"string"},"last_status":{"type":"string"},"detected_lost_msgs_per_day":{"type":"number","format":"double"},"counter_loss_ratio":{"type":"number","format":"double"},"join_request_per_day":{"type":"number","format":"double"},"join_accept_per_day":{"type":"number","format":"double"},"snr_mean":{"type":"number","format":"double"},"gtw_mean":{"type":"number","format":"double"},"rssi_mean":{"type":"number","format":"double"},"sf_mean":{"type":"number","format":"double"},"too_many_join_cycles":{"type":"boolean"},"missing_join_accept":{"type":"boolean"},"detected_lost_dtls_packet_per_day":{"type":"number","format":"double"},"counter_dtls_loss_ratio":{"type":"number","format":"double"},"statistics_analysis_end_date":{"type":"string"},"days_used_for_statistics_analysis":{"type":"integer","format":"int32"}}},"AnalyzedPeriod":{"type":"object","properties":{"from":{"type":"string","description":"Start date of the analysis period. yyyy-MM-dd format."},"to":{"type":"string","description":"End date of the analysis period. yyyy-MM-dd format."}}},"ClassificationTransition":{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of the transition."},"trend":{"type":"string","description":"Trend direction of the transition."},"detectionDate":{"type":"string","description":"Date at which the transition was detected. yyyy-MM-dd format (UTC)."}}},"DeviceAnalysisRegularPattern":{"type":"object","properties":{"analyticsRuleId":{"type":"string","description":"Id of the AnalyticsRule this classification belongs to."},"deviceId":{"type":"string","description":"Id of the device."},"silent":{"type":"boolean","description":"True if the device sent no messages during the analyzed period."},"updated":{"type":"string","format":"date-time","description":"Last update timestamp of the classification."},"analyzedPeriod":{"$ref":"#/components/schemas/AnalyzedPeriod","description":"Period over which the classification was computed."},"regularPattern":{"$ref":"#/components/schemas/RegularPatternClassification","description":"Regular pattern classification for the device."},"transition":{"$ref":"#/components/schemas/ClassificationTransition","description":"Transition info in case of a pattern change during the last few weeks.."}}},"RegularPattern":{"type":"object","properties":{"period":{"type":"string","description":"Period of the pattern, use ISO-8601 period definition. E.g. 'PT12H' for a 12 hours period."},"count":{"type":"integer","format":"int32","description":"Number of occurences per period."}}},"RegularPatternClassification":{"type":"object","properties":{"success":{"type":"boolean"},"pattern":{"$ref":"#/components/schemas/RegularPattern","description":"Regular pattern detected for the device."},"score":{"type":"number","format":"double","description":"The score will indicate a level of confidence in the result. It is in [0, 1] interval."},"undetected":{"$ref":"#/components/schemas/UndetectedPattern","description":"Additional information for undetected patterns"}}},"UndetectedPattern":{"type":"object","properties":{"reason":{"type":"string"},"details":{"type":"string"}}},"Cluster":{"type":"object","properties":{"reference":{"type":"integer","format":"int32","description":"Reference identifying the cluster"},"name":{"type":"string","description":"Name of the cluster"},"likenessToCluster":{"type":"number","format":"double","description":"Similarity score indicating how close the device is to the cluster's centroid"}}},"ClusterClassification":{"type":"object","properties":{"success":{"type":"boolean","description":"True if the clustering was successful."},"trainingRunId":{"type":"string","description":"Model against which the device was analyzed"},"learningScore":{"type":"number","format":"double","description":"The score indicates how well the device's traffic was recognized by the model. It is in [0, 1] interval."},"cluster":{"$ref":"#/components/schemas/Cluster","description":"Cluster detected for the device."},"undetected":{"$ref":"#/components/schemas/UndetectedCluster","description":"Reason for not detecting for the device."}}},"DeviceAnalysisClusterClassification":{"type":"object","properties":{"analyticsRuleId":{"type":"string","description":"Id of the AnalyticsRule this classification belongs to."},"deviceId":{"type":"string","description":"Id of the device."},"silent":{"type":"boolean","description":"True if the device sent no messages during the analyzed period."},"updated":{"type":"string","format":"date-time","description":"Last update timestamp of the classification."},"analyzedPeriod":{"$ref":"#/components/schemas/AnalyzedPeriod","description":"Period over which the classification was computed."},"clusterClassification":{"$ref":"#/components/schemas/ClusterClassification","description":"AI clustering analysis"},"transition":{"$ref":"#/components/schemas/ClassificationTransition","description":"Transition info in case of a cluster change during the last few weeks.."}}},"UndetectedCluster":{"type":"object","properties":{"reason":{"type":"string"},"details":{"type":"string"}}},"BootstrapMasterEntrySummary":{"type":"object","properties":{"id":{"type":"string","description":"The id of the the bootstrap master entry","example":"mQeAYP"},"name":{"type":"string","description":"User-defined name of the bootstrap master entry","example":"My bootstrap master entry"},"definition":{"$ref":"#/components/schemas/BootstrapMasterEntryDefinition","description":"The bootstrap master entry parameters"},"activity":{"$ref":"#/components/schemas/BootstrapMasterEntryActivity","description":"Information about past Bootstrap sessions"}},"required":["definition","id","name"]},"AlarmRuleSupportedValues":{"type":"object","description":"gives the supported values for alarm configurations","properties":{"type":{"type":"string","description":"specific type of the alarm","example":"messageDeliverySuccessRatio"},"throttle":{"$ref":"#/components/schemas/ThrottleConfigSupportedValues","description":"the supported throttle values"},"trigger":{"$ref":"#/components/schemas/TriggerSupportedValues","description":"the supported trigger values"}},"required":["type"]},"RangeDouble":{"type":"object","properties":{"minimum":{"type":"number","format":"double"},"maximum":{"type":"number","format":"double"}}},"SupportedThreshold":{"type":"object","properties":{"values":{"type":"array","description":"the supported threshold values. Null if a range of values is supported.","example":[25,50,75,90,99],"items":{"type":"number","format":"double"}},"range":{"$ref":"#/components/schemas/RangeDouble","description":"the supported threshold range. Both minimum and maximum values are included in the supported range. Null if a list of values is supported.","example":{"minimum":0,"maximum":100}},"type":{"type":"string","description":"the type of the threshold","enum":["percentage"]}},"required":["type"]},"ThrottleConfigSupportedValues":{"type":"object","properties":{"supportedMuteDurations":{"type":"array","description":"the supported mute durations.","example":["PT6H","PT12H","P1D","P2D"],"items":{"type":"string"}}}},"TriggerConditionSupportedValues":{"type":"object","properties":{"supportedComparisonOperators":{"type":"array","description":"the supported comparison operators","example":["lessThanOrEqualTo"],"items":{"type":"string"}},"supportedThreshold":{"$ref":"#/components/schemas/SupportedThreshold","description":"the supported threshold range"},"supportedEvaluationWindows":{"type":"array","description":"the supported evaluation windows","example":["PT1H","PT24H"],"items":{"type":"string"}}}},"TriggerSupportedValues":{"type":"object","properties":{"condition":{"$ref":"#/components/schemas/TriggerConditionSupportedValues","description":"the supported trigger condition values"}}},"BssRuleInfo":{"type":"object","properties":{"name":{"type":"string"},"displayName":{"type":"string"}}},"ConnectorAccounting":{"type":"object","properties":{"traffic":{"$ref":"#/components/schemas/Traffic"},"inventory":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"properties":{"empty":{"type":"boolean"}}}}},"Decoder":{"type":"object","properties":{"traffic":{"$ref":"#/components/schemas/Traffic"}}},"Inventory":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"properties":{"empty":{"type":"boolean"}}},"MeterGroup":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"properties":{"empty":{"type":"boolean"}}},"MonthMetrics":{"type":"object","properties":{"month":{"type":"string","description":"month in \"YYYY-MM\" format.","example":"2019-01"},"connectors":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ConnectorAccounting"},"description":"connector (lora, mqtt, http) statistics"},"services":{"$ref":"#/components/schemas/ServiceMetrics","description":"service statistics"},"devices":{"$ref":"#/components/schemas/Inventory","description":"device statistics"}}},"OfferAndOptions":{"type":"object","properties":{"offer":{"$ref":"#/components/schemas/BssRuleInfo","description":"name","example":"Discover_OFR_v2.2"},"options":{"type":"array","description":"displayName","example":"Discover","items":{"$ref":"#/components/schemas/BssRuleInfo"}}}},"ServiceMetrics":{"type":"object","properties":{"deviceManagement":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"properties":{"empty":{"type":"boolean"}}},"storage":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"properties":{"empty":{"type":"boolean"}}},"twin":{"$ref":"#/components/schemas/Twin"},"decoder":{"$ref":"#/components/schemas/Decoder"}}},"TenantExternalView":{"type":"object","properties":{"id":{"type":"string","description":"tenant Id","example":"57ed0a98266e260a12345"},"name":{"type":"string","description":"tenant name","example":"Tenant-test"},"offerAndOptions":{"$ref":"#/components/schemas/OfferAndOptions","description":"detailed list of offer and options","example":{"offer":{"name":"Discover_OFR_v2.2","displayName":"Discover"},"options":[{"name":"option_name","displayName":"option_display_name"}]}},"properties":{"type":"object","additionalProperties":{"type":"string"},"description":"tenant properties","example":{"diseId":"12345678"}}}},"TenantMonthsMetrics":{"type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantExternalView"},"months":{"type":"array","description":"Statistics per month","example":[{"month":"2022-01","connectors":{"lora":{"traffic":{"in":{"msg":54395,"bytes":572827,"msgAckRequest":1},"out":{"msg":100,"bytes":2858}},"inventory":{"numberOfCommunicatingNodes":36,"numberOfActivatedNodes":65,"numberOfActivatedLocationNodes":30,"numberOfActivatedAckUlNodes":5}},"mqtt":{"traffic":{"in":{"msg":45000,"virtualMsg":45000,"bytes":1120000},"out":{"msg":35220,"virtualMsg":35220,"bytes":18373042}},"inventory":{"numberOfCommunicatingNodes":2}},"mqttApplication":{"traffic":{"in":{"msg":4500,"virtualMsg":4500,"bytes":112000}}},"external":{"traffic":{"in":{"msg":2,"virtualMsg":2,"bytes":20},"out":{"msg":1,"virtualMsg":1,"bytes":100}},"inventory":{"numberOfCommunicatingNodes":1}},"http":{"traffic":{"in":{"msg":359,"virtualMsg":359,"bytes":167457}}},"sms_20259":{"traffic":{"in":{"msg":10,"virtualMsg":10,"bytes":1100},"out":{"msg":1,"virtualMsg":1,"bytes":10}},"inventory":{"numberOfCommunicatingNodes":1}},"lwm2m":{"traffic":{"in":{"msg":55425,"virtualMsg":55425,"bytes":2155073},"out":{"msg":2488,"virtualMsg":2777,"bytes":1490326}},"inventory":{"numberOfCommunicatingNodes":4}}},"services":{"deviceManagement":{"numberOfSuccessfulDownloads":123},"storage":{"storedDataMessagesInMB":456},"twin":{"traffic":{"in":{"virtualMsg":30647}}}},"devices":{"numberOfRegisteredDevices":70}},{"month":"2022-02","connectors":{"lora":{"traffic":{"in":{"msg":42716,"bytes":493582,"msgAckRequest":2},"out":{"msg":77,"bytes":1474}},"inventory":{"numberOfCommunicatingNodes":39,"numberOfActivatedNodes":71,"numberOfActivatedLocationNodes":30,"numberOfActivatedAckUlNodes":5}},"mqtt":{"traffic":{"out":{"msg":43229,"virtualMsg":43229,"bytes":23198520}}},"mqttApplication":{"traffic":{"in":{"msg":4322,"virtualMsg":4322,"bytes":2319852}}},"http":{"traffic":{"in":{"msg":1085,"virtualMsg":1085,"bytes":545462}}}},"services":{"deviceManagement":{"numberOfSuccessfulDownloads":100},"storage":{"storedDataMessagesInMB":567},"twin":{"traffic":{"in":{"virtualMsg":2658}}}},"devices":{"numberOfRegisteredDevices":70}}],"items":{"$ref":"#/components/schemas/MonthMetrics"}}}},"Traffic":{"type":"object","properties":{"in":{"type":"object","additionalProperties":{"type":"integer","format":"int64"},"properties":{"empty":{"type":"boolean"}}},"out":{"$ref":"#/components/schemas/MeterGroup"}}},"Twin":{"type":"object","properties":{"traffic":{"$ref":"#/components/schemas/Traffic"}}},"DayMetrics":{"type":"object","properties":{"day":{"type":"string","description":"day in \"YYYY-MM-DD\" format.","example":"2020-04-01"},"connectors":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/ConnectorAccounting"},"description":"connector (lora, mqtt, http) statistics"},"services":{"$ref":"#/components/schemas/ServiceMetrics","description":"service statistics"},"devices":{"$ref":"#/components/schemas/Inventory","description":"device statistics"}}},"TenantDaysMetrics":{"type":"object","properties":{"tenant":{"$ref":"#/components/schemas/TenantExternalView"},"days":{"type":"array","description":"Statistics per day","example":[{"day":"2022-04-01","connectors":{"lora":{"traffic":{"in":{"msg":54395,"bytes":572827,"msgAckRequest":1},"out":{"msg":100,"bytes":2858}},"inventory":{"maxNumberOfEnabledNodes":30}},"mqtt":{"traffic":{"in":{"msg":45000,"virtualMsg":45000,"bytes":1120000},"out":{"msg":35220,"virtualMsg":35220,"bytes":18373042}}},"mqttApplication":{"traffic":{"in":{"msg":4500,"virtualMsg":4500,"bytes":112000}}},"external":{"traffic":{"in":{"msg":2,"virtualMsg":2,"bytes":20},"out":{"msg":1,"virtualMsg":1,"bytes":100}}},"http":{"traffic":{"in":{"msg":359,"virtualMsg":359,"bytes":167457}}},"sms_20259":{"traffic":{"in":{"msg":10,"virtualMsg":10,"bytes":1100},"out":{"msg":1,"virtualMsg":1,"bytes":10}}}},"services":{"deviceManagement":{"numberOfSuccessfulDownloads":123},"storage":{"storedDataMessagesInMB":456},"twin":{"traffic":{"in":{"virtualMsg":30647}}}},"devices":{"numberOfRegisteredDevices":70}},{"day":"2022-04-02","connectors":{"lora":{"traffic":{"in":{"msg":42716,"bytes":493582},"out":{"msg":77,"bytes":1474}},"inventory":{"maxNumberOfEnabledNodes":29}},"mqtt":{"traffic":{"out":{"msg":43229,"virtualMsg":43229,"bytes":23198520}}},"mqttApplication":{"traffic":{"in":{"msg":4322,"virtualMsg":4322,"bytes":2319852}}},"http":{"traffic":{"in":{"msg":1085,"virtualMsg":1085,"bytes":545462}}},"lwm2m":{"traffic":{"in":{"msg":1994,"virtualMsg":1994,"bytes":607042},"out":{"msg":19,"virtualMsg":19,"bytes":5}}}},"services":{"deviceManagement":{"numberOfSuccessfulDownloads":100},"storage":{"storedDataMessagesInMB":567},"twin":{"traffic":{"in":{"virtualMsg":2658}}}},"devices":{"numberOfRegisteredDevices":70}}],"items":{"$ref":"#/components/schemas/DayMetrics"}}}},"WhoAmiInfo":{"type":"object","description":"identifier of tenant account ex: \"57xxxxxxxxxxxxxxxxxxxxxx\". Expected identifier (max 24 characters)","properties":{"content":{"type":"string","description":"identifier of tenant account ex: \"57xxxxxxxxxxxxxxxxxxxxxx\". Expected identifier (max 24 characters)"}}},"PageableUserForList":{"type":"object","properties":{"page":{"type":"integer","format":"int64","description":"number of the current page: starts at 0.","example":0},"size":{"type":"integer","format":"int64","description":"number of data per page (= maximum number of data in the associated list of data:the last page can have less data)","example":1},"totalCount":{"type":"integer","format":"int64","description":"total count of data in the complete list.","example":1},"data":{"type":"array","description":"list of data in this page.","items":{"$ref":"#/components/schemas/UserForList"}}},"required":["data","page","size","totalCount"]},"UserForList":{"type":"object","description":"body of user data","properties":{"id":{"type":"string","description":"identifier of user","example":"57FFFFFFFFFFFFFFFFFFFFFF"},"login":{"type":"string","description":"user login","example":"MyLoginName"},"externalIdentity":{"$ref":"#/components/schemas/ExternalIdentity"},"email":{"type":"string","description":"user email","example":"me.name@mycompagny.mycom"},"tenantId":{"type":"string","description":"identifier of tenant account this user will belong to","example":"51FFFFFFFFFFFFFFFFFFFFFF"},"roles":{"type":"array","description":"list of user associated roles.","example":["USER_R","APIKEY_R"],"items":{"type":"string"},"uniqueItems":true},"state":{"type":"string","description":"user state : disabled, enabled or suspended","example":"enabled"},"lastAuthentication":{"type":"integer","format":"int64","description":"user last authentication timestamp in ms","example":1475224200000},"lastResetPassword":{"type":"integer","format":"int64","deprecated":true,"description":"user last password renewal operation timestamp in ms. (deprecated, please use unitary get instead)","example":1475224200000},"passwordExpiration":{"type":"integer","format":"int64","deprecated":true,"description":"user password expiration timestamp in ms. (deprecated, please use unitary get instead)","example":1475224200000},"language":{"type":"string","description":"the user language, in ISO 639-1 format","example":"en"},"portalData":{"description":"user portal data"},"mainUser":{"type":"boolean","description":"user is the tenant's main user"}},"required":["email","id","login","roles","state","tenantId"]},"FifoTopic":{"type":"object","description":"body of FIFO data","properties":{"name":{"type":"string","description":"Topic name of the FIFO","example":"MyFIFOName"},"messages":{"type":"integer","format":"int64","description":"Number of message stored"},"messageBytes":{"type":"integer","format":"int64","description":"Total number of bytes stored"},"messageUnacknowledged":{"type":"integer","format":"int64","description":"Total number of bytes of unacknowledged messages"},"messageUnacknowledgedBytes":{"type":"integer","format":"int64","description":"Total number of bytes of unacknowledged messages"},"consumers":{"type":"integer","format":"int64","description":"Number of active consumers"},"maxLengthBytes":{"type":"integer","format":"int64","description":"Deprecated. Always returns -1."},"messageTtl":{"type":"integer","format":"int32","description":"Deprecated. This value has no impact anymore.The TTL is now managed by the actionPolicy's fifoPublish action that targets this FIFO : if 'noRetention' is enabled, TTL is 0 else, it will be your offer's recovery duration."}},"required":["name"]},"PageableFifoTopic":{"type":"object","properties":{"page":{"type":"integer","format":"int64","description":"number of the current page: starts at 0.","example":0},"size":{"type":"integer","format":"int64","description":"number of data per page (= maximum number of data in the associated list of data:the last page can have less data)","example":1},"totalCount":{"type":"integer","format":"int64","description":"total count of data in the complete list.","example":1},"data":{"type":"array","description":"list of data in this page.","items":{"$ref":"#/components/schemas/FifoTopic"}}},"required":["data","page","size","totalCount"]},"AdminInfo":{"type":"object","properties":{"businessUnit":{"$ref":"#/components/schemas/BusinessUnit"},"vendor":{"$ref":"#/components/schemas/AdminInfoVendor"},"country":{"type":"string"},"supportVendorIds":{"type":"array","items":{"type":"string"},"uniqueItems":true}}},"AdminInfoVendor":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"BusinessUnit":{"type":"object","properties":{"name":{"type":"string"}}},"SettingsSection":{"type":"object","description":"Setting sections","properties":{"content":{"description":"content","example":{"enabled":false}},"revision":{"type":"integer","format":"int32","description":"revision","example":2},"version":{"type":"string","description":"version","example":"v1"}}},"Tenant":{"type":"object","properties":{"id":{"type":"string"},"adminInfo":{"$ref":"#/components/schemas/AdminInfo"},"name":{"type":"string"},"accountType":{"type":"string","enum":["ADMIN","VENDOR","CUSTOMER"]},"siret":{"type":"string"},"userSettings":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SettingsSection"}},"offerSettings":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SettingsSection"}},"technicalSettings":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SettingsSection"}},"masterApiKeyId":{"type":"string"},"mainUserId":{"type":"string"},"tags":{"type":"array","items":{"type":"string"},"uniqueItems":true},"creationTs":{"type":"integer","format":"int64"},"properties":{"type":"object","additionalProperties":{"type":"string"}},"deletionTs":{"type":"integer","format":"int64"},"identityProvider":{"type":"string","deprecated":true},"activationTs":{"type":"integer","format":"int64"},"deactivationTs":{"type":"integer","format":"int64"},"status":{"type":"string"},"parentId":{"type":"string","deprecated":true},"country":{"type":"string"}}},"PageableResource":{"type":"object","properties":{"page":{"type":"integer","format":"int64","description":"number of the current page: starts at 0.","example":0},"size":{"type":"integer","format":"int64","description":"number of data per page (= maximum number of data in the associated list of data:the last page can have less data)","example":1},"totalCount":{"type":"integer","format":"int64","description":"total count of data in the complete list.","example":1},"data":{"type":"array","description":"list of data in this page.","items":{"$ref":"#/components/schemas/Resource"}}},"required":["data","page","size","totalCount"]},"PageableResourceVersion":{"type":"object","properties":{"page":{"type":"integer","format":"int64","description":"number of the current page: starts at 0.","example":0},"size":{"type":"integer","format":"int64","description":"number of data per page (= maximum number of data in the associated list of data:the last page can have less data)","example":1},"totalCount":{"type":"integer","format":"int64","description":"total count of data in the complete list.","example":1},"data":{"type":"array","description":"list of data in this page.","items":{"$ref":"#/components/schemas/ResourceVersion"}}},"required":["data","page","size","totalCount"]},"MetadataResourceConnectors":{"type":"object","properties":{"mandatory":{"type":"array","description":"the mandatory connector metadata","items":{"type":"string"},"uniqueItems":true},"optional":{"type":"array","description":"the optional connector metadata","items":{"type":"string"},"uniqueItems":true}}},"GeozoneContainer":{"type":"object","properties":{"description":{"type":"string","description":"Description of the geozone"},"properties":{"type":"object","additionalProperties":{},"description":"Properties of the geozone you can add to ease managing them"},"geometry":{"$ref":"#/components/schemas/Polygon","description":"Coordinates of the GeoZone"},"tags":{"type":"array","description":"Tags of the geozone you can add to ease managing them","items":{"type":"string"}},"zoneId":{"type":"string","minLength":1}},"required":["geometry","zoneId"]},"PageableContextContainer":{"type":"object","properties":{"page":{"type":"integer","format":"int64","description":"number of the current page: starts at 0.","example":0},"size":{"type":"integer","format":"int64","description":"number of data per page (= maximum number of data in the associated list of data:the last page can have less data)","example":1},"totalCount":{"type":"integer","format":"int64","description":"total count of data in the complete list.","example":1},"data":{"type":"array","description":"list of data in this page.","items":{"$ref":"#/components/schemas/ContextContainer"}}},"required":["data","page","size","totalCount"]},"ActivityState":{"type":"object","description":"defines the current activity state of a specific device and a specific activity rule","properties":{"deviceId":{"type":"string","description":"id of the targeted device"},"activityRule":{"$ref":"#/components/schemas/ActivityRule","description":"ActivityRule triggering this state"},"nextAlarm":{"type":"string","format":"date-time","description":"timestamp (ISO 8601) of the next alarm for this rule if the device remains silent"},"lastActivity":{"type":"string","format":"date-time","description":"timestamp (ISO 8601) of the last registered contact of the device"},"state":{"type":"string","description":"current state of the device","enum":["UNKNOWN","SILENT","ACTIVE"]},"numberOfAlarmReminders":{"type":"integer","format":"int32","description":"number of times a reminder has been sent for the current state"}},"required":["activityRule","deviceId","nextAlarm","numberOfAlarmReminders","state"]},"PageableCampaign":{"type":"object","properties":{"page":{"type":"integer","format":"int64","description":"number of the current page: starts at 0.","example":0},"size":{"type":"integer","format":"int64","description":"number of data per page (= maximum number of data in the associated list of data:the last page can have less data)","example":1},"totalCount":{"type":"integer","format":"int64","description":"total count of data in the complete list.","example":1},"data":{"type":"array","description":"list of data in this page.","items":{"$ref":"#/components/schemas/Campaign"}}},"required":["data","page","size","totalCount"]},"CampaignOperationState":{"type":"object","properties":{"started":{"type":"string","format":"date-time","description":"Date when the operation was started","example":"2017-07-19T09:23:11Z"},"updated":{"type":"string","format":"date-time","description":"Date when the operation status was updated for the last time","example":"2017-07-19T09:23:11Z"},"ended":{"type":"string","format":"date-time","description":"Date when the operation was finished","example":"2017-07-19T09:23:11Z"},"action":{"type":"string","description":"Type of operation","enum":["configure","command","resource","resource-update","twin-operation","twin-add-observation","twin-clear-observations"],"example":"configure"},"error":{"$ref":"#/components/schemas/CampaignOperationStateError","description":"Optional error associated to the current underlying operation"},"operationStatus":{"type":"string","description":"Current status returned by the underlying operation","example":"processed"},"operationId":{"type":"string","description":"Optional identifier associated to the current underlying operation (e.g. commandId,...)","example":"command-1234"},"currentRetry":{"type":"integer","format":"int32","description":"Optional current number of retries made for the operation","example":2}},"required":["action"]},"CampaignOperationStateError":{"type":"object","properties":{"origin":{"type":"string","description":"Optional error origin associated to the current underlying operation","example":"DEVICE"},"code":{"type":"string","description":"Optional error code associated to the current underlying operation","example":"ASSET_ORIGINATED_ERROR"},"deviceCode":{"type":"string","description":"Optional device originated error code associated to the current underlying operation","example":"DEV123.Z_FIRMW_CRC"},"details":{"type":"string","description":"Optional device originated error details associated to the current underlying operation","example":"Invalid firmware CRC"}}},"CampaignPerTarget":{"type":"object","properties":{"device":{"type":"string","description":"Device identifier","example":"lo:nsid:sensor:4525121"},"status":{"type":"string","description":"Global status of the sequence of operations","enum":["notStarted","pending","inProgress","success","failure"],"example":"success"},"created":{"type":"string","format":"date-time","description":"Date from when the campaign was created","example":"2017-07-19T09:23:11Z"},"updated":{"type":"string","format":"date-time","description":"Date from when the campaign was last time updated","example":"2017-07-19T09:23:11Z"},"operations":{"type":"array","description":"State of every operation of the campaign for this device","items":{"$ref":"#/components/schemas/CampaignOperationState"}}},"required":["created","device","operations","status","updated"]},"PageableCampaignPerTarget":{"type":"object","properties":{"page":{"type":"integer","format":"int64","description":"number of the current page: starts at 0.","example":0},"size":{"type":"integer","format":"int64","description":"number of data per page (= maximum number of data in the associated list of data:the last page can have less data)","example":1},"totalCount":{"type":"integer","format":"int64","description":"total count of data in the complete list.","example":1},"data":{"type":"array","description":"list of data in this page.","items":{"$ref":"#/components/schemas/CampaignPerTarget"}}},"required":["data","page","size","totalCount"]},"PayloadDescription":{"type":"object","properties":{"id":{"type":"string","description":"id of the decoder. Should be null when used for POST. Required for update."},"encoding":{"type":"string","description":"unique decoder name. Will be used to trigger the decoding function. To be applied, it must match exactly the data message 'metadata.encoding' field or the 'encoding' property of the device's interface."},"enabled":{"type":"boolean","description":"decoder activation. Default is false. If disabled, the decoder will not be applied on the data messages."},"model":{"type":"string","description":"if empty, the decoded data will use the value of 'model' field from encoded data. If set, this value will be used to override 'model' field in decoded data."},"type":{"type":"string","description":"decoder type : csv, binary, javascript, javascript-split","readOnly":true},"template":{"type":"string","description":"decoding result optional template. Use mustache-like format. Available mustache functions : math, toUpperCase, toLowerCase. e.g. '{{#math}}{{temperature}} * 1.8 + 32{{/math}}'The template will be applied on the decoded result only if the decoder is enabled and the decoding is successful. If not set, the decoded result will be used as is."},"mathEvalEnabled":{"type":"boolean","description":"Applying, or not, math evaluation on templated decoded result. Default is true"},"tags":{"type":"array","description":"tags used for description and filtering","items":{"type":"string"}},"metadata":{"$ref":"#/components/schemas/PayloadDescriptionMetadata","description":"decoder metadata. Read-only, set by the platform.","readOnly":true},"updated":{"type":"string","description":"date of the last update. ISO 8601 date time. Read-only, set by the platform.","example":"2019-05-15T07:55:55.555Z","readOnly":true}},"required":["enabled","encoding"]},"CaCertificate":{"type":"object","properties":{"id":{"type":"string"},"certificate":{"type":"string"},"comment":{"type":"string"},"expires":{"type":"string","format":"date-time"}},"required":["certificate","comment"]},"AuditLogMessage":{"type":"object","description":"a log message that described a functional event","properties":{"timestamp":{"type":"string","description":"timestamp of the log message. ISO 8601 date time.","example":"2016-08-24T10:32:52.598Z"},"level":{"type":"string","description":"level of the log message","enum":["info","error"]},"category":{"type":"string","description":"category of the log message","enum":["connectivity","data","device_management","notification"],"example":"connectivity"},"subcategory":{"type":"string","description":"subcategory of the log message.","enum":["lora","mqtt","sms","lwm2m","http","azure","email","fifo","logs","pipeline","storage","event_processing","commands","firmware_upgrade","configuration","campaigns"],"example":"lora"},"type":{"type":"string","description":"specific type of the log message.","enum":["http_push_result","azure_event_hubs_result","logs_info, mqtt_debug_logs","lora_network","lora_gateway","indexing_result","contact_message_result","data_pipeline_status","data_decoding_status","insufficient_quota","rate_limit_reached","twin_report","lwm2m_device_log","lwm2m_bootstrap_entry_log"],"example":"http_push_result"},"source":{"$ref":"#/components/schemas/Source","description":"source of the log message"},"description":{"type":"string","description":"high level description of the log message"},"detailedDescription":{"type":"string","description":"detailed description of log the message"},"content":{"description":"log message's specific content"},"created":{"type":"string","description":"date of storage of the log message. ISO 8601 date time.","example":"2016-08-24T10:32:52.598Z"}},"required":["category","created","description","level","subcategory","timestamp","type"]},"Source":{"type":"object","properties":{"deviceId":{"type":"string"},"nodeId":{"type":"string"},"connector":{"type":"string"},"campaignId":{"type":"string"},"actionPolicyId":{"type":"string"},"pipelineId":{"type":"string"},"eventProcessingRuleId":{"type":"string"},"gatewayId":{"type":"string"},"encoding":{"type":"string"}}},"PageableApiKey":{"type":"object","properties":{"page":{"type":"integer","format":"int64","description":"number of the current page: starts at 0.","example":0},"size":{"type":"integer","format":"int64","description":"number of data per page (= maximum number of data in the associated list of data:the last page can have less data)","example":1},"totalCount":{"type":"integer","format":"int64","description":"total count of data in the complete list.","example":1},"data":{"type":"array","description":"list of data in this page.","items":{"$ref":"#/components/schemas/ApiKey"}}},"required":["data","page","size","totalCount"]}},"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."}}}}}},"x-examples":""}