Create an OTA Upgrade Package
Function
This API is used to create an OBS object associated with an upgrade package.
Prerequisites: To use this API, you need to authorize IoTDA instances to access OBS and grant them KMS Administrator permissions. For details about the authorization list, see Agency Authorization.
URI
POST /v5/iot/{project_id}/ota-upgrades/packages
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| project_id | Yes | String | Parameter description : project ID. For details about how to obtain the project ID, see Obtaining a Project ID. |
Request Parameters
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| Instance-Id | No | String | Parameter description : instance ID. Unique identifier of each instance in the physical multi-tenant scenario. Mandatory for professional editions and recommended in other cases. Log in to the IoTDA console and choose Overview in the navigation pane to view the instance ID. For details, see Viewing Instance Details. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| app_id | Yes | String | Parameter description: resource space ID. If you have multiple resource spaces, you can use this parameter to specify the resource space that the upgrade package to create will belong to. Value: The value can contain a maximum of 36 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed. |
| package_type | Yes | String | Parameter description: type of the upgrade package. Options: For a software package, set this parameter to softwarePackage. For a firmware package, set this parameter to firmwarePackage. |
| product_id | Yes | String | Parameter description : unique ID of the product associated with the device. The value is allocated by the platform after the product is created. For details, see Creating a Product. Value: The value can contain a maximum of 36 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed. |
| module_name | No | String | Parameter description: OTA module name, which is unique under the product and cannot be changed. This parameter is supported when package_type is set to modulePackage. Value: The value can contain up to 64 characters. Only letters, digits, underscores (_), hyphens (-), and periods (.) are allowed. |
| version | Yes | String | Parameter description: version number of the upgrade package. Value: The value can contain a maximum of 256 characters. Only letters, digits, underscores (_), hyphens (-), and periods (.) are allowed. |
| support_source_versions | No | Array of strings | Parameter description: list of source versions that support the upgrade of this version package. Up to 20 source versions are supported. Value: A source version number can contain only letters, digits, underscores (_), hyphens (-), and periods (.). |
| description | No | String | Parameter description: description of the upgrade package functions. Value length: a maximum of 1,024 characters |
| custom_info | No | String | Parameter description: custom information pushed to the device. After the upgrade package is added and an upgrade task is created, the IoT platform delivers the custom information to the device when delivering an upgrade notification to the device. Value length: a maximum of 4,096 characters |
| file_location | Yes | FileLocation object | Location of the upgrade package. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| obs_location | No | ObsLocation object | Location of the OBS object with which the upgrade package is associated. |
| Parameter | Mandatory | Type | Description |
|---|---|---|---|
| region_name | Yes | String | Parameter description : OBS region. You can obtain the service endpoint from Regions and Endpoints. Value: The value can contain a maximum of 256 characters. Only letters, digits, and hyphens (-) are allowed. |
| bucket_name | Yes | String | Parameter description: OBS bucket name. Value: The value can contain 3 to 63 characters. Only lowercase letters, digits, hyphens (-), and periods (.) are allowed. |
| object_key | Yes | String | Parameter description: name of OBS objects (including the folder path). Max. object size: 1 GB. Supported files: .bin, .dav, .tar, .gz, .zip, .gzip, .apk, .tar.gz, .tar.xz, .pack, .exe, .bat, and .img. Value: a maximum of 1,024 characters. |
| sign_method | No | String | Parameters Value: Only SHA-256 is supported. If no value is carried, SHA-256 is used by default. |
| sign | No | String | Parameter description: upgrade package signature value calculated using the SHA-256 algorithm. After the upgrade package is added and an upgrade task is created, the IoT platform delivers the signature to the device when delivering an upgrade notification to the device. Value: 64 characters. Only letters and digits are allowed. |
Response Parameters
Status code: 201
| Parameter | Type | Description |
|---|---|---|
| package_id | String | Parameter description: upgrade package ID, which uniquely identifies an upgrade package. The value is allocated by the IoT platform. Value: The value can contain a maximum of 36 characters. Only letters, digits, and hyphens (-) are allowed. |
| app_id | String | Parameter description: resource space ID. Value: The value can contain a maximum of 36 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed. |
| package_type | String | Parameter description: type of the upgrade package. Options: For a software package, set this parameter to softwarePackage. For a firmware package, set this parameter to firmwarePackage. |
| product_id | String | Parameter description : unique ID of the product associated with the device. The value is allocated by the platform after the product is created. For details, see Creating a Product. Value: The value can contain a maximum of 36 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed. |
| product_name | String | Product name associated with the device. |
| module_name | String | Parameter description: OTA module name, which is unique under the product and cannot be changed. Value: The value can contain up to 64 characters. Only letters, digits, underscores (_), hyphens (-), and periods (.) are allowed. |
| version | String | Parameter description: version number of the upgrade package. Value: The value can contain a maximum of 256 characters. Only letters, digits, underscores (_), hyphens (-), and periods (.) are allowed. |
| support_source_versions | Array of strings | Parameter description: list of source versions that support the upgrade of this version package. Up to 20 source versions are supported. Value: A source version number can contain only letters, digits, underscores (_), hyphens (-), and periods (.). |
| description | String | Parameter description: description of the upgrade package functions. Value length: a maximum of 1,024 characters |
| custom_info | String | Parameter description: custom information pushed to the device. After the upgrade package is added and an upgrade task is created, the IoT platform delivers the custom information to the device when delivering an upgrade notification to the device. Value length: a maximum of 4,096 characters |
| create_time | String | Time when the software/firmware package is uploaded to the IoT platform. The parameter value is in the format of yyyyMMdd'T'HHmmss'Z'. |
| file_location | FileLocation object | Location of the upgrade package. |
| Parameter | Type | Description |
|---|---|---|
| obs_location | ObsLocation object | Location of the OBS object with which the upgrade package is associated. |
| Parameter | Type | Description |
|---|---|---|
| region_name | String | Parameter description : OBS region. You can obtain the service endpoint from Regions and Endpoints. Value: The value can contain a maximum of 256 characters. Only letters, digits, and hyphens (-) are allowed. |
| bucket_name | String | Parameter description: OBS bucket name. Value: The value can contain 3 to 63 characters. Only lowercase letters, digits, hyphens (-), and periods (.) are allowed. |
| object_key | String | Parameter description: name of OBS objects (including the folder path). Max. object size: 1 GB. Supported files: .bin, .dav, .tar, .gz, .zip, .gzip, .apk, .tar.gz, .tar.xz, .pack, .exe, .bat, and .img. Value: a maximum of 1,024 characters. |
| sign_method | String | Parameters Value: Only SHA-256 is supported. If no value is carried, SHA-256 is used by default. |
| sign | String | Parameter description: upgrade package signature value calculated using the SHA-256 algorithm. After the upgrade package is added and an upgrade task is created, the IoT platform delivers the signature to the device when delivering an upgrade notification to the device. Value: 64 characters. Only letters and digits are allowed. |
Example Requests
-
Creates an OTA upgrade package and uploads the firmware package.
POST https://{endpoint}/v5/iot/{project_id}/ota-upgrades/packages { "app_id" : "61f7e74d036aca5be29e1ed4", "package_type" : "firmwarePackage", "product_id" : "5ba24f5ebbe8f56f5a14f605", "version" : "V2.0", "description" : "package v2.0", "custom_info" : "Updated the XX function and fixed the XXXX issue.", "file_location" : { "obs_location" : { "region_name" : "cn-north-4", "bucket_name" : "abc", "object_key" : "bbb/upgrade.bin", "sign" : "595124473f866b033dfa1f7e831c8c99a12f6143f392dfa996a819010842c99d" } } } -
Creates an OTA upgrade package and uploads the firmware package. In the differential package scenario, the upgrade from V1.0 and V1.1 is supported.
POST https://{endpoint}/v5/iot/{project_id}/ota-upgrades/packages { "app_id" : "61f7e74d036aca5be29e1ed4", "package_type" : "firmwarePackage", "product_id" : "5ba24f5ebbe8f56f5a14f605", "version" : "V2.0", "support_source_versions" : [ "V1.0", "V1.1" ], "description" : "package for version V1.0 and V1.1", "custom_info" : "Updated the XX function and fixed the XXXX issue.", "file_location" : { "obs_location" : { "region_name" : "cn-north-4", "bucket_name" : "abc", "object_key" : "bbb/upgrade.bin", "sign" : "595124473f866b033dfa1f7e831c8c99a12f6143f392dfa996a819010842c99d" } } }
Example Responses
Status code: 201
Created
{
"package_id" : "28f61af50fc9452aa0ed5ea25c3cc3d3",
"app_id" : "61f7e74d036aca5be29e1ed4",
"package_type" : "firmwarePackage",
"product_id" : "5ba24f5ebbe8f56f5a14f605",
"version" : "V2.0",
"support_source_versions" : [ "V1.0", "V1.1" ],
"description" : "package for version V1.0 and V1.1",
"custom_info" : "Updated the XX function and fixed the XXXX issue.",
"create_time" : "20230211T121212Z",
"file_location" : {
"obs_location" : {
"region_name" : "cn-north-4",
"bucket_name" : "abc",
"object_key" : "bbb/upgrade.bin",
"sign" : "595124473f866b033dfa1f7e831c8c99a12f6143f392dfa996a819010842c99d"
}
}
} Status Codes
| Status Code | Description |
|---|---|
| 201 | Created |
| 400 | Bad Request |
| 401 | Unauthorized |
| 403 | Forbidden |
| 500 | Internal Server Error |
Error Codes
See Error Codes.
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot