Updated on 2025-10-22 GMT+08:00

Modifying a Product Topic

Function

Modifying a Product Topic

Authorization Information

Each account has all the permissions required to call all APIs, but IAM users must be assigned the required permissions. For details about the required permissions, see Permissions Policies and Supported Actions.

URI

PUT /v2/{project_id}/link/instances/{instance_id}/products/{product_id}/topics/{topic_id}

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. The default value is default for compatibility with 20.0.Project ID. For details about how to get the project ID, see "Appendix" > "Obtaining a Project ID" in this document.

instance_id

Yes

String

Instance ID. The default value is default for compatibility with 20.0.

product_id

Yes

Integer

Product ID.

topic_id

Yes

Integer

Product topic ID.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token. It can be obtained by calling the IAM API. The value of X-Subject-Token in the response header is the user token.

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

permission

Yes

Integer

Topic permission. The options are as follows: 0: publish; 1: subscribe.

name

Yes

String

Product-level topic name.

Separate different parts of a topic class with slashes (/). The first class is the user-defined version number. The second class is defined as ${deviceId} (wildcard device ID). The third class is the user-defined topic class name. The topic consists of ${version}/${deviceId}/${customizePart}. In brief, the topic class a/b/c/${deviceId}/customizePart is a set of topics such as a/b/c/deviceid1/customizePart1 and a/b/c/deviceid2/customizePart2.

version

Yes

String

Version number, which is a string of 1 to 64 characters. The value must start and end with a letter or digit. Only letters, digits, underscores (_), hyphens (-), periods (.), slashes (/), and backslashes () are allowed.

with_prefix_slash

No

Boolean

Whether to add a slash (/) before a topic. Default: true.

description

No

String

Description.

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

product_id

Integer

Homing product ID.

topic_id

Integer

Product topic ID.

permission

Integer

Topic permission. The options are as follows: 0: publish; 1: subscribe.

topic_name

String

Topic name.

version

String

Version number.

description

String

Description.

Status code: 400

Table 5 Response body parameters

Parameter

Type

Description

error_code

String

System error code, which is the detailed error code of HTTP error codes 4xx and 5xx.

error_msg

String

Error description.

request_id

String

Message ID.

Status code: 404

Table 6 Response body parameters

Parameter

Type

Description

error_code

String

System error code, which is the detailed error code of HTTP error codes 4xx and 5xx.

error_msg

String

Error description.

request_id

String

Message ID.

Status code: 500

Table 7 Response body parameters

Parameter

Type

Description

error_code

String

System error code, which is the detailed error code of HTTP error codes 4xx and 5xx.

error_msg

String

Error description.

request_id

String

Message ID.

Example Requests

Change the permission of a specified topic to subscription, and modify the version.

{
  "permission" : 1,
  "name" : "datas",
  "version" : "v2",
  "description" : "/v2/${deviceId}/datas"
}

Example Responses

Status code: 200

OK

{
  "product_id" : 122888,
  "topic_id" : 17,
  "permission" : 1,
  "topic_name" : "/3.0/${deviceId}/t1",
  "version" : "3.0",
  "description" : "description"
}

Status code: 400

Bad Request

{
  "error_code" : "SCB.00000000",
  "error_msg" : "Parameter is not valid for operation [romalink.link-product-topic.updateProductTopic]. Parameter is [productId]. Processor is [path].",
  "request_id" : "cb39e78a-afd3-4e04-901d-70468b1c23dc-1619602712496-cnnorth7a-P-romalink-service01"
}

Status code: 404

Not Found

{
  "error_code" : "ROMA.00110006",
  "error_msg" : "The resource does not exist. Check whether the resource ID ff38023c-0854-4779-847d-72528e1f5da5 is correct.",
  "request_id" : "72b07918-f6a2-4721-81bf-f3fd5486025e-1619663576836-cnnorth7a-P-romalink-service01"
}

Status code: 500

Internal Server Error

{
  "error_code" : "ROMA.00110002",
  "error_msg" : "The instance does not exist. project_id: 397cd10b30544c588b2f4a56d83856c4, instance_id: f3bb386a-23ec-47aa-9943-4c60ac658611",
  "request_id" : "c8c06d0a-be92-4fdf-9d10-bc20131ab158-1619593104919-cnnorth7a-P-romalink-service01"
}

Status Codes

Status Code

Description

200

OK

400

Bad Request

404

Not Found

500

Internal Server Error

Error Codes

See Error Codes.