Update Thing Model


更新模型。

操作权限

需授权的资源

所需操作权限

模型

Update

请求格式

POST https://{apigw-address}/model-service/v2.1/thing-models?action=update

请求参数(URI)

名称

位置(Path/Query)

必需/可选

数据类型

描述

orgId

Query

必需

String

模型所属的 OU ID。如何获取 orgId 信息>>

isPatchUpdate

Query

可选

Boolean

是否是局部更新,默认为 true

  • 当其值为 true 时,只更新参数中指定字段的值。

  • 当其值为 false 时,更新所有字段的值,即未指定值的字段将被置空。

请求参数(Body)

名称

必需/可选

数据类型

描述

modelId

必需

String

模型标识符。

name

isPatchUpdatefalse 时必填

StringI18n

模型名称,其结构参见 国际化名称结构体

desc

可选

String

模型描述。

category

可选

String

模型分类。

tags

可选

Map (Key 为 String,Value 为 String)

用户自定义标签。

featuresToDelete

可选

String Array

需要删除的 features ID 列表。只有 isPatchUpdatetrue 的情况下该参数才有效。如果 array 中的 feature 出现在 attributesmeasurepointseventsservices 中,该 feature 不会被删除。

attributes

可选

Map(Key 为 String,Value 为 ThingAttribute 结构体)

静态属性定义的 map 类型值,key 为静态属性 ID,value 为属性定义。属性定义的结构参见 ThingAttribute 结构体

注:无法在当前模型中添加父模型或子模型中已存在的属性。

measurepoints

可选

Map(Key 为 String,Value 为 ThingMeasurepoint 结构体)

测点定义的 map 类型值,key 为测点 ID,value 为测点定义。测点定义的结构参见 ThingMeasurepoint 结构体

注:无法在当前模型中添加父模型或子模型中已存在的测点。

services

可选

Map(Key 为 String,Value 为 ThingService 结构体)

服务定义的 map 类型值,key 为服务 ID,value 为服务定义。服务定义的结构参见 ThingService 结构体

注:无法在当前模型中添加父模型或子模型中已存在的服务。

events

可选

Map(Key 为 String,Value 为 ThingEvent 结构体)

事件定义的 map 类型值,key 为事件 ID,value 为事件定义。事件定义的结构参见 ThingEvent 结构体

注:无法在当前模型中添加父模型或子模型中已存在的事件。

ThingAttribute 结构体

名称

必需/可选

数据类型

描述

identifier

可选

String

属性 ID。

dataType

可选

String

数据类型。比如:ARRAY、BOOL、DATE、ENUM、INT、FLOAT、DOUBLE、STRUCT、STRING、TIMESTAMP、FILE。

dataDefinition

可选

String

本结构体内 datatype 的数据定义,是一个 JSON 字符串。如对于 String 的数据类型,需要定义长度。对于 enum 的数据类型需要定义取值及描述。如何使用 dataDefinition>>

isRequired

可选

Boolean

是否是必须的属性。如果为 true,则要求资产在实例化的时候必须设置该属性的值,否则资产在创建的时候会返回校验失败的错误。

defaultValue

可选

根据属性的定义决定

属性的默认值。如果没有设置默认值,则为 null。

注:EnOS Edge 不支持该参数。

name

可选

StringI18n

支持国际化的属性名称。结构参见 国际化名称结构体

desc

可选

String

属性描述。

i18nDesc

可选

StringI18n

支持国际化的描述。结构参见 国际化名称结构体

tags

可选

Map (Key 为 String,Value 为 String)

用户自定义标签。

isStdElement

可选

Boolean

是否是标准元素。true 为是,false 为否。

注:EnOS Edge 不支持该参数。

stdElementId

可选

String

当元素是标准元素时,标准元素的URN,其命名格式为 urn:enos:modelelement:std: <id> : <version>id 为元素标识符,<version> 表示元素的版本。如果该元素不是标准元素,则值为 null

如果提供了 stdElementId,那么元素定义将取自标准元素定义,忽略 dataDefinition 字段。

注:EnOS Edge 不支持该参数。

unit

可选

Unit 结构体

单位。参见 Unit 结构体

ThingMeasurepoint 结构体

名称

必需/可选

数据类型

描述

identifier

可选

String

测点 ID。

dataType

可选

String

数据类型。比如:ARRAY、DATE、ENUM、INT、FLOAT、DOUBLE、STRUCT、STRING、TIMESTAMP、FILE。

dataDefinition

可选

String

本结构体内 datatype 的数据定义,是一个 JSON 字符串。如对于 String 的数据类型,需要定义长度。对于 enum 的数据类型需要定义取值及描述。如何使用 dataDefinition>>

name

可选

StringI18n

支持国际化的测点名称。结构参见 国际化名称结构体

desc

可选

String

测点描述。

i18nDesc

可选

StringI18n

支持国际化的描述。结构参见 国际化名称结构体

tags

可选

Map (Key 为 String,Value 为 String)

用户自定义标签。

isStdElement

可选

Boolean

是否是标准元素。true 为是,false 为否。

注:EnOS Edge 不支持该参数。

stdElementId

可选

String

当元素是标准元素时,标准元素的 URN,其命名格式为 urn:enos:modelelement:std: <id> : <version>id 为元素标识符,<version> 表示元素的版本。如果该元素不是标准元素,则值为 null

如果提供了 stdElementId,那么元素定义将取自标准元素定义,忽略 dataDefinition 字段。

注:EnOS Edge 不支持该参数。

hasQuality

可选

Boolean

是否有质量位。

signalType

可选

String

信号类型。有如下类型:Generic、AI、PI、DI。

unit

可选

Unit 结构体

单位。参见 Unit 结构体

ThingService 结构体

名称

必需/可选

数据类型

描述

identifier

可选

String

服务 ID。

name

可选

StringI18n

支持国际化的服务名称。结构参见 国际化名称结构体

desc

可选

String

服务描述。

i18nDesc

可选

StringI18n

支持国际化的描述。结构参见 国际化名称结构体

tags

可选

Map (Key 为 String,Value 为 String)

用户自定义标签。

isStdElement

可选

Boolean

是否是标准元素。true 为是,false 为否。

注:EnOS Edge 不支持该参数。

stdElementId

可选

String

当元素是标准元素时,标准元素的 URN,其命名格式为 urn:enos:modelelement:std: <id> : <version>id 为元素标识符,<version> 表示元素的版本。如果该元素不是标准元素,则值为 null

如果提供了 stdElementId,那么元素定义将取自标准元素定义,忽略 dataDefinition 字段。

注:EnOS Edge 不支持该参数。

inputData

可选

ThingDatapoint 结构体

Service 的入参列表。参见 ThingDatapoint 结构体

outputData

可选

ThingDatapoint 结构体

Service 返回参数列表。参见 ThingDatapoint 结构体

callType

可选

String

注意:callType 已废弃,未来会删除,请不要使用。调用类型。SYNC 表示同步,ASYNC 表示异步。

ThingEvent 结构体

名称

必需/可选

数据类型

描述

identifier

可选

String

事件 ID。

name

可选

StringI18n

支持国际化的事件名称。结构参见 国际化名称结构体

desc

可选

String

事件描述。

i18nDesc

可选

StringI18n

支持国际化的描述。结构参见 国际化名称结构体

tags

可选

Map (Key 为 String,Value 为 String)

用户自定义标签。

isStdElement

可选

Boolean

是否是标准元素。true 为是,false 为否。

注:EnOS Edge 不支持该参数。

stdElementId

可选

String

当元素是标准元素时,标准元素的URN,其命名格式为 urn:enos:modelelement:std: <id> : <version>id 为元素标识符,<version> 表示元素的版本。如果该元素不是标准元素,则值为 null

如果提供了 stdElementId,那么元素定义将取自标准元素定义,忽略 dataDefinition 字段。

注:EnOS Edge 不支持该参数。

outputData

可选

ThingDatapoint 结构体

Event 返回参数列表。参见 ThingDatapoint 结构体

eventType

可选

String

事件类型。有 INFOWARNERROR 三种取值。

ThingDatapoint 结构体

名称

必需/可选

数据类型

描述

identifier

可选

String

点 ID。

dataType

可选

String

数据类型。比如:ARRAY、DATE、ENUM、INT、FLOAT、DOUBLE、STRUCT、STRING、TIMESTAMP、FILE。

dataDefinition

可选

String

本结构体内 datatype 的数据定义,是一个 JSON 字符串。如对于 String 的数据类型,需要定义长度。对于 enum 的数据类型需要定义取值及描述。如何使用 dataDefinition>>

name

可选

StringI18n

支持国际化的测点名称。结构参见 国际化名称结构体

desc

可选

String

测点描述。

i18nDesc

可选

StringI18n

支持国际化的描述。结构参见 国际化名称结构体

tags

可选

Map (Key 为 String,Value 为 String)

用户自定义标签。

isStdElement

可选

Boolean

是否是标准元素。true 为是, false 为否。

注:EnOS Edge 不支持该参数。

stdElementId

可选

String

当元素是标准元素时,标准元素的 URN,其命名格式为 urn:enos:modelelement:std: <id> : <version>id 为元素标识符,<version> 表示元素的版本。如果该元素不是标准元素,则值为 null

注:EnOS Edge 不支持该参数。

unit

可选

Unit 结构体

单位。参见 Unit 结构体

isRequired

可选

Boolean

仅支持模型服务的 inputData,如果为 true(默认),要求调用命令时, 必须提供这个参数,除非 defaultValue 设置了非 null 值。

注:EnOS Edge 不支持该参数。

defaultValue

可选

根据点的数据类型决定

点的默认值。如果没有设置默认值,则为 null。仅支持模型服务的 inputData

注:EnOS Edge 不支持该参数。

Unit 结构体

名称

必需/可选

数据类型

描述

unitId

可选

String

单位的标识符。

multiplier

可选

String

单位的乘数。参见 Multiplier

Multiplier

单位的乘数有如下取值:

YOTTA ,//Y     10^24
ZETTA ,//Z     10^21
EXA   ,//E     10^18
PETA  ,//P     10^15
TERA  ,//T     10^12
GIGA  ,//G     10^9
MEGA  ,//M     10^6
KILO  ,//k     10^3
HECTO ,//h     10^2
DECA  ,//da    10^1
ONE   ,//      10^0
DECI  ,//d     10^-1
CENTI ,//c     10^-2
MILLI ,//m     10^-3
MICRO ,//μ     10^-6
NANO  ,//n     10^-9
PICO  ,//p     10^-12
FEMTO ,//f     10^-15
ATTO  ,//a     10^-18
ZEPTO ,//z     10^-21
YOCTO ,//y     10^-24

错误码

代码

描述

10404

模型不存在。

10945

模型元素与父子模型冲突

10952

模型四要素的数量超过限制

示例

请求示例

url: https://{apigw-address}/model-service/v2.1/thing-models?action=update&orgId=yourOrgId&isPatchUpdate=true
method: POST
requestBody:
{
  "modelId": "yourModelId",
  "name": {
    "defaultValue": "Device Name",
    "i18nValue": {
      "zh_CN": "设备名称",
      "en_US": "Device Name"
    }
  },
  "desc": "jw-1112",
  "category": "system",
  "tags": {
    "group": "1"
  },
  "attributes": {
    "capacity": {
      "identifier": "capacity",
      "name": {
        "defaultValue": "capacity",
        "i18nValue": {
          "en_US": "capacity",
          "zh_CN": "容量"
        }
      },
      "desc": "Capacity",
      "i18nDesc": {
        "defaultValue": "Capacity description",
        "i18nValue": {
          "en_US": "Capacity description",
          "zh_CN": "容量描述"
        }
      },
      "tags": {
        "cap": "1"
      },
      "stdElementId": "urn:user:modelelement:std:atom-property-int:1.0",
      "isStdElement": true,
      "dataType": "INT",
      "unit": {
          "unitId": "G",
          "multiplier": "ONE"
      },
      "dataDefinition": null,
      "isRequired": true,
      "defaultValue": 111
    }
  },
  "measurepoints": {
    "ActiveSC": {
      "identifier": "ActiveSC",
      "name": {
        "defaultValue": "活动状态字",
        "i18nValue": {
          "en_US": "ActiveSC_Name"
        }
      },
      "desc": "ActiveSC desc",
      "i18nDesc": {
        "defaultValue": "ActiveSC desc",
        "i18nValue": {
          "en_US": "ActiveSC desc",
          "zh_CN": "活动状态描述"
        }
      },
      "tags": {},
      "stdElementId": null,
      "isStdElement": false,
      "dataType": "INT",
      "unit": null,
      "dataDefinition": null,
      "hasQuality": false,
      "signalType": "DI"
    }
  },
  "services": {
    "speedup": {
      "identifier": "speedup",
      "name": {
        "defaultValue": "speedup",
        "i18nValue": {
          "en_US": "speedup"
        }
      },
      "desc": "Speedup",
      "i18nDesc": {
        "defaultValue": "Speedup",
        "i18nValue": {
          "en_US": "Speedup",
          "zh_CN": "加速"
        }
      },
      "tags": null,
      "stdElementId": null,
      "isStdElement": false,
      "outputData": [
        {
          "identifier": "delta",
          "name": {
            "defaultValue": "delta",
            "i18nValue": {
              "en_US": "delta"
            }
          },
          "desc": "Delta",
          "i18nDesc": {
            "defaultValue": "Delta",
            "i18nValue": {
              "en_US": "Delta",
              "zh_CN": "Delta 描述"
            }
          },
          "tags": {},
          "stdElementId": null,
          "isStdElement": false,
          "dataType": "INT",
          "unit": null,
          "dataDefinition": null
        }
      ],
      "inputData": [
        {
          "identifier": "delta",
          "name": {
            "defaultValue": "delta",
            "i18nValue": {
              "en_US": "delta"
            }
          },
          "desc": "Delta",
          "i18nDesc": {
            "defaultValue": "Delta",
            "i18nValue": {
              "en_US": "Delta",
              "zh_CN": "Delta 描述"
            }
          },
          "tags": {},
          "stdElementId": null,
          "isStdElement": false,
          "dataType": "INT",
          "unit": {
            "unitId": "rpm",
            "multiplier": "ONE"
          },
          "dataDefinition": null,
          "isRequired": false,
          "defaultValue": null
        }
      ],
      "callType": "ASYNC"
    }
  },
  "events": {
    "alert": {
      "identifier": "alert",
      "name": {
        "defaultValue": "alert",
        "i18nValue": {
          "en_US": "alert"
        }
      },
      "desc": "Alert",
      "i18nDesc": {
        "defaultValue": "Alert",
        "i18nValue": {
          "en_US": "Alert",
          "zh_CN": "告警"
        }
      },
      "tags": null,
      "stdElementId": null,
      "isStdElement": false,
      "outputData": [
        {
          "identifier": "event1",
          "name": {
            "defaultValue": "event1",
            "i18nValue": {
              "en_US": "event1"
            }
          },
          "desc": "Event 1",
          "i18nDesc": {
            "defaultValue": "Event 1",
            "i18nValue": {
              "en_US": "Event 1",
              "zh_CN": "事件"
            }
          },
          "tags": {},
          "stdElementId": null,
          "isStdElement": false,
          "dataType": "INT",
          "unit": null,
          "dataDefinition": null
        }
      ],
      "eventType": "ERROR"
    }
  }
}

返回示例

{
  "code": 0,
  "msg": "OK",
  "requestId": "fa11232e-7e45-4176-a382-963c1240a27f"
}

SDK 示例


你可以在 Github 上获取模型服务的 SDK 示例: