Update Asset


全量或部分更新资产信息。

操作权限


使用此 API 前,确保服务账号已被授予包含下列服务和操作权限的策略。有关授权服务账号的更多信息,参见 管理服务账号

需授权的服务 操作权限
资产树 Full Access

约束条件


  • 需要更新的资产必须存在。
  • 需要更新的目标字段必须存在。

请求格式


POST https://{apigw-address}/asset-service/v2.1/assets?action=update

请求参数(URI)


名称 位置(Path/Query) 必需/可选 数据类型 描述
orgId Query 必需 String 资产所属的组织 ID。如何获取 orgId 信息>>
弃用 isPatchUpdate Query 可选 Boolean

该参数已弃用,推荐使用 updateMode 参数替代。

  • true (默认):只更新参数中指定字段的值。
  • false:更新所有字段的值,即未指定值的字段将被置空,或重置为默认值(如有)。
updateMode Query 可选 String

更新模式。如果请求中包含此参数与 isPatchUpdate 参数,将忽略 isPatchUpdate。可用的选项如下。

  • patchUpdate (默认):只更新参数中指定字段的值。未指定值的字段将被保留。
  • overwrite:更新所有字段的值。必须指定资产名称、时区等必填字段,否则 API 调用将失败。未指定非必填值的字段将置空,或重置为默认值(如有)。
  • tagDelete:只删除指定 assetIdtagKeys 中的指定标签。除 tagKeys 以外的参数将保持不变。

请求参数(Body)


名称 必需/可选 数据类型 描述
asset 必需 AssetUpdateVo 结构体 用于资产更新的信息。其结构参见 AssetUpdateVo 结构体

AssetUpdateVo 结构体


名称 必需/可选 数据类型 描述
assetId 必需 String 资产 ID。如何获取 Asset ID 信息>>
name 可选 StringI18n 该资产的各语言名称。结构请见 国际化名称结构体>>
description 可选 String 资产描述
attributes
  • 如果 updateModeoverwriteisPatchUpdatefalseattributes 必填,且必须包括所有模型功能定义中已规定的属性,并为他们赋值。
  • 如果 updateModepatchUpdateisPatchUpdatetrueattributes 可选,其对应的模型功能定义中的属性也都是选填的,属性的值也可以留空。
Map(Key 为 String,Value 的数据类型由模型功能定义决定) 资产所属的模型属性,Key 为属性 ID。更多信息,参见 attributes 的表示方法>>
timezone 可选 String 时区。时区表示方法>>
tags 可选 Map (Key 和 Value 为 String) 用户自定义标签。标签的作用与表示方法>>
tagKeys 仅当 updateModetagDelete 才生效。 String 数组 待删除资产标签的列表,由其标签键定义。

错误码


代码 错误信息 描述
12404 Asset is not existent assetId 未找到或不存在。
12958 Asset validate failed 由于资产属性校验失败导致更新失败。

示例

请求示例


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"
}

SDK 示例


你可以在 Github 上获取资产服务 API 的 SDK 示例: