Updated on 2023-06-29 GMT+08:00

Creating a Product

Function

Creating a Product

URI

POST /v2/{project_id}/link/instances/{instance_id}/products

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. For details about how to obtain the project ID, see Appendix > Obtaining a Project ID in the ROMA Connect API Reference.

Minimum: 0

Maximum: 32

instance_id

Yes

String

Instance ID.

Minimum: 0

Maximum: 36

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token, which can be obtained by calling the IAM API (value of X-Subject-Token in the response header).

Minimum: 1

Maximum: 100000

Table 3 Request body parameters

Parameter

Mandatory

Type

Description

app_id

Yes

String

Application ID.

Minimum: 1

Maximum: 36

name

Yes

String

Product name, which is unique in a tenant. The value can contain a maximum of 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.

Minimum: 1

Maximum: 64

manufacturer_id

Yes

String

Product manufacturer ID.

Minimum: 2

Maximum: 50

manufacturer_name

Yes

String

Manufacturer name.

Minimum: 2

Maximum: 64

model

Yes

String

Product model.

Minimum: 2

Maximum: 50

product_type

Yes

Integer

Product type. 0: common product (subdevices are not supported) 1: gateway product

Minimum: 0

Maximum: 1

description

No

String

Product description, which contains a maximum of 200 characters.

Minimum: 0

Maximum: 200

protocol_type

Yes

Integer

Protocol type of the product. 0: mqtt 1: CoAP 2: modbus 4: opcua 5: extended protocol

Minimum: 0

Maximum: 4

device_type

No

String

Device type of a product. The default value is Default.

Minimum: 1

Maximum: 32

template_id

No

Integer

ID of the associated product template. This parameter must be specified if a product template is used to create a product. Otherwise, leave this parameter empty. The value is automatically rounded down.

Minimum: 1

Maximum: 99999999999999999

version

No

String

Model version.

Minimum: 0

Maximum: 32

data_format

No

Integer

Product data format. 0: JSON 1: USER_DEFINED

Minimum: 0

Maximum: 10

Default: 0

status

No

Integer

Product status. 0-enabled 1-disabled

Minimum: 0

Maximum: 1

Default: 0

Response Parameters

Status code: 201

Table 4 Response body parameters

Parameter

Type

Description

permissions

Array of strings

Permission.

id

Integer

Product ID.

Minimum: 1

Maximum: 99999999999999999

product_serial

String

Unique sequence number of a product (unique value in the system, which is used to mark a product in the topic of MQS).

Minimum: 0

Maximum: 64

app_id

String

Application ID.

Minimum: 0

Maximum: 64

name

String

Product name, which is unique in a tenant. The value can contain a maximum of 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed.

Minimum: 0

Maximum: 64

manufacturer_id

String

Product manufacturer ID.

Minimum: 0

Maximum: 64

manufacturer_name

String

Manufacturer name.

Minimum: 0

Maximum: 64

model

String

Product model.

Minimum: 0

Maximum: 64

product_type

Integer

Product type. 0: common product (subdevices are not supported) 1: gateway product

Minimum: 0

Maximum: 10

description

String

Product description, which contains a maximum of 200 characters.

Minimum: 0

Maximum: 200

protocol_type

Integer

Protocol type of the product. 0: mqtt 1: CoAP 2: modbus 4: opcua 5: extended protocol

Minimum: 0

Maximum: 10

device_type

String

Device type of a product. The default value is Default.

Minimum: 0

Maximum: 64

version

String

Product version.

Minimum: 0

Maximum: 64

created_user

CreatedUser object

Name of the user who created the attribute.

last_updated_user

LastUpdatedUser object

User who performed the last update.

authentication

Authentication object

Authentication.

created_datetime

Long

Creation start time. The format is timestamp(ms) and the UTC time zone is used.

Minimum: 1

Maximum: 99999999999999999

app_name

String

Application name.

Minimum: 0

Maximum: 256

data_format

Integer

data_format 0-JSON 1-USER_DEFINED

Minimum: 1

Maximum: 99999999999999999

status

Integer

Product status. 0-enabled 1-disabled

Minimum: 0

Maximum: 1

Default: 0

Table 5 CreatedUser

Parameter

Type

Description

user_id

String

User ID (reserved).

Minimum: 0

Maximum: 64

user_name

String

Username.

Minimum: 0

Maximum: 64

Table 6 LastUpdatedUser

Parameter

Type

Description

user_id

String

User ID (reserved).

Minimum: 0

Maximum: 64

user_name

String

Username.

Minimum: 0

Maximum: 64

Table 7 Authentication

Parameter

Type

Description

user_name

String

One-model-one-secret or one-device-one-secret username.

Minimum: 0

Maximum: 64

password

String

One-model-one-secret or one-device-one-secret password. The password must contain 8 to 32 characters, including at least one digit, one uppercase letter, one lowercase letter, and one special character (~!@#$%^&*()-_=+|[{}];:<>/?).

Minimum: 0

Maximum: 64

Status code: 400

Table 8 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.

Minimum: 0

Maximum: 64

error_msg

String

Error description.

Minimum: 0

Maximum: 200

request_id

String

Message ID.

Minimum: 0

Maximum: 64

Status code: 404

Table 9 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.

Minimum: 0

Maximum: 64

error_msg

String

Error description.

Minimum: 0

Maximum: 200

request_id

String

Message ID.

Minimum: 0

Maximum: 64

Status code: 500

Table 10 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.

Minimum: 0

Maximum: 64

error_msg

String

Error description.

Minimum: 0

Maximum: 200

request_id

String

Message ID.

Minimum: 0

Maximum: 64

Example Requests

{
  "app_id" : "ef3845be-091a-4ab5-869a-9de0025e2165",
  "name" : "device",
  "manufacturer_id" : 10001,
  "manufacturer_name" : "test",
  "model" : "model1",
  "product_type" : 0,
  "protocol_type" : 0,
  "status" : 0,
  "device_type" : "Default"
}

Example Responses

Status code: 201

Created

{
  "permissions" : [ "read", "access", "delete", "modify" ],
  "id" : 120671,
  "product_serial" : "Dd1bRt122894",
  "app_id" : "a1503e51-46f7-4d23-8617-7cb2d28dde98",
  "name" : "pro-opcua",
  "manufacturer_id" : "pro-opcua",
  "manufacturer_name" : "pro-opcua",
  "model" : "pro-opcua",
  "product_type" : 0,
  "description" : "opcua product",
  "protocol_type" : 4,
  "device_type" : "default",
  "version" : "version",
  "status" : 0,
  "created_datetime" : 1607481372416,
  "last_updated_datetime" : 1607481372416,
  "app_name" : "app-link",
  "data_format" : 0,
  "created_user" : {
    "user_id" : "6546435432432",
    "user_name" : "user1"
  },
  "last_updated_user" : {
    "user_id" : "6546435432432",
    "user_name" : "user1"
  },
  "authentication" : {
    "user_name" : "4MjxbCl4q461",
    "password" : "********"
  }
}

Status code: 400

Bad Request

{
  "error_code" : "ROMA.00110001",
  "error_msg" : "The parameter does not meet verification rules: [name:Can not be empty, manufacturer_name:Can not be empty, manufacturer_id:Can not be empty, product_type:must not be null, app_id:must not be empty, model:Can not be empty]",
  "request_id" : "b728949c-dfb5-4277-b54e-7c05e1b0b598-1619663322828-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

201

Created

400

Bad Request

404

Not Found

500

Internal Server Error

Error Codes

See Error Codes.