IoT Application REST Endpoints

IoT Application
An Application is primarily a namespace. Each application should be, to the greatest extent possible, a fully-defined entity. It should define all the device models, integrations, analytics that the application needs in order to solve a business problem. Devices (directly and indirectly connected) are pooled at the global level (defined outside any application), but every application must define the scope of devices and formats they want to use via Device Models. As mentioned at the start of this section, applications are namespaces and must be as self-contained as possible. Some objects must be defined on a per-app basis, and some on a "global" basis (per-cloud-service). For example, Integrations are are always scoped within an app, they are never global since they only have meaning for a single app. Other objects such as devices are strictly global, although they can be referenced by an app.
Create a Device Model and associate it with the Application
Method: post
Path: /iot/api/v2/apps/{app-id}/deviceModels
Create a new Application
Method: post
Path: /iot/api/v2/apps
Delete Application by ID
Method: delete
Path: /iot/api/v2/apps/{app-id}
Invoke a Specific Action
Method: post
Path: /iot/api/v2/apps/{app-id}/devices/{device-id}/deviceModels/{devicemodel-id}/actions/{action-name}
Invoke DELETE Method on a Device
Method: delete
Path: /iot/api/v2/apps/{app-id}/devices/{device-id}/resources/{subResources}
Invoke GET Method on a Device
Method: get
Path: /iot/api/v2/apps/{app-id}/devices/{device-id}/resources/{subResources}
Invoke POST Method on a Device
Method: post
Path: /iot/api/v2/apps/{app-id}/devices/{device-id}/resources/{subResources}
Invoke PUT Method on a Device
Method: put
Path: /iot/api/v2/apps/{app-id}/devices/{device-id}/resources/{subResources}
Replace Application by ID
Method: post
Path: /iot/api/v2/apps/{app-id}
Replace the Values of Specific Attributes
Method: post
Path: /iot/api/v2/apps/{app-id}/devices/{device-id}/deviceModels/{devicemodel-id}/attributes/
Reset Setting
Method: delete
Path: /iot/api/v2/apps/{app-id}/settings/{group}/{name}
Reset Setting by Group
Method: post
Path: /iot/api/v2/apps/{app-id}/settings/{group}/reset
Retrieve Application Formats
Method: get
Path: /iot/api/v2/apps/{app-id}/formats
Retrieve Applications Count
Method: get
Path: /iot/api/v2/apps/count
Retrieve Available Settings
Method: get
Path: /iot/api/v2/apps/{app-id}/settings
Retrieve Details of an Application
Method: get
Path: /iot/api/v2/apps/{app-id}
Retrieve Information about Devices that Participate in an Application
Method: get
Path: /iot/api/v2/apps/{app-id}/devices
Retrieve Information about Multiple Device Models Consumed by The Application
Method: get
Path: /iot/api/v2/apps/{app-id}/deviceModels
Retrieve Number of Device Models Consumed by the Application.
Method: get
Path: /iot/api/v2/apps/{app-id}/deviceModels/count
Retrieve Number of Devices Consumed by the Application
Method: get
Path: /iot/api/v2/apps/{app-id}/deviceModels/devices/count
Retrieve Number of Devices of an Application that Implements a Specific Device Model
Method: get
Path: /iot/api/v2/apps/{app-id}/deviceModels/{urn}/devices/count
Retrieve Resources of a Device
Method: get
Path: /iot/api/v2/apps/{app-id}/devices/{device-id}/resources
Retrieve Setting
Method: get
Path: /iot/api/v2/apps/{app-id}/settings/{group}/{name}
Retrieve Settings that Belong to a Group
Method: get
Path: /iot/api/v2/apps/{app-id}/settings/{group}
Retrieve the Default Device Selection Group
Method: get
Path: /iot/api/v2/apps/{app-id}/deviceSelectionGroups/default
Retrieve the Latest Value of a Specific Attribute
Method: get
Path: /iot/api/v2/apps/{app-id}/devices/{device-id}/deviceModels/{devicemodel-id}/attributes/{attribute-name}
Retrieve the Latest Value of Attributes
Method: get
Path: /iot/api/v2/apps/{app-id}/devices/{device-id}/deviceModels/{devicemodel-id}/attributes
Retrieve the List of Applications
Method: get
Path: /iot/api/v2/apps
Retrieve the Metadata of an IoT Application
Method: get
Path: /iot/api/v2/apps/{app-id}/metadata
Retrieve the Number of Devices that can Participate in an Application
Method: get
Path: /iot/api/v2/apps/{app-id}/devices/count
Update Application Details by ID
Method: put
Path: /iot/api/v2/apps/{app-id}
Update Default Device Selection Group
Method: post
Path: /iot/api/v2/apps/{app-id}/deviceSelectionGroups/default
Update Multiple Groups of Settings
Method: put
Path: /iot/api/v2/apps/{app-id}/settings
Update Setting
Method: put
Path: /iot/api/v2/apps/{app-id}/settings/{group}/{name}
Update Settings in the Group
Method: put
Path: /iot/api/v2/apps/{app-id}/settings/{group}
Update the Metadata of an IoT Application
Method: post
Path: /iot/api/v2/apps/{app-id}/metadata
Update the Value of Specific Attributes
Method: put
Path: /iot/api/v2/apps/{app-id}/devices/{device-id}/deviceModels/{devicemodel-id}/attributes/{attribute-name}