Download OpenAPI specification:Download
Eclipse hawkBit™ is a domain-independent back-end framework for rolling out software updates to constrained edge devices as well as more powerful controllers and gateways connected to IP based networking infrastructure.
The usual behaviour is that when a new device registers at the server it is requested to provide the meta information that will allow the server to identify the device on a hardware level (e.g. hardware revision, mac address, serial number etc.).
tenant required | string |
controllerId required | string |
required | object |
mode | string Enum: "merge" "replace" "remove" |
{- "data": {
- "property1": "string",
- "property2": "string"
}, - "mode": "merge"
}
{- "exceptionClass": "string",
- "errorCode": "string",
- "message": "string",
- "parameters": [
- "string"
]
}
Feedback channel. It is up to the device how much intermediate feedback is provided. However, the action will be kept open until the controller on the device reports a finished (either successful or error).
tenant required | string |
controllerId required | string |
actionId required | integer <int64> |
time | string |
required | object (DdiStatus) |
{- "time": "2023-08-03T12:31:41.890992967Z",
- "status": {
- "execution": "closed",
- "result": {
- "finished": "success",
- "progress": {
- "cnt": 2,
- "of": 5
}
}, - "code": 200,
- "details": [
- "string"
]
}
}
{- "exceptionClass": "string",
- "errorCode": "string",
- "message": "string",
- "parameters": [
- "string"
]
}
The device will use this resource to either confirm or deny an action which is waiting for confirmation. The action will be transferred into the RUNNING state in case the device is confirming it. Afterwards it will be exposed by the deploymentBase.
tenant required | string |
controllerId required | string |
actionId required | integer <int64> |
confirmation required | string Enum: "confirmed" "denied" |
code | integer <int32> |
details | Array of strings |
{- "confirmation": "confirmed",
- "code": 200,
- "details": [
- "string"
]
}
{- "exceptionClass": "string",
- "errorCode": "string",
- "message": "string",
- "parameters": [
- "string"
]
}
The device can use this resource to deactivate auto-confirmation. All active actions will remain unchanged while all future actions need to be confirmed, before processing with the deployment.
tenant required | string |
controllerId required | string |
{- "exceptionClass": "string",
- "errorCode": "string",
- "message": "string",
- "parameters": [
- "string"
]
}
The device can use this resource to activate auto-confirmation. As a result all current active as well as future actions will automatically be confirmed by mentioning the initiator as triggered person. Actions will be automatically confirmed, as long as auto-confirmation is active.
tenant required | string |
controllerId required | string |
initiator | string |
remark | string |
{- "initiator": "exampleUser",
- "remark": "exampleRemark"
}
{- "exceptionClass": "string",
- "errorCode": "string",
- "message": "string",
- "parameters": [
- "string"
]
}
It is up to the device how much intermediate feedback is provided. However, the action will be kept open until the controller on the device reports a finished (either successful or error) or rejects the action, e.g. the canceled actions have been started already.
tenant required | string |
controllerId required | string |
actionId required | integer <int64> |
time | string |
required | object (DdiStatus) |
{- "time": "2023-08-03T12:31:41.890992967Z",
- "status": {
- "execution": "closed",
- "result": {
- "finished": "success",
- "progress": {
- "cnt": 2,
- "of": 5
}
}, - "code": 200,
- "details": [
- "string"
]
}
}
{- "exceptionClass": "string",
- "errorCode": "string",
- "message": "string",
- "parameters": [
- "string"
]
}
This base resource can be regularly polled by the controller on the provisioning target or device in order to retrieve actions that need to be executed. Those are provided as a list of links to give more detailed information about the action. Links are only available for initial configuration, open actions, or the latest installed action, respectively. The resource supports Etag based modification checks in order to save traffic.
Note: deployments have to be confirmed in order to move on to the next action. Cancellations have to be confirmed or rejected.
tenant required | string |
controllerId required | string |
{- "config": {
- "polling": {
- "sleep": "12:00:00"
}
}, - "links": [
- {
- "rel": "string",
- "href": "string",
- "hreflang": "string",
- "media": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string"
}
]
}
Returns all artifacts that are assigned to the software module
tenant required | string |
controllerId required | string |
softwareModuleId required | integer <int64> |
[- {
- "filename": "binary.tgz",
- "hashes": {
- "sha1": "2d86c2a659e364e9abba49ea6ffcd53dd5559f05",
- "md5": "0d1b08c34858921bc7c662b228acb7ba",
- "sha256": "a03b221c6c6eae7122ca51695d456d5222e524889136394944b2f9763b483615"
}, - "size": 3,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "hreflang": "string",
- "media": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string"
}
]
}
]
Handles GET DdiArtifact download request. This could be full or partial (as specified by RFC7233 (Range Requests)) download request.
tenant required | string |
controllerId required | string |
softwareModuleId required | integer <int64> |
fileName required | string |
{- "exceptionClass": "string",
- "errorCode": "string",
- "message": "string",
- "parameters": [
- "string"
]
}
Handles GET {@link DdiArtifact} MD5 checksum file download request.
tenant required | string |
controllerId required | string |
softwareModuleId required | integer <int64> |
fileName required | string |
{- "exceptionClass": "string",
- "errorCode": "string",
- "message": "string",
- "parameters": [
- "string"
]
}
Resource to receive information of the previous installation. Can be used to re-retrieve artifacts of the already finished action, for example in case a re-installation is necessary. The response will be of the same format as the deploymentBase operation, providing the previous action that has been finished successfully. As the action is already finished, no further feedback is expected.
Keep in mind that the provided download links for the artifacts are generated dynamically by the update server. Host, port and path are not guaranteed to be similar to the provided examples below but will be defined at runtime.
tenant required | string |
controllerId required | string |
actionId required | integer <int64> |
actionHistory | integer <int32> Default: 0 |
{- "id": "8",
- "deployment": {
- "download": "skip",
- "update": "skip",
- "maintenanceWindow": "available",
- "chunks": [
- {
- "part": "bApp",
- "version": "1.2.0",
- "name": "oneApp",
- "encrypted": true,
- "artifacts": [
- {
- "filename": "binary.tgz",
- "hashes": {
- "sha1": "2d86c2a659e364e9abba49ea6ffcd53dd5559f05",
- "md5": "0d1b08c34858921bc7c662b228acb7ba",
- "sha256": "a03b221c6c6eae7122ca51695d456d5222e524889136394944b2f9763b483615"
}, - "size": 3,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "hreflang": "string",
- "media": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string"
}
]
}
], - "metadata": [
- {
- "key": "aMetadataKey",
- "value": "Metadata value as defined in software module"
}
]
}
]
}, - "actionHistory": {
- "status": "RUNNING",
- "messages": [
- "string"
]
}, - "links": [
- {
- "rel": "string",
- "href": "string",
- "hreflang": "string",
- "media": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string"
}
]
}
Core resource for deployment operations. Contains all information necessary in order to execute the operation.
Keep in mind that the provided download links for the artifacts are generated dynamically by the update server. Host, port and path and not guaranteed to be similar to the provided examples below but will be defined at runtime.
tenant required | string |
controllerId required | string |
actionId required | integer <int64> |
c | integer <int32> Default: -1 |
actionHistory | integer <int32> Default: 0 |
{- "id": "8",
- "deployment": {
- "download": "skip",
- "update": "skip",
- "maintenanceWindow": "available",
- "chunks": [
- {
- "part": "bApp",
- "version": "1.2.0",
- "name": "oneApp",
- "encrypted": true,
- "artifacts": [
- {
- "filename": "binary.tgz",
- "hashes": {
- "sha1": "2d86c2a659e364e9abba49ea6ffcd53dd5559f05",
- "md5": "0d1b08c34858921bc7c662b228acb7ba",
- "sha256": "a03b221c6c6eae7122ca51695d456d5222e524889136394944b2f9763b483615"
}, - "size": 3,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "hreflang": "string",
- "media": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string"
}
]
}
], - "metadata": [
- {
- "key": "aMetadataKey",
- "value": "Metadata value as defined in software module"
}
]
}
]
}, - "actionHistory": {
- "status": "RUNNING",
- "messages": [
- "string"
]
}, - "links": [
- {
- "rel": "string",
- "href": "string",
- "hreflang": "string",
- "media": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string"
}
]
}
Core resource for confirmation related operations. While active actions awaiting confirmation will be referenced, the current auto-confirmation status will be shown. In case auto-confirmation is active, details like the initiator, remark and date of activation (as unix timestamp) will be provided. Reference links to switch the auto-confirmation state are exposed as well.
tenant required | string |
controllerId required | string |
{- "autoConfirm": {
- "active": true,
- "initiator": "exampleUserId",
- "remark": "exampleRemark",
- "activatedAt": 1691065895439,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "hreflang": "string",
- "media": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string"
}
]
}, - "links": [
- {
- "rel": "string",
- "href": "string",
- "hreflang": "string",
- "media": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string"
}
]
}
Resource to receive information about a pending confirmation. The response will be of the same format as the deploymentBase operation. The controller should provide feedback about the confirmation first, before processing the deployment.
Keep in mind that the provided download links for the artifacts are generated dynamically by the update server. Host, port and path are not guaranteed to be similar to the provided examples below but will be defined at runtime.
tenant required | string |
controllerId required | string |
actionId required | integer <int64> |
c | integer <int32> Default: -1 |
actionHistory | integer <int32> Default: 0 |
{- "id": "6",
- "confirmation": {
- "download": "skip",
- "update": "skip",
- "maintenanceWindow": "available",
- "chunks": [
- {
- "part": "bApp",
- "version": "1.2.0",
- "name": "oneApp",
- "encrypted": true,
- "artifacts": [
- {
- "filename": "binary.tgz",
- "hashes": {
- "sha1": "2d86c2a659e364e9abba49ea6ffcd53dd5559f05",
- "md5": "0d1b08c34858921bc7c662b228acb7ba",
- "sha256": "a03b221c6c6eae7122ca51695d456d5222e524889136394944b2f9763b483615"
}, - "size": 3,
- "links": [
- {
- "rel": "string",
- "href": "string",
- "hreflang": "string",
- "media": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string"
}
]
}
], - "metadata": [
- {
- "key": "aMetadataKey",
- "value": "Metadata value as defined in software module"
}
]
}
]
}, - "actionHistory": {
- "status": "RUNNING",
- "messages": [
- "string"
]
}, - "links": [
- {
- "rel": "string",
- "href": "string",
- "hreflang": "string",
- "media": "string",
- "title": "string",
- "type": "string",
- "deprecation": "string",
- "profile": "string",
- "name": "string"
}
]
}
The Hawkbit server might cancel an operation, e.g. an unfinished update has a successor. It is up to the provisioning target to decide to accept the cancelation or reject it.
tenant required | string |
controllerId required | string |
actionId required | integer <int64> |
{- "id": "11",
- "cancelAction": {
- "stopId": "11"
}
}