Delete Asset Node


从资产树上移除一个资产节点。待移除的资产可以是一个设备资产,也可以是一个逻辑资产。

操作权限

需授权的资源

所需操作权限

资产树管理

Full Access

请求格式

POST https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=delete

请求参数(URI)

备注

以下非必须字段中,必须提供 assetId (适用于设备资产和逻辑资产)或 productKey + deviceKey (仅适用于设备资产)的组合,用于指定设备。

名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

资产所属的组织 ID。如何获取 orgId 信息>>

treeId

Query

必需

String

需要获取的资产树 ID。如何获取资产树信息 ID>>

assetId

Query

可选

String

待移除的资产 ID。当存在 assetId 时,以 assetId 为准,当 assetId 不存在时,则看 productKeydeviceKey如何获取 asset ID信息>>

productKey

Query

可选

String

待移除设备的 Product Key(用于识别设备资产)。

deviceKey

Query

可选

String

待移除设备的 Device Key(用于识别设备资产)。

force

Query

可选

Boolean

  • true:删除该节点及其所有子节点

  • false (默认):如果该节点是叶子节点,则删除该节点。如果该节点有子节点,则不允许删除。

注:EnOS Edge 不支持该参数。

错误码

名称

错误信息

描述

17764

The root asset node cannot be deleted.

根节点不能被删除。

17766

The noleaf asset node cannot be deleted.

非叶子节点不能被删除。

17762

The tree is locked

一次只允许一个用户修改资产树,暂时不能操作该资产树,请再次请求。

99400

Invalid arguments

请求参数非法,请检查请求参数。

99404

TreeId does not exist

Tree ID 不存在。

99500

System error

服务器内部错误,请联系 EnOS。

示例

请求示例

url: https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=delete&orgId=yourOrgId&treeId=yourTreeId&force=true
method: POST

返回示例

{
  "code": 0,
  "msg": "ok",
  "requestId": "01b5477a-374e-49a0-8b68-7dbfe8f0b74f",
  "data": null
}

Java SDK 调用示例

package com.envisioniot.enos.asset_tree_service;

import com.envisioniot.enos.asset_tree_service.v2_1.DeleteAssetNodeRequest;
import com.envisioniot.enos.asset_tree_service.v2_1.DeleteAssetNodeResponse;
import org.junit.Test;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;

public class DeleteAssetNodeTest {
    private static String AccessKey = "yourAccessKey";
    private static String SecretKey = "yourSecretKey";
    private static String OrgId = "yourOrgId";
    private static String ServerUrl = "yourServerUrl";

    @Test
    public void testRequestRemoteBeta() throws Exception {
        DeleteAssetNodeRequest request = new DeleteAssetNodeRequest();
        request.setOrgId(OrgId);
        request.setTreeId("yourTreeId");
        request.setAssetId("yourAssetId");
        request.setForce(true);
        DeleteAssetNodeResponse response = Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug())
            .url(ServerUrl).getResponse(request, DeleteAssetNodeResponse.class);
        System.out.println(GsonUtil.toJson(response));
    }
}