Adding a Product Topic
Function
Adding 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
POST /v2/{project_id}/link/instances/{instance_id}/products/{product_id}/topics
|
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. |
Request 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. |
|
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
|
Parameter |
Type |
Description |
|---|---|---|
|
product_id |
Integer |
Homing product ID. |
|
topic_id |
String |
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
|
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
|
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
|
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
Add a topic for a specified product with the permission as publishing.
{
"permission" : 0,
"name" : "datas",
"version" : "v1",
"description" : "/v1/${deviceId}/datas"
}
Example Responses
Status code: 200
Created
{
"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.createProductTopic]. 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 |
Created |
|
400 |
Bad Request |
|
404 |
Not Found |
|
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