Searching...

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 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
    TOP