Update Asset¶
全量或部分更新资产信息。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
资产树管理 |
Full Access |
约束条件¶
需要更新的资产必须存在。
需要更新的目标字段必须存在。
请求格式¶
POST https://{apigw-address}/asset-service/v2.1/assets?action=update
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织 ID。如何获取 orgId 信息>> |
弃用 isPatchUpdate |
Query |
可选 |
Boolean |
该参数在 2.3 CU 2 及其后的版本中已弃用,推荐使用
|
updateMode |
Query |
可选 |
String |
更新模式。使用该参数需安装 2.3 CU 2。如果请求中包含此参数与
|
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
asset |
必需 |
AssetUpdateVo 结构体 |
用于资产更新的信息。其结构参见 AssetUpdateVo 结构体。 |
AssetUpdateVo 结构体 ¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
assetId |
必需 |
String |
资产 ID。如何获取 Asset ID 信息>> |
name |
可选 |
StringI18n |
该资产的各语言名称。结构请见 国际化名称结构体>> |
description |
可选 |
String |
资产描述 |
attributes |
|
Map(Key 为 String,Value 的数据类型由模型功能定义决定) |
资产所属的模型属性,Key 为属性 ID。更多信息,参见 attributes 的表示方法>> |
timezone |
可选 |
String |
时区。时区表示方法>> |
tags |
可选 |
Map (Key 和 Value 为 String) |
用户自定义标签。标签的作用与表示方法>> |
tagKeys |
仅当 |
String 数组 |
待删除资产标签的列表,由其标签键定义。 |
错误码¶
代码 |
错误信息 |
描述 |
---|---|---|
12404 |
Asset is not existent |
|
12958 |
Asset validate failed |
由于资产属性校验失败导致更新失败。 |
示例 1¶
请求示例¶
url: https://{apigw-address}/asset-service/v2.1/assets?action=update&orgId=yourOrgId&updateMode=tagDelete
method: POST
requestBody:
{
"asset": {
"assetId": "yourAssetId",
"name": {
"defaultValue": "instanceName",
"i18nValue": {
"en_US": "English name ",
"zh_CN": "Chinese name"
}
},
"description": "description",
"attributes": {
"number": 135
},
"timezone": "+08:00",
"tags": {
"year": "2000",
"author": "authorName"
},
"tagKeys": ["book1","book2"]
}
}
返回示例¶
{
"code": 0,
"msg": "OK",
"requestId": "fa11232e-7e45-4176-a382-963c1240a27f"
}
Java SDK 调用示例¶
import com.envision.apim.poseidon.config.PConfig;
import com.envision.apim.poseidon.core.Poseidon;
import com.envisioniot.enos.asset_service.v2_1.UpdateAssetRequest;
import com.envisioniot.enos.asset_service.v2_1.UpdateAssetResponse;
import com.envisioniot.enos.asset_service.vo.AssetUpdateVo;
import java.util.HashMap;
import java.util.Map;
public class UpdateAsset {
private static String accessKey = "yourAccessKey";
private static String secretKey = "yourSecretKey";
private static String orgId = "yourOrgId";
private static String serverUrl = "https://{apigw-address}";
//Make sure that an asset with this asset ID and the fields to be updated exist.
public static void main(String[] args) {
UpdateAssetRequest request = new UpdateAssetRequest();
request.setOrgId(orgId);
request.setUpdateMode(UpdateAssetRequest.UPDATE_MODE_TAG_DELETE);
AssetUpdateVo asset = new AssetUpdateVo();
Map<String,String> tags = new HashMap<>();
tags.put("book1","book2");
asset.setTags(tags);
asset.setAssetId("yourAssetId");
request.setAsset(asset);
UpdateAssetResponse response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
.url(serverUrl)
.getResponse(request, request.getResponseClass());
System.out.println(response);
}
}