Updated on 2023-11-08 GMT+08:00

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

Table 1 Path Parameters

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

Table 2 Request header 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.

Table 3 Request body parameters

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.

Table 4 FileLocation

Parameter

Mandatory

Type

Description

obs_location

No

ObsLocation object

Location of the OBS object with which the upgrade package is associated.

Table 5 ObsLocation

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

Table 6 Response body parameters

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.

Table 7 FileLocation

Parameter

Type

Description

obs_location

ObsLocation object

Location of the OBS object with which the upgrade package is associated.

Table 8 ObsLocation

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.