
# 创建规则引擎源端
#### 功能介绍
在ROMA Connect创建规则引擎源端。
#### URI
POST /v1/{project_id}/link/instances/{instance_id}/rules/sources
表1参数说明 
| **名称**      | **类型** | **是否必填** | **描述**                 |
|:---|:---|:---|:---|
| project_id  | string | 是        | 租户每个区域对应的项目ID。         |
| instance_id | string | 是        | 租户使用ROMA Connect的实例ID。 |
   
#### 请求消息
**请求参数**
表2Body参数 
| **参数**             | **类型**  | **是否必填** | **说明**                                                                                    |
|:---|:---|:---|:---|
| app_id             | string  | 否        | 应用ID，当系统中规则不存在，则该参数为必选。                                                                   |
| rule_name          | string  | 是        | 系统中已经创建好的规则名称，如果规则不存在，默认创建该规则。                                                            |
| level              | string  | 是        | 规则的级别，产品级填'product'，设备级填'device'。                                                         |
| product_name       | string  | 是        | 系统中已经创建好的产品的产品名。                                                                          |
| device_name        | string  | 否        | 系统中已经创建的设备名，当规则级别是产品级时，不用传设备名的参数。                                                         |
| topic              | string  | 否        | 设备对应的Topic的名称，只能使用pub权限的Topic，每个设备的Topic只能添加到一个规则下面，不能重复添加到不同的规则，当规则的级别是产品级时，不用传Topic的参数。 |
| is_base64          | boolean | 是        | 转发的消息是否要进行base64编码，传入true会对消息进行base64编码。                                                  |
| contain_deviceinfo | boolean | 否        | 转发的消息是否要包含设备的信息，传入true会在原始消息的基础上增加额外设备的信息。                                                |
   
**请求示例**
```
https://example.cloud.com/v1/80e2b******f4a398d6409a50932d917/link/instances/fb3b24ab-5d87-473d-9c57-fc6******6a1/rules/sources 
{
    "app_id" : "app01",
    "rule_name" : "rule01",
    "product_name" : "product01",
    "device_name" : "device01",
    "topic" : "7aANi9569518/out/ device01",
    "is_base64" : false,
    "contain_deviceinfo" : false,
    "level" : "device"
}
```
#### 响应消息
**响应参数**
表3响应参数 
| **名称**          | **类型**  | **描述**                                                                  |
|:---|:---|:---|
| clientId        | string  | 设备的客户端ID。                                                               |
| dataFormatTrans | string  | 转发消息的数据传输格式。如果开启base64加密，则传输格式为base64/raw；如果不开启base64加密，则传输格式为json/raw。 |
| deviceOid       | integer | 设备ID。                                                                   |
| instanceNo      | integer | 数据源端实例的编号。                                                              |
| productOid      | integer | 产品ID。                                                                   |
| ruleOid         | integer | 规则ID。                                                                   |
| ruleSrcLevel    | integer | 规则的级别，0为产品级，1为设备级。                                                      |
| ruleSrcOid      | integer | 规则源ID。                                                                  |
| topicName       | string  | 主题名。                                                                    |
   
**响应示例**
```
{
    "clientId": "D5695180f67c7200",
    "topicName": "7aANi9569518/out/ device01",
    "ruleSrcOid": 38,
    "ruleOid": 600004,
    "ruleSrcLevel": 1,
    "productOid": 569518,
    "deviceOid": 354769,
    "instanceNo": 1212,
    "dataFormatTrans": "json/raw"
}
```
