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