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。当存在 |
productKey |
Query |
可选 |
String |
待移除设备的 Product Key(用于识别设备资产)。 |
deviceKey |
Query |
可选 |
String |
待移除设备的 Device Key(用于识别设备资产)。 |
force |
Query |
可选 |
Boolean |
注: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));
}
}