Create Logical Asset(Preview)


创建一个逻辑资产。

操作权限

需授权的资源 所需操作权限
资产树管理 Full Access

请求格式

POST https://{apigw-address}/asset-service/v2.1/logical-assets?action=create

请求参数(URI)

名称 位置(Path/Query) 必需/可选 数据类型 描述
orgId Query 必需 String 资产所属的组织 ID。如何获取 orgId 信息>>

请求参数(Body)

名称 必需/可选 数据类型 描述
assetInstance 必需 AssetCreateVo 结构体 创建逻辑资产所需要的详情。其结构参见下表。

AssetCreateVo 结构体

名称 必需/可选 数据类型 描述
modelId 必需 String 模型 ID。如何获取模型 ID>>
name 必需 StringI18n 该资产的各语言名称。其结构参见 国际化名称结构体
timezone 必需 String 资产所处的时区。其结构参见 时区表示方法
description 可选 String 该资产的描述。
attributes 由模型功能定义确定 Map(Key 为 String,Value 的数据类型由模型功能定义决定) 资产所属的模型属性,Key 为属性 ID。更多信息,参见 attributes 的表示方法
tags 可选 Map(Key 为 String,Value 为 String) 用户自定义标签。其结构参见 标签的作用与表示方法

响应参数

名称 数据类型 描述
data String 创建的逻辑资产 ID。

错误码

代码 错误信息 描述
17946 Quota limit error 该 OU 下资产超过上限。
17986 TSL instance validation failed 利用模型对该资产校验失败。

示例

请求示例

url: https://{apigw-address}/asset-service/v2.1/logical-assets?action=create&orgId=yourOrgId
method: POST
requestBody:
{
  "assetInstance": {
       "modelId": "model_001",
       "name": {
           "defaultValue": "instanceName",
           "i18nValue": {
                    "en_US": "English name ",
                    "zh_CN": "Chinese name"
                        }
               },
       "description": "description",
       "attributes": {
         "color": "blue",
         "number": 135
       },
       "timezone": "+08:00",
       "tags": {
           "year": "2000",
           "author": "authorName"
               }
           }
}

返回示例

{
  "code": 0,
  "msg": "OK",
  "data": "HfzFPn1H",
  "requestId": "fa11232e-7e45-4176-a382-963c1240a27f"
}

Java SDK 调用示例

public class CreateLogicAssetTest {

    private static String accessKey = "yourAccessKey";
    private static String secretKey = "yourSecretKey";
    private static String orgId = "yourOrgId";
    private static String serverUrl = "https://{apigw-address}";

    @Test
    public void testCreateAssetNode() {
        CreateLogicAssetRequest request = new CreateLogicAssetRequest();
        request.setOrgId(orgId);
        String modelId = "model_001";//enter the model ID
        Map < String, String > i18nValue = new HashMap();
        I18nVo name = new I18nVo();
        name.setDefaultValue("instanceName");
        name.setI18nValue(i18nValue);
        AssetCreateVo asset = new AssetCreateVo();
        asset.setModelId(modelId);
        asset.setName(name);
        asset.setTimezone("+08:00");
        asset.setDescription("description");
        request.setAsset(asset);
        CreateLogicAssetResponse response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
            .url(serverUrl).getResponse(request, CreateLogicAssetResponse.class);
    }
}