Create Asset Tree¶
创建一棵资产树,并同时创建该资产树的根节点。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
资产树管理 |
Full Access |
请求格式¶
POST https://{apigw-address}/asset-tree-service/v2.1/asset-trees?action=create
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织ID。如何获取orgId信息>> |
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
asset |
必需 |
Asset结构体 |
创建根节点资产所需的详情。见 Asset结构体>> |
tree |
可选 |
TreeCreateVo 结构体 |
创建资产树所需要的详情。见 TreeCreateVo结构体>> |
Asset结构体 ¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
modelId |
必需 |
String |
资产所属模型ID。 如何获取modelId信息>> |
name |
必需 |
StringI18n |
支持国际化的资产名称。结构请见 国际化名称结构体>> |
timezone |
必需 |
String |
资产所属时区。 使用+08:00格式表示不支持夏令时的时区。 使用Asia/Shanghai格式表示支持夏令时的时区。 详情请见 时区表示方法>> |
description |
可选 |
String |
资产描述。 |
attributes |
可选 |
Map(Key为String,Value为Object) |
资产所属的模型属性。详情请见 attributes的表示方法>> |
tags |
可选 |
Map(Key为String,Value为String) |
用户自定义标签。详情请见 标签的作用与表示方法>> |
TreeCreateVo结构体 ¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
name |
可选 |
StringI18n |
支持国际化的资产树名称。见 国际化名称结构体>> |
tags |
可选 |
Map |
用户自定义标签。详情请见 标签的作用与表示方法>> |
响应参数¶
名称 |
数据类型 |
描述 |
---|---|---|
data |
String |
创建的资产树ID。 |
错误码¶
名称 |
错误信息 |
描述 |
---|---|---|
17772 |
The quota of tree reaches ceiling |
资产树数量达到OU上限。 |
99400 |
Invalid arguments |
请求参数非法,请检查请求参数。 |
99500 |
System error |
服务器内部错误,请联系EnOS。 |
示例¶
请求示例¶
url: https://{apigw-address}/asset-tree-service/v2.1/asset-trees?action=create&orgId=yourOrgId
method: POST
requestBody:
{
"asset":{
"modelId":"modelName",
"name":{
"defaultValue":"Name"
},
"timezone":"+12:00",
"description":"Example of description"
},
"tree":{
"name":{
"defaultValue":"Name"
}
}
}
返回示例¶
{
"msg": "OK",
"code": 0,
"data": "HfzFPn1H",
"requestId": "bb4f8c40-604a-451e-83bd-99cfba6bd53e"
}
Java SDK调用示例¶
package com.envisioniot.enos.asset_tree_service;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.api.common.constant.request.Pagination;
import com.envisioniot.enos.api.common.constant.request.Projection;
import com.envisioniot.enos.asset_tree_service.v2_1.*;
import com.envisioniot.enos.asset_tree_service.vo.*;
import org.junit.Test;
import java.util.HashMap;
import java.util.Map;
public class AssetTreeTest {
private static String AccessKey = "yourAccessKey";
private static String SecretKey = "yourSecretKey";
private static String OrgId = "yourOrgId";
private static String ServerUrl = "yourServerUrl";
@Test
public void testCreateTree() {
TreeCreateVo tree = new TreeCreateVo();
I18nVo treeName = new I18nVo();
treeName.setDefaultValue("treeDefaultName");
tree.setName(treeName);
CreateTreeRequest request = new CreateTreeRequest();
Map < String, String > i18nValue = new HashMap();
i18nValue.put("zh_CN", "assetName");
I18nVo name = new I18nVo();
name.setDefaultValue("assetDefaultName");
name.setI18nValue(i18nValue);
AssetCreateVo asset = new AssetCreateVo();
asset.setModelId("yourModelId");
asset.setName(name);
asset.setTimezone("+08:00");
asset.setDescription("This is a sampled asset");
request.setTree(tree);
request.setAsset(asset);
request.setOrgId(OrgId);
CreateTreeResponse response = Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug())
.url(ServerUrl)
.getResponse(request, CreateTreeResponse.class);
}
}