The embedded application model defines how AirVantage
can interact with an embedded application deployed on a
system. It can be seen as a "contract" defining the general terms
of communication between the embedded application and the
AirVantage: which data am I supposed to send you, how,
when
Read only fields are computed by AirVantage and can
only be seen on response fragments sent by find request.
Field |
Description |
Read Only |
Type |
uid |
Application's uid |
true |
uid |
name |
Application's name. The couple (name, revision) has to
be unique within same company. |
true |
string |
revision |
Application's revision |
true |
string |
type |
Application's type. The couple (type, revision) has to
be unique throughout AirVantage. |
true |
string |
category |
Application's category. Possible values are:
APPLICATION or FIRMWARE |
true |
enum |
state |
Application's state. Possible values are: RELEASED,
PUBLISHED, or DEPRECATED |
true |
enum |
released |
Date time when application was released |
true |
timestamp |
published |
Date time when application was published |
true |
timestamp |
deprecated |
Date time when application was deprecated |
true |
timestamp |
ownerCompany |
[DEPRECATED] The uid of the company who has develop this application.
This field is deprecated and replaced by 'owner'. |
true |
string |
owner |
The company who has develop this application. |
false |
object |
labels |
Applications can be labeled with a list of labels. |
true |
string array |
isReference |
Is the application the reference application for the
application type.
|
false |
boolean |
isCompanyReference |
Is the application the reference application for the
application type and the context company.
|
false |
boolean |
isPublic |
Is the application public |
false |
boolean |
applicationManager |
Define the application manager in charge of the
lifecycle of this application (install, start, stop...). These
ApplicationManagers are predefined in AirVantage.
Known applications managers are: ALEOS_NUCLEUS, ALEOS_LINUX,
ALEOS_LINUX_WITH_RM, FIRM_IDS, SOFT_IDS, READYAGENT_APPCON,
MIHINI_APPCON, MIHINI_ASSET_INSTALL, AIRCARD_FW, UNKNOWN.
|
false |
enum |
This is a complete representation of an Application.
{
"uid": "",
"name": "",
"revision": "",
"type": "",
"category": "",
"state": "",
"released": ,
"published": ,
"deprecated": ,
"isReference": ,
"isCompanyReference": ,
"isPublic" : ,
"labels": [],
"applicationManager": "",
"owner" : {
"uid": "",
"name": "",
}
}
/api/v1/applications
Creates a new application definition with general information. Name, revision and type are required fields
Request
POST https://na.airvantage.net/api/v1/applications
Content-Type: application/json
...
// With content:
{
"name": "APPLICATION_NAME",
"revision": "APPLICATION_REV",
"type": "test",
"labels": [],
"applicationManager": "FIRM_IDS"
}
Response
200 OK
{
"uid":"649ce921536043cd96c538c36367e017",
"name":"APPLICATION_NAME",
"revision":"APPLICATION_REV",
"type":"APPLICATION_TYPE",
"category":"FIRMWARE",
"state":"RELEASED",
"released":1366031971065,
"published":false,
"deprecated":false,
"labels":[],
"applicationManager":"FIRM_IDS",
"isReference":false,
"isPublic":false,
"owner" : {
"uid":"1",
"name":"Sierra Wireless"
}
}
Name |
Description |
Use |
Default |
Type |
company |
The owner company. |
optional |
caller's company |
uid |
The content must looks like the one specified in the overview.
However, some fields have specific behaviors. Here you can
find the list of these fields with detailed information.
Field |
Description |
Use |
Default |
Type |
name |
The name of the application. |
required |
|
string |
revision |
The revision of the application. |
required |
|
string |
type |
The type of the application. |
required |
|
string |
labels |
The labels to link ot the application |
optional |
|
-- |
applicationManager |
The application manager of the application. |
optional |
UNKNOWN |
string |
Name |
Description |
application.missing.name |
Raised when no name has been specified. |
application.missing.type |
Raised when no type has been specified. |
application.missing.revision |
Raised when no revision has been specified. |
application.type.already.used |
Raised when application type has been already declared in another company. |
application.type.revision.not.unique |
Raised when application type/revision already already exists. |
application.name.revision.not.unique |
Raised when application name/revision already exist in the current company |
HTTP Method |
POST |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.create |
/api/v1/applications
Returns a paginated list of
application with their complete details.
It is possible to restrain the result list using criteria
parameters.
The fields parameter has to be defined in order to specify
the attributes of the application that will be returned.
If fields
parameter is missing, only the following attributes of the
application are returned : uid, name, revision, type,
category, state, released, published, deprecated.
More information about paging, filtering, and sorting here
Request
GET https://na.airvantage.net/api/v1/applications?fields=uid,name,revision,type,category,state
Response
200 OK
{
"items": [ {
"uid": "08fc7db9841945df8ffa647165bb57e6",
"name": "ALEOS GX400",
"revision": "4.2.5.005",
"type": "ALEOS.PROD.12",
"category": "FIRMWARE",
"state": "RELEASED"
}],
"count": 1,
"size": 1,
"offset": 0
}
Name |
Description |
Use |
Default |
Type |
Operand |
uid |
Return application whose uid match with the specified
id. |
optional |
null |
uid |
= |
state |
Returns all applications in a given state. States are
RELEASED, PUBLISHED, DEPRECATED |
optional |
null |
string |
= |
revision |
Return all applications whose revision contains the
given string. |
optional |
null |
string |
like |
type |
Return all applications whose type equals the given
string. |
optional |
null |
string |
like |
name |
Return all applications whose name contains the given
string. |
optional |
null |
string |
like |
category |
[DEPRECATED] Use 'categories' instead.
Return all applications whose category matches the
given string. Categories are : APPLICATION, FIRMWARE, FIRMWARE_COMPONENT, BUNDLE |
optional |
null |
string |
equals ignore case |
categories |
Return all applications whose category matches the
given strings. Categories are : APPLICATION, FIRMWARE, FIRMWARE_COMPONENT, BUNDLE |
optional |
null |
string array |
in ignore case |
labels |
Return all applications labeled as the specified
string. Several labels can be set. |
optional |
null |
string array |
in |
releasedAfter |
Return all applications released after the given date.
The specified date is included. |
optional |
null |
timestamp |
>= |
releasedBefore |
Return all applications released before the given
date. The specified date is included. |
optional |
null |
timestamp |
<= |
applicationManager |
Return applications related to a specific application
manager. |
optional |
null |
string |
= |
company |
Set the context company. |
optional |
caller's company |
uid |
= |
isReference |
Return reference/not reference applications. |
optional |
null |
boolean |
= |
isPublic |
Return public/not public applications added to the context company. |
optional |
null |
boolean |
= |
owner |
Returns all applications whose the owner company matches the specified criteria.
The possible criteria are :
- uid (exact match)
- name (like)
|
optional |
null |
string map with the following format:
uid:xxx,name:xxx,... |
See description |
HTTP Method |
GET |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.view |
Order By |
name, revision |
Fields |
uid, name, revision, type, category, state, released,
published, deprecated, owner, applicationManager,
labels, isPublic, isReference, isCompanyReference |
/api/v1/applications/public
Get the list of public applications. Please refer to Find.
Notice that public applications cannot be found by label.
/api/v1/applications/{uid}/validation
Validates the application model and
configuration. Errors or warnings are raised if any.
Request
GET https://na.airvantage.net/api/v1/applications/6500ee29f8ed4e3991dff484b3ce3e73/validation
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/json
...
{
"errors": [ {
"message": "invalid.communicating.application.dependency",
"params": ["unknonwAppName"]
}],
"warnings": []
}
Name |
Description |
Use |
Default |
Type |
company |
Set the context company. |
optional |
caller's company |
uid |
HTTP Method |
GET |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.view |
/api/v1/applications/{uid}/partners
Gets all partners who share the given
application.
Request
GET https://na.airvantage.net/api/v1/applications/app1/partners
...
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/json
...
{
"size": 4,
"offset": 0,
"count": 4,
"items": [
{
"uid": "fa2cce1cf8c64f36a30112d3188e10df",
"name": "gerg",
"profile": {
"uid": "bca1a827a83b4c479d0bfd19682f2bc1",
"name": "Admin"
}
},
{
"uid": "38f153bc47b84cae9c1adf5bdf11e373",
"name": "Leo",
"profile": {
"uid": "bca1a827a83b4c479d0bfd19682f2bc1",
"name": "Admin"
}
},
{
"uid": "aae6b2e2612d49c792f2fd709c8e0f87",
"name": "Leo3",
"profile": {
"uid": "bca1a827a83b4c479d0bfd19682f2bc1",
"name": "Admin"
}
},
{
"uid": "aa21a6bf75f94bbb8b902ac92c26d1b8",
"name": "rerg",
"profile": {
"uid": "bca1a827a83b4c479d0bfd19682f2bc1",
"name": "Admin"
}
}
]
}
Name |
Description |
Use |
Default |
Type |
company |
Set the context company. |
optional |
caller's company |
uid |
Name |
Description |
application.unknown |
The specified uid does not match with any application. |
HTTP Method |
GET |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.view |
/api/v1/applications/{uid}/model
Gets the xml file describing the application. It is the .app
file used in the release process. To read any .cpp files
(include files) instead, caller has to specify it using the includeFile
parameter. Works with public applications.
Request
GET https://na.airvantage.net/api/v1/applications/6500ee29f8ed4e3991dff484b3ce3e73/model
...
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/xml
...
// (xml content)
Name |
Description |
Use |
Default |
Type |
company |
Set the context company. |
optional |
caller's company |
uid |
includeFile |
Retrieve and include file. File name may be with or
without file extension. |
optional |
null |
string |
Name |
Description |
application.missing |
Raised when application is missing. |
application.unknown |
The specified uid does not match with any application. |
application.file.not.found |
The requested file was not found |
HTTP Method |
GET |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.view |
/api/v1/applications/{uid}/communication
Gets all protocols defined in the
communication part of an application model.
Request
GET https://na.airvantage.net/api/v1/applications/6500ee29f8ed4e3991dff484b3ce3e73/communication
...
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/json
...
[
{
"type": "M3DA",
"commIdType" : "SERIAL",
"parameters": {
"security" : "hmac-md5"
"cipher" : "aes-cbc-256"
}
},
{
"type": "OMADM",
"commIdType" : "IMEI",
"parameters": {
"security": "auth_hmac"
}
}
]
Name |
Description |
Use |
Default |
Type |
company |
Set the context company. |
optional |
caller's company |
uid |
Name |
Description |
application.unknown |
The specified uid does not match with any application. |
HTTP Method |
GET |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.view |
/api/v1/applications/{uid}/data
Gets the data definitions tree (settings,
variables, commands, and events) of a given application.
Request
GET https://na.airvantage.net/api/v1/applications/6500ee29f8ed4e3991dff484b3ce3e73/data?dataTypes=command,variable
Response
200 OK
[
{
"id": "0",
"label": "Gateway",
"description":"The node description",
"elementType": "node",
"encoding": "REST",
"data": [
{
"id": "greenhouse.data.temperature",
"label": "Temperature (°C)",
"description":"The variable description",
"elementType": "variable",
"type": "double"
},
{
"id": "greenhouse.data.servoCommand",
"label": "Open",
"description":"The command description",
"elementType": "command",
"parameters": [
{
"id": "servoCommand",
"defaultValue": "0",
"defaultLabel": "Requested state of roof.",
"type": "int",
"optional": false,
"constraints": {
"length": {
"min": null,
"max": null
},
"bounds": {
"min": 0,
"max": 100
},
"pattern": "[0-9]+",
"enumeration": [
{
"value":"1",
"label":"labe1"
},
{
"value":"2",
"label":"label2"
}
]
}
}
]
},
{
"id": "greenhouse.data.temperatureChanged",
"label": "Temperature changed",
"description":"The variable description",
"elementType": "variable",
"type": "string"
}
]
}
]
Name |
Description |
Use |
Default |
Type |
elementType |
Result list will contain request element types : setting, variable,
event, command, and/or node. |
optional |
null |
string array |
company |
Set the context company. |
optional |
caller's company |
uid |
Name |
Description |
application.unknown |
The specified uid does not match with any application. |
HTTP Method |
GET |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.view |
/api/v1/applications/{uid}/actions
Gets available actions of an
application. Results can be filtered by a given action type.
Request
GET https://na.airvantage.net/api/v1/applications/6500ee29f8ed4e3991dff484b3ce3e73/actions
...
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/json
...
[{
"type": "INSTALL",
"action": "ALEOS_LINUX_INSTALL"
}]
Name |
Description |
Use |
Default |
Type |
type |
Filter results by action type. |
optional |
null |
string |
company |
Set the context company. |
optional |
caller's company |
uid |
Name |
Description |
application.unknown |
The specified uid does not match with any application. |
HTTP Method |
GET |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.view |
/api/v1/applications/{uid}
This service allows to configure an application. It
can be set as a public application and/or mark is as the reference application from all applications of the same type.
The application manager can also be edited.
Request
PUT https://na.airvantage.net/api/v1/applications/6500ee29f8ed4e3991dff484b3ce3e73
...
// with the following content
{
"applicationManager": "FIRM_IDS"
}
...
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/json
...
{
"uid":"649ce921536043cd96c538c36367e017",
"name":"{APPLICATION_NAME}",
"revision":"{APPLICATION_REV}",
"type":"test","category":"FIRMWARE",
"state":"RELEASED",
"released":1366031971065,
"published":null,
"deprecated":null,
"labels":["label1", "label2"],
"applicationManager":"FIRM_IDS",
"isReference":true,
"isPublic":true,
"owner" : {
"uid":"1",
"name":"Sierra Wireless"
}
}
{
"applicationManager": "FIRM_IDS"
}
Field |
Description |
Use |
Default |
Type |
applicationManager |
Set the application manager. |
optional |
null |
string |
Name |
Description |
application.unknown |
The specified uid does not match with any application. |
application.not.published |
Error raised trying to set a not published application as public or reference |
HTTP Method |
PUT |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.edit |
/api/v1/applications/{uid}
Returns detailed information about the specified application.
Request
GET https://na.airvantage.net/api/v1/applications/e061fff752704d23af80c63373631fba
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/json
...
{
"deprecated": null,
"released": 1385566672919,
"published": 1385566701694,
"category": "FIRMWARE",
"applicationManager": "ALEOS_LINUX_WITH_RM",
"isPublic": true,
"isReference": true,
"revision": "4.3.3b.014",
"labels": [],
"ownerCompany": "Sierra Wireless",
"uid": "e061fff752704d23af80c63373631fba",
"owner": {
"uid": "1",
"name": "Sierra Wireless"
},
"type": "ALEOS.PROD.15",
"state": "PUBLISHED",
"name": "ALEOS GX440"
}
Name |
Description |
application.unknown |
The specified uid does not match with any application. |
HTTP Method |
GET |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.view |
/api/v1/applications/{uid}/communication
Edits application's communication protocols that can be used through this application.
Request
PUT https://na.airvantage.net/api/v1/applications/6500ee29f8ed4e3991dff484b3ce3e73/communication
...
// with the following content
[
{
"type" : "OMADM",
"commIdType" : "IMEI",
"parameters" : {
"security" : "auth_hmac"
}
},
{
"type" : "M3DA",
"commIdType" : "SERIAL",
"parameters" : {
"authentication" : "none",
"cipher": "aes-cbc-128"
}
}
]
Response
200 OK
HTTP/1.1 200 OK
Content-Length: 0
[
{
"type" : "MSCI"|"OMADM"|"AWTDA2"|"M3DA"|"REST",
"commIdType" : "SERIAL"|"MAC"|"IMEI",
"parameters" : {"name1" : "value1", "name2": "value2", ...}
},
...
]
Field |
Description |
Use |
Default |
Type |
type |
The supported protocol. Values can be: MSCI, OMADM, AWTDA2, M3DA, REST. |
required |
null |
string |
commIdType |
The communication identifier necessary to establish a connexion to the server. (SERIAL, MAC, IMEI, ...). |
required |
null |
string |
parameters |
see bellow |
see parameters description bellow |
null |
string |
Parameters
Name |
Description |
Allowed values |
sms-binary | Optional for all protocols | true, false |
authentication | Mandatory for M3DA | none, hmac-md5, hmac-sha1 |
cipher | Mandatory for M3DA | none, aes-ctr-256, aes-ctr-128, aes-cbc-256, aes-cbc-128 |
security | Mandatory for OMADM | none, auth_hmac |
Name |
Description |
application.model.protocol.missing.param |
A required protocol parameter is missing. |
application.model.protocol.invalid.param.value |
A protocol parameter value is invalid. |
application.model.protocol.missing.type |
The type of a protocol is missing. |
application.model.protocol.missing.comm.id.type |
The commIdType of a protocol is missing. |
application.unknown |
The specified uid does not match with any application. |
application.linked.to.system |
The application communication can not be update because the specified application is used by one or more systems |
HTTP Method |
PUT |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.edit |
/api/v1/applications/{uid}/data
Edits data definitions for this application.
Definitions have to be structued as a data tree using Node types as top level elements.
In other words, the structure has to begin with a list of Node elements. Notice that encoding is required for those elements.
Top level nodes then declare a list of data which can be of type Variable, Setting, Command, Event, and/or Node.
Request
PUT https://na.airvantage.net/api/v1/applications/6500ee29f8ed4e3991dff484b3ce3e73/data
...
// with the following content
[
{
"id": "0",
"label": "Gateway",
"description": "The node description",
"elementType": "node",
"encoding": "REST",
"data": [
{
"id": "greenhouse.data.temperature",
"label": "Temperature (°C)",
"description": "The variable description",
"elementType": "variable",
"type": "double"
},
{
"id": "greenhouse.data.servoCommand",
"label": "Open",
"description":"The command description",
"elementType": "command",
"parameters": [
{
"id": "servoCommand",
"defaultValue": "0",
"defaultLabel": "Requested state of roof.",
"type": "int",
"optional": false,
"constraints": {
"length": {
"min": null,
"max": null
},
"bounds": {
"min": 0,
"max": 100
},
"pattern": "[0-9]+",
"enumeration": [
{
"value":"1",
"label":"labe1"
},
{
"value":"2",
"label":"label2"
}
]
}
}
]
},
{
"id": "greenhouse.data.temperatureChanged",
"label": "Temperature changed",
"description":"The event description",
"elementType": "event",
"type": "string"
}
]
}
]
Response
200 OK
HTTP/1.1 200 OK
Content-Length: 0
[
{
"id": "data_identifier",
"label": "human_readable_label",
"elementType": "variable|setting|command|event",
"encoding": "protocol_encoding",
"type" : "value_data_type",
"data": [ ... ],
"parameters": [
{
"id": "parameter_id",
"defaultValue": "0",
"defaultLabel": "human_readable_label",
"type": "value_data_type",
"optional": false,
"constraints": {
"length": {
"min": null,
"max": null
},
"bounds": {
"min": 0,
"max": 100
},
"pattern": "any_pattern",
"enumeration": [
{
"value":"1",
"label":"labe1"
},
{
"value":"2",
"label":"label2"
}
]
}
}
]
}
]
Field |
Description |
Use |
Default |
Type |
id |
Identifies data. |
optional (id or path is required) |
|
string |
path |
Identifies data. |
optional (id or path is required) |
|
string |
label |
A human readable label. |
optional |
|
string |
elementType |
Data elements can be variable which are read only values, setting which are read-write values, command which are messages to be sent to the system, event which are read only values sent by the system and cannot be retrieved manually by the user, and node which group other data elements. If elementType is mising then the element block will be ignored. |
required |
|
string |
encoding |
The encoding protocol (MSCI, AWTDA2, M3DA, OMADM, REST). Required only for top level Nodes from the data tree. |
required |
|
string |
type |
DataType of values set on variables, settings, or events. |
required |
|
string |
data |
List of data elements contained by this node. It only make sense for Node elements. |
required |
|
list |
parameters |
List of command parameters to be sent to the system along with the command message. See example above for more details. |
required |
|
list |
Name |
Description |
application.unknown |
The specified uid does not match with any application. |
application.model.data.missing.id |
One of the nodes does not contain id attribute. |
application.model.data.missing.path |
One of the nodes does not contain path attribute. |
application.model.data.missing.encoding |
One of the root nodes does not contain encoding attribute. |
application.model.data.missing.parameter.id |
A command node does not contain parameter id. |
application.model.data.duplicated.id |
Two or more nodes have the same id. |
application.model.data.duplicated.path |
Two or more nodes have the same path. |
application.model.data.unwanted.id |
A root node having a path got one or more child with an id. |
application.model.data.unwanted.path |
A root node having an id got one or more child with a path. |
application.model.data.missing.id.or.path |
A root node does not contain id or path. |
application.model.data.invalid.id.and.path |
A root node contain id and path. |
application.model.invalid.description |
Raised when an element description is too long. |
HTTP Method |
PUT |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.edit |
/api/v1/applications/{uid}/actions
Edit application's actions.
Request
PUT https://na.airvantage.net/api/v1/applications/6500ee29f8ed4e3991dff484b3ce3e73/actions
...
// with the following content
[
{
"action": "ALEOS_LINUX_INSTALL"
},
{
"action": "READYAGENT_DM_CONNECT"
}
]
Response
200 OK
HTTP/1.1 200 OK
Content-Length: 0
[
{
"action": "ALEOS_LINUX_INSTALL|READYAGENT_DM_CONNECT|..."
},
...
]
Field |
Description |
Use |
Default |
Type |
action |
The device management action implementation.
Values can be: ALEOS_LINUX_INSTALL, ALEOS_LINUX_INSTALL_WITH_RM,
ALEOS_REBOOT, ALEOS_CONFIGURE_HEARTBEAT, ALEOS_SYNCHRONIZE, ALEOS_NUCLEUS_INSTALL,
OPENAT_IDS_FW_INSTALL, OPENAT_IDS_SW_INSTALL, OPENAT_IDS_SW_UNINSTALL, OPENAT_IDS_SW_START, OPENAT_IDS_SW_STOP,
OPENAT_IDS_CONNECT, OPENAT_CONFIGURE_HEARTBEAT, OPENAT_AT_COMMAND, OPENAT_SYNCHRONIZE, OPENAT_REBOOT,
READYAGENT_APPCON_INSTALL, READYAGENT_APPCON_UNINSTALL, READYAGENT_APPCON_STOP,
READYAGENT_APPCON_START, READYAGENT_APPCON_STATUS, READYAGENT_DM_CONNECT, READYAGENT_DM_REBOOT,
READYAGENT_DM_SYNCHRONIZE, READYAGENT_CONFIGURE_HEARTBEAT,
MIHINI_APPCON_INSTALL, MIHINI_ASSET_INSTALL, MIHINI_APPCON_UNINSTALL, MIHINI_APPCON_STOP,
MIHINI_APPCON_START, MIHINI_APPCON_STATUS, MIHINI_DM_CONNECT, MIHINI_DM_REBOOT, MIHINI_DM_SYNCHRONIZE,
MIHINI_DM_RESET, MIHINI_CONFIGURE_HEARTBEAT |
required |
null |
string |
Name |
Description |
application.unknown |
The specified uid does not match with any application. |
HTTP Method |
PUT |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.edit |
/api/v1/applications/{uid}
Deletes an application owned by your company or remove from your repository if the application is owned by another company.
This action can only be performed if the application is not used by any systems.
Request
DELETE https://na.airvantage.net/api/v1/applications/6500ee29f8ed4e3991dff484b3ce3e73
Response
200 OK
HTTP/1.1 200 OK Content-Length: 0
Name |
Description |
Use |
Default |
Type |
company |
Set the context company. |
optional |
caller's company |
uid |
Name |
Description |
application.unknown |
The specified uid does not match with any application. |
application.linked.to.system |
The specified application can not be removed because it is used by one or more systems. |
HTTP Method |
DELETE |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.delete |
/api/v1/applications/{uid}/reference
Set an application as reference of a company.
Request
POST https://na.airvantage.net/api/v1/applications/6500ee29f8ed4e3991dff484b3ce3e73/reference
...
Name |
Description |
Use |
Default |
Type |
company |
the company on which to set reference |
optional |
caller's company |
uid |
Name |
Description |
application.unknown |
The specified uid does not match with any application. |
application.not.qualified |
Application has to be public and owned by Sierra Wireless
to be set as company reference. |
application.not.shared |
Application has to be shared with the company to be
set as company reference. |
application.not.published |
Application should be first published before being
set as company reference. |
HTTP Method |
POST |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.edit |
/api/v1/applications/{uid}/reference
Delete an application as reference of a company.
Request
DELETE https://na.airvantage.net/api/v1/applications/6500ee29f8ed4e3991dff484b3ce3e73/reference
...
Name |
Description |
Use |
Default |
Type |
company |
the company for which the reference is deleted |
optional |
caller's company |
uid |
Name |
Description |
application.unknown |
The specified uid does not match with any application. |
HTTP Method |
DELETE |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
None |
Permissions |
entities.applications.edit |
/api/v1/operations/applications/release
To release applications, the caller must provide a valid archive.
It can contain one or several applications. Each application is composed of different files:
Files for a single release, can be placed at the top level without any directory.
When releasing several applications, their files MUST be placed in different
directories within the archive.
The release process will launch an operation that is going to parse, read, save and eventually sign binary packages.
Request
POST https://na.airvantage.net/api/v1/operations/applications/release
Content-type: multipart/mixed; boundary="BoundaryUgix6QHMxLwJ4siU"
--BoundaryUgix6QHMxLwJ4siU
Content-Disposition: form-data; name="file"; filename="file.zip"
Content-Type: application/zip
Content-Length: 284060
// ZIP attached
...
--BoundaryUgix6QHMxLwJ4siU
Content-Disposition: form-data; name="parameters"; filename="parameters.json"
Content-Type: application/json
// JSON attached
{
"notify" : true,
"callback" : "callback_url"
}
--BoundaryUgix6QHMxLwJ4siU--
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/json
...
{
"operation": "6c7e105443af4d8bbb1488974b73df37"
}
Name |
Description |
Use |
Default |
Type |
force |
If true, the user can re-release an already released
application with the same name and revision. |
optional |
false |
boolean |
company |
Set the context company. |
optional |
caller's company |
uid |
{
"notify" : true|false,
"callback" : "callback_url"
}
Field |
Description |
Use |
Default |
Type |
notify |
Send an email notification to the user calling this method when the operation finishes. |
optional |
false |
boolean |
callback |
The endpoint URL to call when the operation state changes. The callback is done using HTTP 'POST' method. |
optional |
|
string |
Name |
Description |
application.invalid.archive.several.app.files |
Several files with extension ".app" were found in the
given archive. Only one is expected. |
application.archive.binary.size.exceeds |
One of the binary files exceeds the maximum authorized
size (100 Mo). |
application.archive.text.size.exceeds |
One of the text files (*.app, *.cp, *.json, *.js)
exceeds the maximum authorized size (1 Mo). |
application.invalid.archive.missing.app.file |
No application file found. |
application.unreadable.archive |
Archive file was corrupted or it cannot be read. |
application.parsing.xsd.error |
Application model files contain some errors. |
application.missing.name |
Application's name was not specified. |
application.missing.revision |
Application's revision was not specified. |
application.missing.type |
Application's type was not specified. |
application.model.missing.identifier |
Raised when configuration elements were specified
without any id or path. |
application.model.invalid.identifier |
Raised when configuration elements were specified with
both id or path. |
application.model.not.unique.identifier |
Raised when configuration elements were specified with
an id or a path already set. |
application.model.invalid.description |
Raised when an element description is too long. |
application.model.invalid.enum |
Raised when the given value did not match with the
expected Enumeration. |
application.missing.or.empty.binary.package |
Expected binary packages were not found in the given
archive |
application.type.revision.not.unique |
There is already an application with the same type and
same revision in AirVantage. |
application.name.revision.not.unique |
There is already an application with the same name and
revision within the company. |
application.unauthorized.execution.external.provider |
Impossible to force a re-release on an application
that is not provided by the user's company. |
application.unauthorized.execution.mismatch.name.revision.type |
Impossible to force a re-release on an application
whose name, type, or revision is not the same. |
file.too.large |
Archives cannot be more than 200MB. |
application.release.already.in.progress |
A re-release of the application is already in progress. |
HTTP Method |
POST |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
Content-type: application/zip |
Permissions |
entities.applications.release |
/api/v1/operations/applications/publish
Publishes an application. An application
marked as published can be shared with partners or/and can be
completely public.
Request
POST https://na.airvantage.net/api/v1/operations/applications/publish
Content-Type: application/json
...
{
"application" : "1cb5e5fc9bc14fa567a35717a91e5672",
}
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/json
...
{
"operation":"4b89657f63aac4b299c1d46e98a495326"
}
{
"application" : "uid",
"applications" : {
"criteria" : {
"uids" : ["uid1", ...],
"labels" : ["label1", ...],
"name" : "name",
"revision" : "revision",
"type" : "xxx",
"categories" : ["xxx"],
"state" : "xxx",
"releasedBefore" : "timestamp",
"releasedAfter" : "timestamp",
"isReference" : true|false,
"isPublic" : true|false,
"applicationManager" : "xxx",
"owner" : {
"uid" : "xxx",
"name" : "xxx"
}
}
}
}
'application' or 'applications' should be set to select applications to publish
Field |
Description |
Use |
Default |
Type |
application |
The unique identifier of the application to publish |
required |
|
uid |
applications.criteria.uids |
Selects all applications matching the specified identifiers. |
optional |
|
uid |
applications.criteria.labels |
Selects all applications having one of the specified
label. |
optional |
|
string |
applications.criteria.name |
Selects all applications whose name contains the given
string. |
optional |
|
string |
applications.criteria.revision |
Selects all applications whose revision contains the
given string. |
optional |
|
string |
applications.criteria.type |
Selects all applications whose type contains the given string. |
optional |
|
string |
applications.criteria.categories |
Selects all applications whose category matches the
given strings. Categories are : APPLICATION, FIRMWARE, FIRMWARE_COMPONENT, BUNDLE
|
optional |
|
string array |
applications.criteria.state |
Selects all applications having the given state.
States are RELEASED, PUBLISHED, DEPRECATED.
|
optional |
|
string |
applications.criteria.releasedBefore |
Selects all applications released after the given date.
The specified date is included. |
optional |
|
timestamp |
applications.criteria.releasedAfter |
Selects all applications released before the given date.
The specified date is included. |
optional |
|
timestamp |
applications.criteria.applicationManager |
Selects all applications related to the specified
application manager. |
optional |
|
string |
applications.criteria.isReference |
Selects reference/not reference applications |
optional |
|
boolean |
applications.criteria.isPublic |
Selects public/not public applications |
optional |
|
boolean |
applications.criteria.owner.uid |
Selects all applications whose the owner company UID matches the specified uid. |
optional |
|
string |
applications.criteria.owner.name |
Selects all applications whose the owner company name contains the given string. |
optional |
|
string |
isPublic |
[DEPRECATED] Specify if the given
application is public or not. Set true if public This
attribute is deprecated. Use edit application with
'isPublic' attribute.
|
optional |
false |
boolean |
Name |
Description |
Use |
Default |
Type |
company |
Set the context company. |
optional |
caller's company |
uid |
Name |
Description |
application.missing |
Raised when application is missing. |
application.unknown |
The specified uid does not match with any application. |
application.invalid.state |
Only application in RELEASED or DEPRECATED state can be published. |
application.already.published |
Cannot publish an application already published. |
selection.empty |
No application found for the specified criteria. |
HTTP Method |
POST |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
Content-type: application/json |
Permissions |
entities.applications.publish |
/api/v1/operations/applications/share
Shares an application with specific
partners. The application must be published.
Request
POST https://na.airvantage.net/api/v1/operations/applications/share
Content-Type: application/json
...
{
"application" : "1cb5e5fc9bc14fa567a35717a91e5672",
"partners" : ["7cb449f63aac4b299c1d46e23a495326", "cb6547f63aac4b299c1d46e23a495326"]
}
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/json
...
{
"operation":"4b89657f63aac4b299c1d46e98a495326"
}
{
"application" : "uid",
"partners" : ["uid1", "uid2", ...]
}
Field |
Description |
Use |
Default |
Type |
application |
The unique identifier of the application to publish |
required |
|
uid |
partners |
The list of partners uid where the application will be
published |
required |
|
string |
Name |
Description |
Use |
Default |
Type |
company |
Set the context company. |
optional |
caller's company |
uid |
Name |
Description |
application.missing |
Raised when application is missing. |
application.unknown |
The specified uid does not match with any application. |
application.not.published |
Application should be first published before to be
shared |
HTTP Method |
POST |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
Content-type: application/json |
Permissions |
entities.applications.publish |
/api/v1/operations/applications/public/{uid}
Adds a public application to the local
inventory.
Request
GET https://na.airvantage.net/api/v1/operations/applications/public/1cb5e5fc9bc14fa567a35717a91e5672
...
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/json
...
{
"operation":"4b89657f63aac4b299c1d46e98a495326"
}
Name |
Description |
Use |
Default |
Type |
company |
Set the context company. |
optional |
caller's company |
uid |
Name |
Description |
application.missing |
Raised when application is missing. |
application.unknown |
The specified uid does not match with any application. |
application.not.published |
Application should be first published before to be
added |
application.name.revision.not.unique |
There is already an application with the same name and
revision within the company. |
HTTP Method |
GET |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
Content-type: application/json |
Permissions |
entities.applications.publish |
/api/v1/operations/applications/deprecate
Deprecates an application.
Request
POST https://na.airvantage.net/api/v1/operations/applications/deprecate
Content-Type: application/json
...
{
"application" : "1cb5e5fc9bc14fa567a35717a91e5672",
}
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/json
...
{
"operation":"4b89657f63aac4b299c1d46e98a495326"
}
{
"application" : "uid"
}
Field |
Description |
Use |
Default |
Type |
application |
The unique identifier of the application to deprecate |
required |
|
uid |
Name |
Description |
Use |
Default |
Type |
company |
Set the context company. |
optional |
caller's company |
uid |
Name |
Description |
application.missing |
Raised when application is missing. |
application.unknown |
The specified uid does not match with any application. |
application.already.deprecated |
Application is alredy deprecated |
application.invalid.state |
Application should be first published to be deprecated |
application.unauthorized.execution.external.provider |
Impossible to deprecate an application that is not
provided by the user's company. |
HTTP Method |
POST |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
Content-type: application/json |
Permissions |
entities.applications.publish |
/api/v1/operations/applications/label
Adds or removes labels to applications matching a given criteria. When no criteria are set, all applications in the company will be labelled.
Request
POST https://na.airvantage.net/api/v1/operations/applications/label
Content-Type: application/json
...
{
"labels" : {
"add" : ["france"]
},
"criteria" : {
"revision" : "1.0.1",
"state" : "RELEASED"
}
}
Response
200 OK
HTTP/1.1 200 OK
Content-Type: application/json
...
{
"operation":"4b89657f63aac4b299c1d46e98a495326"
}
{
"notify" : true|false,
"callback" : "callback URL",
"labels" : {
"add" : ["Label1", ...],
"remove" : ["Label2", ...]
},
"criteria" : {
"uids" : ["uid1", ...],
"labels" : ["label1", ...],
"name" : "name",
"revision" : "revision",
"type" : "xxx",
"categories" : ["xxx"],
"state" : "xxx",
"releasedBefore" : "timestamp",
"releasedAfter" : "timestamp",
"isReference" : true|false,
"isPublic" : true|false,
"applicationManager" : "xxx",
"owner" : {
"uid" : "xxx",
"name" : "xxx"
}
},
"dependsOn" : {
"operation" : "uid",
"states" : ["FAILURE"]
}
}
Add or remove labels should be required
Either 'criteria' or 'dependsOn' should be set.
Field |
Description |
Use |
Default |
Type |
notify |
Send an email notification to the user calling this method when the operation finishes |
optional |
|
boolean |
callback |
The endpoint URL to call when the operation state changes. The callback is done using HTTP 'POST' method. |
optional |
|
string |
labels.add |
The list of labels to add |
required |
|
string |
labels.remove |
The list of labels to remove |
required |
|
string |
dependsOn.operation |
Identifier of the operation to be used to launch this operation In other words,
the tasks of the new operation will start only when the tasks of specified operation will be finished.
|
required if 'dependsOn' set |
|
uid |
dependsOn.states |
States of the tasks which will be used as input of this operation.
Possible values are : SUCCESS, FAILURE and CANCELLED.
If null or empty, all tasks from the parent operation will be used as input of this operation.
|
optional |
SUCCESS,FAILURE,CANCELLED |
string array |
criteria.uids |
Can contain no more than 100 system unique identifier. |
optional |
|
uid |
criteria.labels |
Labels all systems having one of the specified
label. |
optional |
|
string |
criteria.name |
Labels all systems whose name contains the given
string. |
optional |
|
string |
criteria.revision |
Label all applications whose revision contains the
given string. |
optional |
|
string |
criteria.type |
Label all applications whose type contains the given string. |
optional |
|
string |
criteria.category |
[DEPRECATED] Use 'categories' instead.
Label all applications whose category matches the
given string. Categories are : APPLICATION, FIRMWARE, FIRMWARE_COMPONENT, BUNDLE
|
optional |
|
string |
criteria.categories |
Label all applications whose category matches the
given strings. Categories are : APPLICATION, FIRMWARE, FIRMWARE_COMPONENT, BUNDLE
|
optional |
|
string array |
criteria.state |
Label all applications having the given state.
States are RELEASED, PUBLISHED, DEPRECATED.
|
optional |
|
string |
criteria.releasedBefore |
Label all applications released after the given date.
The specified date is included. |
optional |
|
timestamp |
criteria.releasedAfter |
Label all applications released before the given date.
The specified date is included. |
optional |
|
timestamp |
criteria.applicationManager |
Label all applications related to the specified
application manager. |
optional |
|
string |
criteria.isReference |
Label reference/not reference applications |
optional |
|
boolean |
criteria.isPublic |
Label public/not public applications |
optional |
|
boolean |
criteria.owner.uid |
Label all applications whose the owner company UID matches the specified uid. |
optional |
|
string |
criteria.owner.name |
Label all applications whose the owner company name contains the given string. |
optional |
|
string |
Name |
Description |
Use |
Default |
Type |
Operand |
company |
Set the context company. |
optional |
caller's company |
uid |
Name |
Description |
label.missing |
The list of label to add or remove is empty. |
label.amount.exceeded |
The number of labels to add or remove is greater than 100. |
selection.empty |
There is no application matching the given criteria. |
selection.invalid |
The selection is invalid. The possible causes are :
- Only one of the following attributes has to be set : criteria, dependsOn
- 'dependsOn' is defined but 'dependsOn.operation' is not set
|
HTTP Method |
POST |
Requires Authentication |
Yes |
Rate Limited |
Yes |
Headers |
Content-type: application/json |
Permissions |
entities.applications.edit |