Update Logical Asset(Preview)¶
更新全部或部分逻辑资产的信息。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
资产树管理 |
Full Access |
约束条件¶
需要更新的逻辑资产必须存在。
需要更新的目标字段必须存在。
请求格式¶
POST https://{apigw-address}/asset-service/v2.1/logical-assets?action=update
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织 ID。如何获取 orgId 信息>> |
isPatchUpdate |
Query |
可选 |
Boolean |
是否只更新一部分信息。
|
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
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) |
用户自定义标签。标签的作用与表示方法>> |
错误码¶
代码 |
错误信息 |
描述 |
---|---|---|
17404 |
Logical asset does not exist |
|
17958 |
Asset validation failed |
根据模型校验资产失败。 |
示例¶
请求示例¶
url: https://{apigw-address}/asset-service/v2.1/logical-asset?action=update&orgId=yourOrgId&isPatchUpdate=true
method: POST
requestBody:
{
"assetUpdateVo":{
"assetId":"yourAssetId",
"name":{
"defaultValue":"instanceName",
"i18nValue":{
"en_US":"English name ",
"zh_CN":"Chinese name"
}
},
"description":"description",
"attributes":{
"color": "blue",
"number": 135
},
"timezone":"+08:00",
"tags":{
"year":"2000",
"author":"authorName"
}
}
}
返回示例¶
{
"code": 0,
"msg": "OK",
"requestId": "fa11232e-7e45-4176-a382-963c1240a27f"
}
Java SDK 调用示例¶
public class UpdateLogicAssetTest {
private static String accessKey = "yourAccessKey";
private static String secretKey = "yourSecretKey";
private static String orgId = "yourOrgId";
private static String serverUrl = "https://{apigw-address}";
@Test
public void testCreateAssetNode() {
UpdateLogicAssetRequest request = new UpdateLogicAssetRequest();
request.setOrgId(orgId);
AssetUpdateVo assetUpdateVo = new AssetUpdateVo();
assetUpdateVo.setAssetId("yourAssetId");//要更新的逻辑资产 ID,输入设备 ID 则更新失败
I18nVo name = new I18nVo();
name.setDefaultValue("instanceName");
assetUpdateVo.setName(name);
request.setAsset(assetUpdateVo);
UpdateLogicAssetResponse response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
.url(serverUrl).getResponse(request, UpdateLogicAssetResponse.class);
}
}