Update Asset¶
全量或部分更新资产信息。
操作权限¶
需授权的资源 |
所需操作权限 |
---|---|
资产 |
Write |
约束条件¶
需要更新的资产必须存在。
需要更新的目标字段必须存在。
请求格式¶
POST https://{apigw-address}/asset-service/v2.1/assets?action=update
请求参数(URI)¶
名称 |
位置(Path/Query) |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|---|
orgId |
Query |
必需 |
String |
资产所属的组织ID。如何获取orgId信息>> |
isPatchUpdate |
Query |
可选 |
Boolean |
是否是局部更新,默认为
|
请求参数(Body)¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
asset |
必需 |
|
用于资产更新。
+ 当
|
AssetUpdateVo结构体¶
名称 |
必需/可选 |
数据类型 |
描述 |
---|---|---|---|
assetId |
必需 |
String |
资产ID。如何获取Asset ID信息>> |
name |
可选 |
StringI18n |
该资产的各语言名称。结构请见 国际化名称结构体>> |
description |
可选 |
String |
资产描述 |
attributes |
|
Map (Key为String,Value类型根据该属性的定义决定) |
|
timezone |
可选 |
String |
时区。详情请见 时区表示方法>> |
tags |
可选 |
Map (Key为String, Value为String) |
用户自定义标签,详情见 标签的作用与表示方法>> |
错误码¶
代码 |
描述 |
---|---|
12958 |
由于资产属性校验失败导致更新失败。 |
示例 1¶
请求示例¶
url: https://{apigw-address}/asset-service/v2.1/assets?action=update&orgId=yourOrgId&isPatchUpdate=true
method: POST
requestBody:
{
"asset": {
"assetId": "Instance_001",
"name": {
"defaultValue": "instanceName",
"i18nValue": {
"en_US": "English name ",
"zh_CN": "Chinese name"
}
},
"description": "hahdesc",
"attributes": {},
"timezone": "+08:00",
"tags": {
"year": "2000",
"author": "authorName"
}
}
}
返回示例¶
{
"code": 0,
"msg": "OK",
"requestId": "fa11232e-7e45-4176-a382-963c1240a27f"
}
Java SDK调用示例¶
public class UpdateAsset {
private static String accessKey = "yourAppAccessKey";
private static String secretKey = "yourAppSecretKey";
private static String orgId = "yourOrgId";
private static String url = "https://{apigw-address}";
//调用该示例代码之前,确保EnOS管理门户中存在以该Asset ID命名的资产,且需要更新的字段存在,标识符与示例代码中使用的相同。
public static void main(String[] args) {
UpdateAssetRequest request = new UpdateAssetRequest();
request.setOrgId(orgId);
AssetUpdateVo asset = new AssetUpdateVo();
asset.setAssetId("XBOBqC1O");
Map<String, Object> newAttrs = new HashMap<>();
newAttrs.put("doubleTest",123.45);
asset.setAttributes(newAttrs);
request.setAsset(asset);
request.setIsPatchUpdate(true);
UpdateAssetResponse response = Poseidon.config(PConfig.init().appKey(accessKey).appSecret(secretKey).debug())
.url(url)
.getResponse(request, request.getResponseClass());
System.out.println(response);
}
}