Associate Asset


Link an existing asset to an asset tree. The asset to be linked can be a device asset or a non-device (logical) asset.

Operation Permissions

Required Authorization Required Operation Permission
Asset Tree Management Full Access

Request Format

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

Request Parameters (URI)

Note

Use one of the following methods to link an asset:

  • Include the assetId in the request
  • Include both productKey and deviceKey in the request
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>>
parentAssetId Query Mandatory String The asset ID of the parent node of the asset to be linked.
assetId Query Optional (See Note above) String The asset ID. How to get assetID>>
productKey Query Optional (See Note above) String The product key. To be used with deviceKey.
deviceKey Query Optional (See Note above) String The device key. To be used with productKey.

Response Parameters

Name Data Type Description
data String The ID of the asset that has been successfully linked.

Error Codes

Code Error Information Description
17404 TreeId is not exist The tree ID does not exist.
17752 Parent assetId is not existed in the tree The parent asset does not exist in this Tree
17558 AssetId is existed in the tree Asset ID already exists in the tree.
17762 The tree is locked The asset tree cannot be modified/deleted for the time being as someone is currently accessing the asset tree. Please try again later.
17770 Exceeding the layer limit(7) The tree exceeds the maximum number of layers (7 layers).
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=associateAsset&orgId=yourOrgId&treeId=yourTreeId&parentAssetId=yourAssetId&productKey=yourProductKey&deviceKey=yourDeviceKey
method: POST

Return Sample

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

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.asset_tree_service.v2_1.AssociateAssetNodeRequest;
import com.envisioniot.enos.asset_tree_service.v2_1.AssociateAssetNodeResponse;
import org.junit.Test;

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

    @Test
    public void testAssociateAssetNode() {
        AssociateAssetNodeRequest request = new AssociateAssetNodeRequest();
        request.setOrgId(OrgId);
        request.setTreeId("yourTreeId");
        request.setParentAssetId("yourParentAssetId");
        request.setAssetId("yourAssetId");
        AssociateAssetNodeResponse response = Poseidon.config(PConfig.init().appKey(AccessKey).appSecret(SecretKey).debug())
            .url(ServerUrl)
            .getResponse(request, AssociateAssetNodeResponse.class);
    }
}