Matching results

Application

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
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": ,
    "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

/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-binaryOptional for all protocolstrue, false
authenticationMandatory for M3DAnone, hmac-md5, hmac-sha1
cipherMandatory for M3DAnone, aes-ctr-256, aes-ctr-128, aes-cbc-256, aes-cbc-128
securityMandatory for OMADMnone, 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/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:

  • - 1 .app file. This file is mandatory. It describes the application. It must declare the name, revision, type, and the name of binary files that have to be read. Data model and communication capabilities can also be described here and/or reference include files.

    IMPORTANT: The couples name/revision have to be unique within a company. Couple type/revision has to be unique throughout AirVantage.

  • - 0 or * .cpp files. These files are referenced by the .app file. They declare the data model and the communication capabilities of an application.
  • - 1 or * binary files. The application itself.

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 url that will be called when the operation state changes. The url has the following pattern : http(s)://(user:password@)www.yourhost.com/your_rest_service 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",
}       
                            
Field Description Use Default Type
application The unique identifier of the application to publish required uid
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.
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 url that will be called when the operation state changes. The url has the following pattern : http(s)://(user:password@)www.yourhost.com/your_rest_service 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
TOP