Create an OTA Upgrade Package
Function
This API is used to create an OBS object associated with an upgrade package. To use this API, grant IoTDA instances the permission to access OBS and the KMS Administrator permissions. On the IAM console, choose Agencies, locate the iotda_admin_trust agency, and grant KMS Administrator and OBS OperateAccess permissions to the agency.
Debugging
You can debug this API through automatic authentication in API Explorer or use the SDK sample code generated by API Explorer.
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 |
---|---|---|---|
X-Auth-Token |
No |
String |
Parameter description: user token. You can obtain the token by calling the IAM API Obtaining a User Token Through Password Authentication. In the returned response header, X-Subject-Token is the desired user token. For details about how to obtain the token, see Token Authentication. |
Instance-Id |
No |
String |
Parameter description: instance ID. This parameter is required only when the API is called from the management plane in the physical multi-tenant scenario. You can log in to the IoTDA console and choose Overview in the navigation pane to view the instance ID. |
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. |
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 Maximum: 1024 |
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 Maximum: 4096 |
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: OBS object name (including the folder path). Value length: a maximum of 1,024 characters Minimum: 1 Maximum: 1024 |
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. |
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: OBS object name (including the folder path). Value length: a maximum of 1,024 characters Minimum: 1 Maximum: 1024 |
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" } } }
-
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" } } }
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" } } }
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