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);
    }
}