openapi: 3.2.0
info:
title: Live Objects REST API Guide Device management - Resources management API
description: API description for Live Objects service
contact:
name: Live Objects Support
url: https://liveobjects.orange-business.com/#/cms/support
version: 2026.7.0
servers:
- url: https://liveobjects.orange-business.com
security:
- X-API-KEY: []
OAuth2.0: []
tags:
- name: Device management - Resources management
description: Resources management and firmware
paths:
/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.
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.
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.
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.
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/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.
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.
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/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 ([\w\-]{1,128}) (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'
components:
schemas:
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
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
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
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
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
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
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 $.. Invalid Metadata names are : ''class'', ''_class''. Metadata value max length is 255. Optional metadata key ''secured'': controls the transfer protocol for firmware download. Value ''true'' generates HTTPS URL, ''false'' 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'
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 ([\w\-]{1,128}) (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 $.. Invalid Metadata names are : ''class'', ''_class''. Metadata value max length is 255. Optional metadata key ''secured'': controls the transfer protocol for firmware download. Value ''true'' generates HTTPS URL, ''false'' or absent generates HTTP URL (default). Supported by http-updater connector only.'
example:
secured: 'true'
required:
- resourceId
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 ([\w\-]{1,128}) (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 $.. Invalid Metadata names are : ''class'', ''_class''. Metadata value max length is 255. Optional metadata key ''secured'': controls the transfer protocol for firmware download. Value ''true'' generates HTTPS URL, ''false'' 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
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
securitySchemes:
X-API-KEY:
type: apiKey
name: X-API-KEY
in: header
OAuth2.0:
type: oauth2
flows:
authorizationCode:
authorizationUrl: https://liveobjects.orange-business.com/api/v1/oauth2/authorize
tokenUrl: https://liveobjects.orange-business.com/api/v1/oauth2/token
refreshUrl: https://liveobjects.orange-business.com/api/v1/oauth2/token
scopes:
API_KEY_R: Read parameters and status of an API key.
API_KEY_W: Create, modify, disable an API key.
BOOTSTRAP_R: Read parameters and status of the LwM2M Bootstrap configurations and entries.
BOOTSTRAP_W: Create ans modify LwM2M Bootstrap configurations and entries.
BUS_CONFIG_R: Read config parameters of a FIFO queue.
BUS_CONFIG_W: Create, modify a FIFO queue.
BUS_R: Read data on the Live Objects bus. Minimum permission for the API key of an application collecting data on Live Objects in MQTT(s).
BUS_W: Publish data on the Live Objects bus.
CAMPAIGN_R: Read parameters and status of a massive deployment campaign on your Device Fleet.
CAMPAIGN_W: Create, modify a campaign on your Device Fleet.
CONNECTOR_ACCESS: Role to set on a external connector API key to allow only MQTT external connector mode
DATA_PROCESSING_R: Read parameters and status of an event processing rule or a Data decoder.
DATA_PROCESSING_W: Create, modify, disable an event processing rule or a Data decoder.
DATA_R: Read the data collected by the Store Service or search into this data using the Search Service.
DATA_W: Insert a data record to the Store Service. Minimum permission required for the API key of a device pushing data to Live Objects in HTTPS.
DEVICE_ACCESS: Role to set on a Device API key to allow only MQTT Device mode
DEVICE_R: Read parameters and status of a Device management.
DEVICE_W: Create, modify, disable a Device management, send command, modify config, update resource of a Device.
LOGS_R: Read the logs collected by the Audit Log service. This right allows users to use the Audit Log service as debugging tool.
SETTINGS_R: Read the tenant account custom settings.
SETTINGS_W: Create, modify tenant account custom settings.
USER_R: Read parameters and status of a user.
USER_W: Create, modify, disable a user.
externalDocs:
description: Live Objects Developer Guide
url: https://liveobjects.orange-business.com/doc/html/lo_manual_v2.html
x-examples: ''