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(用于识别设备资产)。

错误码

名称

错误信息

描述

17764

The root asset node cannot be deleted.

根节点不能被删除。

17766

The noleaf asset node cannot be deleted.

非叶子节点不能被删除。

17762

The tree is locked

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

99400

Invalid arguments

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

99500

System error

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

示例

请求示例

url: https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=delete&orgId=yourOrgId&treeId=yourTreeId
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");
        DeleteAssetNodeResponse response = Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug())
            .url(ServerUrl).getResponse(request, DeleteAssetNodeResponse.class);
    }
}