- Documentation
- Asset Tree Node
- Search Related Asset Node
Search Related Asset Node¶
Search for assets under the specified asset tree based on the relationship with a known asset.
Operation Permissions¶
Required Authorization |
Required Operation Permission |
---|---|
Asset Tree Management |
Read |
Request Format¶
POST https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=searchRelatedAsset
Request Parameters (URI)¶
Name |
Location (Path/Query) |
Mandatory/Optional |
Data Type |
Description |
---|---|---|---|---|
orgId |
Query |
Mandatory |
String |
The organization ID which the asset belongs to. How to get orgId>> |
treeId |
Query |
Mandatory |
String |
The asset tree ID. How to get treeId>> |
Request Parameters (Body)¶
Name |
Mandatory/Optional |
Data Type |
Description |
---|---|---|---|
filter |
Optional |
Filter Struct |
The query criteria. The relationship between all the queried criteria uses the “AND” logical operator, i.e. all relationships between all the queried criteria must be true for data to be returned. |
pagination |
Optional |
Pagination Request Struct |
Lists the paging requirements in a request. When not specified, 100 records are displayed per page by default. The maximum records per page is 1000 but for optimal performance, it is recommended to have not more than 50 records per page. |
projection |
Optional |
String Array |
Enables you to crop the data result set returned in the interface request if needed. Only the specified fields will be returned in the data result set if this parameter is used. Otherwise all fields are returned. How does projection crop the result set>> |
Filter Struct ¶
Note
isParentOfAssetId
, isChildOfAssetId
, isAncestorOfAssetId
, and isDescendantOfAssetId
cannot be used concurrently. Only one can be used per query.
Name |
Mandatory/Optional |
Data Type |
Description |
---|---|---|---|
assetIds |
Optional |
String Array |
The asset ID. Provide multiple asset IDs if you want to query multiple assets. How to get assetId>> |
nameLike |
Optional |
I18nSearchVo Struct |
The asset Name. Supports fuzzy query. For more details, see I18nSearchVo Struct. |
modelIds |
Optional |
String Array |
The model ID. Provide multiple root model IDs if you want to query multiple models. How to get modelID>> |
rootModelIds |
Optional |
String Array |
The model ID of the root node. Provide multiple root model IDs if you want to query multiple root nodes. |
isParentOfAssetId |
Optional (See Note above) |
String |
The asset to be queried is the immediate parent node of the specified asset, and its value is the asset ID of the specified asset. |
isChildOfAssetId |
Optional (See Note above) |
String |
The asset to be queried is the immediate child node of the specified asset, and its value is the asset ID of the specified asset. |
isAncestorOfAssetId |
Optional (See Note above) |
String |
The asset to be queried is the ancestor node of the specified asset, and its value is the asset ID of the specified asset. |
isDescendantOfAssetId |
Optional (See Note above) |
String |
The asset to be queried is the descendant node of the specified asset, and its value is the asset ID of the specified asset. |
I18nSearchVo Struct ¶
Name |
Mandatory/Optional |
Data Type |
Description |
---|---|---|---|
locale |
Optional |
String |
The locale language, currently supporting:
|
value |
Optional |
String |
The corresponding asset name for the locale. If null, no data will be returned. If blank, the data under the specified locale will be returned. |
Response Parameters¶
Name |
Data Type |
Description |
---|---|---|
data |
Array of AssetVo Structs |
For the definition of an AssetVo struct, see AssetVo Struct. |
AssetVo Struct ¶
Name |
Data Type |
Description |
---|---|---|
assetId |
String |
The asset ID. |
modelId |
String |
The model ID of this asset. |
modelIdPath |
String |
The path of the model ID. |
name |
StringI18n |
The asset’s name in its respective locale’s language. For more details on the structure and locales supported, see Internationalized name struct. |
timezone |
String |
Timezone where the asset is located. |
description |
String |
The description of the asset. |
label |
String |
The type of asset.
|
inValid |
Boolean |
|
attributes |
Map |
The attributes of the model which the asset belongs to. Key is the attribute ID, which is of String type. The Value type depends on the attribute defined in the model. |
tags |
Map |
User-defined tags. The Key and Value are of String type. How to use tags>> |
childAssetNodeCount |
Integer |
The number of child nodes. If Note: EnOS Edge does not support this parameter. |
Error Codes¶
Code |
Message |
Description |
---|---|---|
99400 |
Invalid arguments |
The request parameter is invalid. Check the request parameters. |
99500 |
System error |
Internal server error. Contact EnOS support. |
Samples¶
Request Sample¶
url: https://{apigw-address}/asset-tree-service/v2.1/asset-nodes?action=searchRelatedAsset&treeId=k6wweMTP&orgId=yourOrgId
method: POST
requestBody:
{
"filter": {
"isChildOfAssetId": "4R6PbfVj"
},
"action": "searchRelatedAsset",
"projection": ["attributes", "assetId", "name"]
}
Return Sample¶
{
"code":0,
"msg":"OK",
"requestId":"153ad7a2-2ec1-41b0-b750-e4ea2ce2786c",
"data":[
{
"assetId":"8byS3cuc",
"name":{
"i18nValue":{
},
"defaultValue":"ycmdevice_1"
},
"attributes":{
},
"childAssetNodeCount": 6
},
{
"assetId":"Fq5M1Y6E",
"name":{
"i18nValue":{
},
"defaultValue":"ycmdevice_3"
},
"attributes":{
},
"childAssetNodeCount": 2
},
{
"assetId":"nPQUW0Nr",
"name":{
"i18nValue":{
"en_US":"Rebecca_testSiteAPI3"
},
"defaultValue":"Rebecca_testSiteAPI3"
},
"attributes":{
},
"childAssetNodeCount": 3
},
{
"assetId":"oLrrH1uz",
"name":{
"i18nValue":{
},
"defaultValue":"Rebecca_Service1"
},
"attributes":{
},
"childAssetNodeCount": 6
},
{
"assetId":"vuT6x3Xl",
"name":{
"i18nValue":{
},
"defaultValue":"ycmdevice_2"
},
"attributes":{
},
"childAssetNodeCount": 1
}
],
"pagination":{
"pageNo":1,
"pageSize":10,
"totalSize":10,
"sortedBy":null
}
}
Java SDK Sample¶
package com.envisioniot.enos.asset_tree_service;
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.api.common.constant.request.Projection;
import com.envisioniot.enos.asset_tree_service.v2_1.*;
import com.envisioniot.enos.asset_tree_service.vo.AssetSearchVo;
import com.envisioniot.enos.asset_tree_service.vo.RelatedAssetSearchVo;
import org.junit.Test;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class SearchNodeTest {
private static String AccessKey = "yourAccessKey";
private static String SecretKey = "yourSecretKey";
private static String OrgId = "yourOrgId";
private static String ServerUrl = "yourServerUrl";
@Test
public void testSearchRelatedAssetNode() {
SearchRelatedAssetNodeRequest request = new SearchRelatedAssetNodeRequest();
request.setOrgId(OrgId);
request.setTreeId("yourTreeId");
RelatedAssetSearchVo filter = new RelatedAssetSearchVo();
filter.setIsChildOfAssetId("yourAssetId");
Projection onep = new Projection();
onep.addAll(Arrays.asList("attributes", "assetId", "name"));
request.setFilter(filter);
request.setProjection(onep);
request.setFilter(filter);
SearchRelatedAssetNodeResponse response =
Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug()).url(ServerUrl)
.getResponse(request, SearchRelatedAssetNodeResponse.class);
}
}