
# 更新终端设备模板 - UpdateDeviceTemplateById
#### 功能介绍
更新一个终端设备模板。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IEF/doc?api=UpdateDeviceTemplateById)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ief/ief_02_1003.html)。
#### URI
PUT /v2/{project_id}/edgemgr/device-templates/{device_template_id}
表1路径参数 
| 参数                 | 是否必选 | 参数类型   | 描述     |
|:---|:---|:---|:---|
| project_id         | 是    | String | 项目ID   |
| device_template_id | 是    | String | 设备模板ID |
#### 请求参数
表2请求Header参数 
| 参数              | 是否必选 | 参数类型   | 描述                                                        |
|:---|:---|:---|:---|
| Content-Type    | 是    | String | 消息体的类型（格式），默认取值为"application/json"。                       |
| X-Auth-Token    | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
| ief-instance-id | 否    | String | 企业版实例ID，专业版实例为空值。                                         |
   
表3请求Body参数 
| 参数              | 是否必选 | 参数类型                                                                                               | 描述   |
|:---|:---|:---|:---|
| device_template | 是    | [DeviceTemplateUpdateDetail] object | 设备模板 |
   
 表4DeviceTemplateUpdateDetail 
| 参数                | 是否必选 | 参数类型                                                                                                | 描述                                                     |
|:---|:---|:---|:---|
| description       | 否    | String                                                                                              | 设备模板描述，最大长度255                                         |
| attributes        | 否    | Map\<String,[ValueInAttributes]\>             | 终端设备静态属性，最多64个键值。                                      |
| twin              | 否    | Map\<String,[ValueInTwin]\>                         | 终端设备动态属性                                               |
| tags              | 否    | [tags] object                                              | 设备模板标签，key-value键值对形式。                                 |
| access_protocol   | 否    | String                                                                                              | - userdefine：自定义协议 - modbus：modbus协议 - opc-ua：opc-ua协议 |
| property_visitors | 否    | Map\<String,[ValueInPropertyVisitors]\> | 孪生属性配置，与access_protocol关联。                             |
   
 表5ValueInTwin 
| 参数       | 是否必选 | 参数类型                                                           | 描述         |
|:---|:---|:---|:---|
| excepted | 否    | [Excepted] object | 动态属性的期望信息  |
| optional | 否    | Boolean                                                        | 动态属性的实际信息  |
| metadata | 否    | [metadata] object | 动态属性的元数据信息 |
   
 表6Excepted 
| 参数       | 是否必选 | 参数类型                                                           | 描述                                                                          |
|:---|:---|:---|:---|
| value    | 否    | String                                                         | 动态属性的初始值，最大长度512，value允许英文字母、数字、下划线、中划线、点、逗号、冒号、/、@、+、?、\^、=、%、\&、\~、#、!、\* |
| metadata | 否    | [metadata] object | 期望值设置的时间信息                                                                  |
   
 表7metadata 
| 参数   | 是否必选 | 参数类型   | 描述                                                                 |
|:---|:---|:---|:---|
| type | 否    | String | 属性类型标识，string\|int\|float\|boolean（boolean类型为true或false），默认为string |
   
 表8tags 
| 参数    | 是否必选 | 参数类型   | 描述                                           |
|:---|:---|:---|:---|
| key   | 否    | String | 标签key值，长度取值范围为1\~36， 仅允许大小写英文字母、数字、下划线、中划线   |
| value | 否    | String | 标签value值，长度取值范围为0\~43， 仅允许大小写英文字母、数字、下划线、中划线 |
   
 表9ValueInPropertyVisitors 
| 参数                | 是否必选 | 参数类型                                                                             | 描述                                                                                      |
|:---|:---|:---|:---|
| register_type     | 否    | [ValueInAttributes] object | 寄存器类型，value值字段可选为CoilsRegisters、HoldingRegisters、DiscreteInputsRegisters、InputRegisters |
| access_mode       | 否    | [ValueInAttributes] object | 访问模式，value值字段可选为r和r/w                                                                   |
| register_index    | 否    | [ValueInAttributes] object | 寄存器偏移地址，value值字段取值范围0-65535                                                             |
| register_num      | 否    | [ValueInAttributes] object | 寄存器个数                                                                                   |
| scale_index       | 否    | [ValueInAttributes] object | 缩放因子                                                                                    |
| original_datatype | 否    | [ValueInAttributes] object | 原始数据类型                                                                                  |
| expected_datatype | 否    | [ValueInAttributes] object | 期望数据类型                                                                                  |
| is_registerswap   | 否    | [ValueInAttributes] object | 是否交换寄存器顺序                                                                               |
| is_swap           | 否    | [ValueInAttributes] object | 是否交换高低字节                                                                                |
| sample_interval   | 否    | [ValueInAttributes] object | 数据采集间隔，取值范围为1-3600                                                                      |
| data_min          | 否    | [ValueInAttributes] object | 原始数据值区间最小值，与原始数据类型关联                                                                    |
| data_max          | 否    | [ValueInAttributes] object | 原始数据值区间最大值，与原始数据类型关联                                                                    |
| node_id           | 否    | [ValueInAttributes] object | 节点id                                                                                    |
| browse_name       | 否    | [ValueInAttributes] object | 节点名称                                                                                    |
   
 表10ValueInAttributes 
| 参数       | 是否必选 | 参数类型                                                           | 描述                                                                       |
|:---|:---|:---|:---|
| value    | 是    | String                                                         | value 最大长度512，value允许英文字母、数字、下划线、中划线、点、逗号、冒号、/、@、+、?、\^、=、%、\&、\~、#、!、\* |
| optional | 否    | Boolean                                                        | 标识属性是否可选，默认为true                                                         |
| metadata | 否    | [Metadata] object | 静态属性的元数据信息，默认为{"type": "string"}                                         |
   
 表11Metadata 
| 参数   | 是否必选 | 参数类型   | 描述                                                                 |
|:---|:---|:---|:---|
| type | 否    | String | 属性类型标识，string\|int\|float\|boolean（boolean类型为true或false），默认为string |
   
#### 响应参数
**状态码：200**
表12响应Body参数 
| 参数              | 参数类型                                                                      | 描述     |
|:---|:---|:---|
| device_template | [EdgemgrDevice] object | 终端设备属性 |
   
 表13EdgemgrDevice 
| 参数                | 参数类型                                                                                                 | 描述                                                                               |
|:---|:---|:---|
| id                | String                                                                                               | 终端设备ID，只允许英文字母、数字、下划线、中划线，必须以英文字母和数字开头，长度限制为24\~64之间                             |
| name              | String                                                                                               | 终端设备名称，只允许中文字符、英文字母、数字、下划线、中划线，长度限制为1\~64                                        |
| access_protocol   | String                                                                                               | 访问协议，有如下选项： - userdefine：自定义协议 - modbus：modbus协议 - opc-ua：opc-ua协议 默认为userdefine |
| description       | String                                                                                               | 终端设备描述，最大长度255，不允许\^ \~ # $ % \& \* \< \> ( ) \[ \] { } ' " \\                   |
| attributes        | Map\<String,[ValueInAttributes]\>             | 静态属性                                                                             |
| twin              | Map\<String,[ValueInTwinResponse]\>         | 终端设备静态属性信息                                                                       |
| project_id        | String                                                                                               | 项目ID                                                                             |
| created_at        | String                                                                                               | 创建时间                                                                             |
| updated_at        | String                                                                                               | 更新时间                                                                             |
| property_visitors | Map\<String,[ValueInPropertyVisitors]\> | 孪生属性配置                                                                           |
| tags              | [ResourceTag] object                                | 标签属性                                                                             |
   
 表14ValueInTwinResponse 
| 参数       | 参数类型                                                                        | 描述                               |
|:---|:---|:---|
| excepted | [ExceptedActual] object | 动态属性的期望信息                        |
| actual   | [ExceptedActual] object | 动态属性的实际信息                        |
| metadata | [Metadata] object             | 动态属性的元数据信息                       |
| optional | Boolean                                                                     | 标识属性是否可选，默认为true，继承模板的属性默认为false |
   
 表15ExceptedActual 
| 参数    | 参数类型   | 描述                                                                          |
|:---|:---|:---|
| value | String | 动态属性的初始值，最大长度512，value允许英文字母、数字、下划线、中划线、点、逗号、冒号、/、@、+、?、\^、=、%、\&、\~、#、!、\* |
   
 表16ValueInPropertyVisitors 
| 参数                | 参数类型                                                                              | 描述                                                                                      |
|:---|:---|:---|
| register_type     | [ValueInAttributes] object | 寄存器类型，value值字段可选为CoilsRegisters、HoldingRegisters、DiscreteInputsRegisters、InputRegisters |
| access_mode       | [ValueInAttributes] object | 访问模式，value值字段可选为r和r/w                                                                   |
| register_index    | [ValueInAttributes] object | 寄存器偏移地址，value值字段取值范围0-65535                                                             |
| register_num      | [ValueInAttributes] object | 寄存器个数                                                                                   |
| scale_index       | [ValueInAttributes] object | 缩放因子                                                                                    |
| original_datatype | [ValueInAttributes] object | 原始数据类型                                                                                  |
| expected_datatype | [ValueInAttributes] object | 期望数据类型                                                                                  |
| is_registerswap   | [ValueInAttributes] object | 是否交换寄存器顺序                                                                               |
| is_swap           | [ValueInAttributes] object | 是否交换高低字节                                                                                |
| sample_interval   | [ValueInAttributes] object | 数据采集间隔，取值范围为1-3600                                                                      |
| data_min          | [ValueInAttributes] object | 原始数据值区间最小值，与原始数据类型关联                                                                    |
| data_max          | [ValueInAttributes] object | 原始数据值区间最大值，与原始数据类型关联                                                                    |
| node_id           | [ValueInAttributes] object | 节点id                                                                                    |
| browse_name       | [ValueInAttributes] object | 节点名称                                                                                    |
   
 表17ValueInAttributes 
| 参数       | 参数类型                                                            | 描述                                                                       |
|:---|:---|:---|
| value    | String                                                          | value 最大长度512，value允许英文字母、数字、下划线、中划线、点、逗号、冒号、/、@、+、?、\^、=、%、\&、\~、#、!、\* |
| optional | Boolean                                                         | 标识属性是否可选，默认为true                                                         |
| metadata | [Metadata] object | 静态属性的元数据信息，默认为{"type": "string"}                                         |
   
 表18Metadata 
| 参数   | 参数类型   | 描述                                                                 |
|:---|:---|:---|
| type | String | 属性类型标识，string\|int\|float\|boolean（boolean类型为true或false），默认为string |
   
 表19ResourceTag 
| 参数    | 参数类型   | 描述                                                                                                   |
|:---|:---|:---|
| key   | String | 键。最大长度36个unicode字符。 不能为空，只能包含大小写字母，数字，中划线"-"，下划线"_"。                                                 |
| value | String | 值。每个值最大长度43个unicode字符，删除时如果value有值按照key/value删除，如果value没值，则按照key删除。 不能为空，只能包含大小写字母，数字，中划线"-"，下划线"_"。 |
   
#### 请求示例
更新终端设备模板，更新终端设备动态属性和静态属性。
```
{
  "device_template" : {
    "description" : "This is a camera template",
    "attributes" : {
      "cameraURL" : {
        "value" : "127.0.0.1",
        "metadata" : {
          "type" : "string"
        }
      }
    },
    "twin" : {
      "runstate" : {
        "expected" : {
          "value" : "running"
        },
        "metadata" : {
          "type" : "string"
        }
      }
    }
  }
}
```
#### 响应示例
**状态码：200**
ok
```
{
  "device_template" : {
    "name" : "CameraTemplate",
    "description" : "This is a camera template",
    "created_at" : "2018-07-16T04:01:21.212072",
    "updated_at" : "2018-07-18T04:01:21.212017",
    "access_protocol" : "userdefine",
    "project_id" : "d16e6eb6cc0d49a0941df2f31285757a",
    "id" : "82952098-ec24-4643-94e6-9989174fce05",
    "attributes" : {
      "cameraURL" : {
        "value" : "127.0.0.1",
        "metadata" : {
          "type" : "string"
        }
      }
    },
    "twin" : {
      "runstate" : {
        "expected" : {
          "value" : "running"
        },
        "metadata" : {
          "type" : "string"
        }
      }
    }
  }
}
```
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | ok |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-ief/ErrorCode.html)。
