
# 修改产品 - UpdateProduct
#### 功能介绍
应用服务器可调用此接口修改已导入物联网平台的指定产品模型，包括产品模型的服务、属性、命令等。此接口仅修改了产品，未修改和安装插件，如果修改了产品中的service定义，且在平台中有对应的插件，请修改并重新安装插件。
#### 调用方法
请参见[如何调用API](https://support.huaweicloud.com/api-iothub/iot_06_v5_0004.html)。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-iothub/iot_06_v5_0201.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                   | 访问级别  | 资源类型（\*为必须） | 条件键                   | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | iotda:products:modify | Write | app \*      | -                     | -  | -      |
  | iotda:products:modify | Write | -           | g:EnterpriseProjectId | -  | -      |
     
  
 
#### URI
PUT /v5/iot/{project_id}/products/{product_id}
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                    |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数说明** ：项目ID。获取方法请参见 [获取项目ID](https://support.huaweicloud.com/api-iothub/iot_06_v5_1001.html)。                                                                      |
| product_id | 是    | String | **参数说明**：产品ID，用于唯一标识一个产品，在物联网平台创建产品后由平台分配获得。 **取值范围**：长度不超过36，只允许字母、数字、下划线（_）、连接符（-）的组合。 |
   
#### 请求参数
表2请求Header参数 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                          |
|:---|:---|:---|:---|
| Instance-Id | 否    | String | **参数说明** ：实例ID。物理多租下各实例的唯一标识，建议携带该参数，在使用专业版时必须携带该参数。您可以在IoTDA管理控制台界面，选择左侧导航栏"总览"页签查看当前实例的ID，具体获取方式请参考[查看实例详情](https://support.huaweicloud.com/usermanual-iothub/iot_01_0079.html#section1)。 |
   
表3请求Body参数 
| 参数                   | 是否必选 | 参数类型                                                                                                                        | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| app_id               | 否    | String                                                                                                                      | **参数说明** ：资源空间ID。此参数为非必选参数，存在多资源空间的用户需要使用该接口时，建议携带该参数，指定要修改的产品属于哪个资源空间；若不携带，则优先修改[默认资源空间](https://support.huaweicloud.com/usermanual-iothub/iot_01_0006.html#section0)下产品，如默认资源空间下无对应产品，则按照产品创建时间修改最早创建产品。如果用户存在多资源空间，同时又不想携带该参数，可以联系技术支持对用户数据做资源空间合并。 **取值范围**：长度不超过36，只允许字母、数字、下划线（_）、连接符（-）的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| name                 | 否    | String                                                                                                                      | **参数说明**：产品名称。 **取值范围**：长度不超过64，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| device_type          | 否    | String                                                                                                                      | **参数说明**：设备类型。 **取值范围**：长度不超过32，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| protocol_type        | 否    | String                                                                                                                      | **参数说明**：设备使用的协议类型。注：禁止其他协议类型修改为CoAP。 **取值范围**：MQTT，CoAP，HTTP，HTTPS，Modbus，ONVIF，OPC-UA，OPC-DA，TCP，UDP，Other。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| data_format          | 否    | String                                                                                                                      | **参数说明**：设备上报数据的格式。 **取值范围**： - json：JSON格式   - binary：二进制码流格式    |
| service_capabilities | 否    | Array of [ServiceCapability] objects | **参数说明**：设备的服务能力列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| manufacturer_name    | 否    | String                                                                                                                      | **参数说明**：厂商名称。 **取值范围**：长度不超过32，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| industry             | 否    | String                                                                                                                      | **参数说明**：设备所属行业。 **取值范围**：长度不超过64，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| description          | 否    | String                                                                                                                      | **参数说明**：产品的描述信息。 **取值范围**：长度不超过128，只允许中文、字母、数字、空白字符、以及_?'#().,;\&%@!- ，、：；。￥$！【】''""（）？...\~/等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
 表4ServiceCapability 
| 参数           | 是否必选 | 参数类型                                                                                                                    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| service_id   | 是    | String                                                                                                                  | **参数说明**：设备的服务ID。注：产品内不允许重复。 **取值范围**：长度不超过64，只允许中文、字母、数字、以及_?'#().,\&%@!-$等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| service_type | 是    | String                                                                                                                  | **参数说明**：设备的服务类型。 **取值范围**：长度不超过64，只允许中文、字母、数字、以及_?'#().,\&%@!-$等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| properties   | 否    | Array of [ServiceProperty] objects | **参数说明**：设备服务支持的属性列表。 **取值范围**：数组长度大小不超过500。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| commands     | 否    | Array of [ServiceCommand] objects   | **参数说明**：设备服务支持的命令列表。 **取值范围**：数组长度大小不超过500。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| events       | 否    | Array of [ServiceEvent] objects       | **参数说明**：设备服务支持的事件列表。目前暂未支持自定义事件，创建/修改产品时无需定义该字段。 **取值范围**：数组长度大小不超过500。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| description  | 否    | String                                                                                                                  | **参数说明**：设备服务的描述信息。 **取值范围**：长度不超过128，只允许中文、字母、数字、空白字符、以及_?'#().,;\&%@!- ，、：；。￥$！【】''""（）？...\~/等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| option       | 否    | String                                                                                                                  | **参数说明**：指定设备服务是否必选。目前本字段为非功能性字段，仅起到标识作用。 **取值范围**： - Master：主服务   - Mandatory：必选服务   - Optional：可选服务    默认值为Optional。 |
   
 表5ServiceProperty 
| 参数            | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| property_name | 是    | String           | **参数说明**：设备属性名称。注：设备服务内不允许重复。属性名称作为设备影子JSON文档中的key不支持特殊字符：点(.)、dollar符号($)、空char(十六进制的ASCII码为00)，如果包含了以上特殊字符则无法正常刷新影子文档。 **取值范围**：长度不超过64，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| data_type     | 是    | String           | **参数说明**：参数的数据类型。 **取值范围**： - int : 整数类型。   - long: 长整型。   - decimal：小数类型。   - string：字符串类型。   - DateTime：日期类型。   - jsonObject：json对象类型。   - enum：枚举类型。   - boolean：布尔类型。   - string list: 字符串数组类型。    **默认值**： 不涉及 |
| required      | 否    | Boolean          | **参数说明**：设备属性是否必选。默认为false。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| enum_list     | 否    | Array of strings | **参数说明**：设备属性的枚举值列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| min           | 否    | String           | **参数说明**：设备属性的最小值。 **取值范围**：长度1-16。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| max           | 否    | String           | **参数说明**：设备属性的最大值。 **取值范围**：长度1-16。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| max_length    | 否    | Integer          | **参数说明**：设备属性的最大长度。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| step          | 否    | Double           | **参数说明**：设备属性的步长。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| unit          | 否    | String           | **参数说明**：设备属性的单位。 **取值范围**：长度不超过16。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| method        | 是    | String           | **参数说明**：设备属性的访问模式。 **取值范围**：RWE，RW，RE，WE，E，W，R。 - R：属性值可读。   - W：属性值可写   - E：属性值可订阅，即属性值变化时上报事件。   - RW: 属性值可读可写。   - RE:属性值可读可订阅。   - WE:属性值可写可订阅。   - RWE:属性值可读可写可订阅。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| description   | 否    | String           | **参数说明**：设备属性的描述。 **取值范围**：长度不超过128，只允许中文、字母、数字、空白字符、以及_?'#().,;\&%@!- ，、：；。￥$！【】''""（）？...\~/等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| default_value | 否    | Object           | **参数说明**：设备属性的默认值。如果设置了默认值，使用该产品创建设备时，会将该属性的默认值写入到该设备的设备影子预期数据中，待设备上线时将该属性默认值下发给设备。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表6ServiceCommand 
| 参数           | 是否必选 | 参数类型                                                                                                                                  | 描述                                                                                                                                                              |
|:---|:---|:---|:---|
| command_name | 是    | String                                                                                                                                | **参数说明**：设备命令名称。注：设备服务内不允许重复。 **取值范围**：长度不超过64，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。 |
| paras        | 否    | Array of [ServiceCommandPara] objects         | **参数说明**：设备命令的参数列表。                                                                                                                                             |
| responses    | 否    | Array of [ServiceCommandResponse] objects | **参数说明**：设备命令的响应列表。                                                                                                                                             |
   
 表7ServiceCommandResponse 
| 参数            | 是否必选 | 参数类型                                                                                                                          | 描述                                                                                                                                                    |
|:---|:---|:---|:---|
| response_name | 是    | String                                                                                                                        | **参数说明**：设备命令响应名称。 **取值范围**：长度不超过128，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。 |
| paras         | 否    | Array of [ServiceCommandPara] objects | **参数说明**：设备命令响应的参数列表。                                                                                                                                 |
   
 表8ServiceEvent 
| 参数         | 是否必选 | 参数类型                                                                                                                          | 描述                                                                                                                                                              |
|:---|:---|:---|:---|
| event_type | 是    | String                                                                                                                        | **参数说明**：设备事件类型。注：设备服务内不允许重复。 **取值范围**：长度不超过32，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。 |
| paras      | 否    | Array of [ServiceCommandPara] objects | **参数说明**：设备事件的参数列表。                                                                                                                                             |
   
 表9ServiceCommandPara 
| 参数          | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| para_name   | 是    | String           | **参数说明**：参数的名称。 **取值范围**：长度不超过32，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| data_type   | 是    | String           | **参数说明**：参数的数据类型。 **取值范围**： - int : 整数类型。   - long: 长整型。   - decimal：小数类型。   - string：字符串类型。   - DateTime：日期类型。   - jsonObject：json对象类型。   - enum：枚举类型。   - boolean：布尔类型。   - string list: 字符串数组类型。    **默认值**： 不涉及 |
| required    | 否    | Boolean          | **参数说明**：参数是否必选。默认为false。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| enum_list   | 否    | Array of strings | **参数说明**：参数的枚举值列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| min         | 否    | String           | **参数说明**：参数的最小值。 **取值范围**：长度1-16。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| max         | 否    | String           | **参数说明**：参数的最大值。 **取值范围**：长度1-16。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| max_length  | 否    | Integer          | **参数说明**：参数的最大长度。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| step        | 否    | Double           | **参数说明**：参数的步长。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| unit        | 否    | String           | **参数说明**：参数的单位。 **取值范围**：长度不超过16。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| description | 否    | String           | **参数说明**：参数的描述。 **取值范围**：长度不超过128，只允许中文、字母、数字、空白字符、以及_?'#().,;\&%@!- ，、：；。￥$！【】''""（）？...\~/等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
#### 响应参数
**状态码：200**
表10响应Body参数 
| 参数                   | 参数类型                                                                                                                         | 描述                                                                             |
|:---|:---|:---|
| app_id               | String                                                                                                                       | 资源空间ID。                                                                        |
| app_name             | String                                                                                                                       | 资源空间名称。                                                                        |
| product_id           | String                                                                                                                       | 产品ID，用于唯一标识一个产品，在物联网平台创建产品后由平台分配获得。                                            |
| name                 | String                                                                                                                       | 产品名称。                                                                          |
| device_type          | String                                                                                                                       | 设备类型。                                                                          |
| protocol_type        | String                                                                                                                       | 设备使用的协议类型。取值范围：MQTT，CoAP，HTTP，HTTPS，Modbus，ONVIF， OPC-UA，OPC-DA，TCP，UDP，Other。 |
| data_format          | String                                                                                                                       | 设备上报数据的格式，取值范围：json，binary。                                                    |
| manufacturer_name    | String                                                                                                                       | 厂商名称。                                                                          |
| industry             | String                                                                                                                       | 设备所属行业。                                                                        |
| description          | String                                                                                                                       | 产品的描述信息。                                                                       |
| service_capabilities | Array of [ServiceCapability] objects | 设备的服务能力列表。                                                                     |
| create_time          | String                                                                                                                       | 在物联网平台创建产品的时间，格式：yyyyMMdd'T'HHmmss'Z'，如20151212T121212Z。                       |
   
 表11ServiceCapability 
| 参数           | 参数类型                                                                                                                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|
| service_id   | String                                                                                                                   | **参数说明**：设备的服务ID。注：产品内不允许重复。 **取值范围**：长度不超过64，只允许中文、字母、数字、以及_?'#().,\&%@!-$等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| service_type | String                                                                                                                   | **参数说明**：设备的服务类型。 **取值范围**：长度不超过64，只允许中文、字母、数字、以及_?'#().,\&%@!-$等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| properties   | Array of [ServiceProperty] objects | **参数说明**：设备服务支持的属性列表。 **取值范围**：数组长度大小不超过500。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| commands     | Array of [ServiceCommand] objects   | **参数说明**：设备服务支持的命令列表。 **取值范围**：数组长度大小不超过500。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| events       | Array of [ServiceEvent] objects       | **参数说明**：设备服务支持的事件列表。目前暂未支持自定义事件，创建/修改产品时无需定义该字段。 **取值范围**：数组长度大小不超过500。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| description  | String                                                                                                                   | **参数说明**：设备服务的描述信息。 **取值范围**：长度不超过128，只允许中文、字母、数字、空白字符、以及_?'#().,;\&%@!- ，、：；。￥$！【】''""（）？...\~/等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| option       | String                                                                                                                   | **参数说明**：指定设备服务是否必选。目前本字段为非功能性字段，仅起到标识作用。 **取值范围**： - Master：主服务   - Mandatory：必选服务   - Optional：可选服务    默认值为Optional。 |
   
 表12ServiceProperty 
| 参数            | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| property_name | String           | **参数说明**：设备属性名称。注：设备服务内不允许重复。属性名称作为设备影子JSON文档中的key不支持特殊字符：点(.)、dollar符号($)、空char(十六进制的ASCII码为00)，如果包含了以上特殊字符则无法正常刷新影子文档。 **取值范围**：长度不超过64，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| data_type     | String           | **参数说明**：参数的数据类型。 **取值范围**： - int : 整数类型。   - long: 长整型。   - decimal：小数类型。   - string：字符串类型。   - DateTime：日期类型。   - jsonObject：json对象类型。   - enum：枚举类型。   - boolean：布尔类型。   - string list: 字符串数组类型。    **默认值**： 不涉及 |
| required      | Boolean          | **参数说明**：设备属性是否必选。默认为false。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| enum_list     | Array of strings | **参数说明**：设备属性的枚举值列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| min           | String           | **参数说明**：设备属性的最小值。 **取值范围**：长度1-16。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| max           | String           | **参数说明**：设备属性的最大值。 **取值范围**：长度1-16。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| max_length    | Integer          | **参数说明**：设备属性的最大长度。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| step          | Double           | **参数说明**：设备属性的步长。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| unit          | String           | **参数说明**：设备属性的单位。 **取值范围**：长度不超过16。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| method        | String           | **参数说明**：设备属性的访问模式。 **取值范围**：RWE，RW，RE，WE，E，W，R。 - R：属性值可读。   - W：属性值可写   - E：属性值可订阅，即属性值变化时上报事件。   - RW: 属性值可读可写。   - RE:属性值可读可订阅。   - WE:属性值可写可订阅。   - RWE:属性值可读可写可订阅。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| description   | String           | **参数说明**：设备属性的描述。 **取值范围**：长度不超过128，只允许中文、字母、数字、空白字符、以及_?'#().,;\&%@!- ，、：；。￥$！【】''""（）？...\~/等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| default_value | Object           | **参数说明**：设备属性的默认值。如果设置了默认值，使用该产品创建设备时，会将该属性的默认值写入到该设备的设备影子预期数据中，待设备上线时将该属性默认值下发给设备。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表13ServiceCommand 
| 参数           | 参数类型                                                                                                                                   | 描述                                                                                                                                                              |
|:---|:---|:---|
| command_name | String                                                                                                                                 | **参数说明**：设备命令名称。注：设备服务内不允许重复。 **取值范围**：长度不超过64，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。 |
| paras        | Array of [ServiceCommandPara] objects         | **参数说明**：设备命令的参数列表。                                                                                                                                             |
| responses    | Array of [ServiceCommandResponse] objects | **参数说明**：设备命令的响应列表。                                                                                                                                             |
   
 表14ServiceCommandResponse 
| 参数            | 参数类型                                                                                                                           | 描述                                                                                                                                                    |
|:---|:---|:---|
| response_name | String                                                                                                                         | **参数说明**：设备命令响应名称。 **取值范围**：长度不超过128，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。 |
| paras         | Array of [ServiceCommandPara] objects | **参数说明**：设备命令响应的参数列表。                                                                                                                                 |
   
 表15ServiceEvent 
| 参数         | 参数类型                                                                                                                           | 描述                                                                                                                                                              |
|:---|:---|:---|
| event_type | String                                                                                                                         | **参数说明**：设备事件类型。注：设备服务内不允许重复。 **取值范围**：长度不超过32，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。 |
| paras      | Array of [ServiceCommandPara] objects | **参数说明**：设备事件的参数列表。                                                                                                                                             |
   
 表16ServiceCommandPara 
| 参数          | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| para_name   | String           | **参数说明**：参数的名称。 **取值范围**：长度不超过32，只允许中文、字母、数字、以及_?'#().,\&%@!-等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| data_type   | String           | **参数说明**：参数的数据类型。 **取值范围**： - int : 整数类型。   - long: 长整型。   - decimal：小数类型。   - string：字符串类型。   - DateTime：日期类型。   - jsonObject：json对象类型。   - enum：枚举类型。   - boolean：布尔类型。   - string list: 字符串数组类型。    **默认值**： 不涉及 |
| required    | Boolean          | **参数说明**：参数是否必选。默认为false。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| enum_list   | Array of strings | **参数说明**：参数的枚举值列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| min         | String           | **参数说明**：参数的最小值。 **取值范围**：长度1-16。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| max         | String           | **参数说明**：参数的最大值。 **取值范围**：长度1-16。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| max_length  | Integer          | **参数说明**：参数的最大长度。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| step        | Double           | **参数说明**：参数的步长。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| unit        | String           | **参数说明**：参数的单位。 **取值范围**：长度不超过16。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| description | String           | **参数说明**：参数的描述。 **取值范围**：长度不超过128，只允许中文、字母、数字、空白字符、以及_?'#().,;\&%@!- ，、：；。￥$！【】''""（）？...\~/等字符的组合。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
   
#### 请求示例
修改一个产品，将产品名称修改为Thermometer，服务能力修改为temperature。
```
PUT https://{endpoint}/v5/iot/{project_id}/products/{product_id}
{
  "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka",
  "name" : "Thermometer，",
  "device_type" : "Thermometer",
  "protocol_type" : "MQTT",
  "data_format" : "json",
  "service_capabilities" : [ {
    "service_id" : "temperature。",
    "service_type" : "temperature",
    "properties" : [ {
      "property_name" : "temperature",
      "data_type" : "decimal",
      "required" : true,
      "enum_list" : null,
      "min" : "1",
      "max" : "100",
      "max_length" : 100,
      "step" : 0.1,
      "unit" : "centigrade",
      "method" : "RW",
      "description" : "force",
      "default_value" : {
        "color" : "red",
        "size" : 1
      }
    } ],
    "commands" : [ {
      "command_name" : "reboot",
      "paras" : [ {
        "para_name" : "force",
        "data_type" : "string",
        "required" : false,
        "enum_list" : null,
        "min" : "1",
        "max" : "100",
        "max_length" : 100,
        "step" : 0.1,
        "unit" : "km/h",
        "description" : "force"
      } ],
      "responses" : [ {
        "response_name" : "ACK",
        "paras" : [ {
          "para_name" : "force",
          "data_type" : "string",
          "required" : false,
          "enum_list" : null,
          "min" : "1",
          "max" : "100",
          "max_length" : 100,
          "step" : 0.1,
          "unit" : "km/h",
          "description" : "force"
        } ]
      } ]
    } ],
    "events" : [ {
      "event_type" : "reboot",
      "paras" : [ {
        "para_name" : "force",
        "data_type" : "string",
        "required" : false,
        "enum_list" : null,
        "min" : "1",
        "max" : "100",
        "max_length" : 100,
        "step" : 0.1,
        "unit" : "km/h",
        "description" : "force"
      } ]
    } ],
    "description" : "temperature",
    "option" : "Mandatory"
  } ],
  "manufacturer_name" : "ABC",
  "industry" : "smartCity",
  "description" : "this is a thermometer"
}
```
#### 响应示例
**状态码：200**
Successful response
```
{
  "app_id" : "jeQDJQZltU8iKgFFoW060F5SGZka",
  "app_name" : "testAPP01",
  "product_id" : "5ba24f5ebbe8f56f5a14f605",
  "name" : "Thermometer",
  "device_type" : "Thermometer",
  "protocol_type" : "MQTT",
  "data_format" : "json",
  "manufacturer_name" : "ABC",
  "industry" : "smartCity",
  "description" : "this is a thermometer",
  "service_capabilities" : [ {
    "service_id" : "temperature",
    "service_type" : "temperature",
    "properties" : [ {
      "property_name" : "temperature",
      "required" : true,
      "data_type" : "decimal",
      "enum_list" : null,
      "min" : "1",
      "max" : "100",
      "max_length" : 100,
      "step" : 0.1,
      "unit" : "centigrade",
      "method" : "RW",
      "description" : "force",
      "default_value" : {
        "color" : "red",
        "size" : 1
      }
    } ],
    "commands" : [ {
      "command_name" : "reboot",
      "paras" : [ {
        "para_name" : "force",
        "required" : false,
        "data_type" : "string",
        "enum_list" : null,
        "min" : "1",
        "max" : "100",
        "max_length" : 100,
        "step" : 0.1,
        "unit" : "km/h",
        "description" : "force"
      } ],
      "responses" : [ {
        "response_name" : "ACK",
        "paras" : [ {
          "para_name" : "force",
          "required" : false,
          "data_type" : "string",
          "enum_list" : null,
          "min" : "1",
          "max" : "100",
          "max_length" : 100,
          "step" : 0.1,
          "unit" : "km/h",
          "description" : "force"
        } ]
      } ]
    } ],
    "events" : [ {
      "event_type" : "reboot",
      "paras" : [ {
        "para_name" : "force",
        "required" : false,
        "data_type" : "string",
        "enum_list" : null,
        "min" : "1",
        "max" : "100",
        "max_length" : 100,
        "step" : 0.1,
        "unit" : "km/h",
        "description" : "force"
      } ]
    } ],
    "description" : "temperature",
    "option" : "Mandatory"
  } ],
  "create_time" : "20190303T081011Z"
}
```
#### SDK代码示例
SDK代码示例如下。
- [Java]
  修改一个产品，将产品名称修改为Thermometer，服务能力修改为temperature。
  ```
  package com.huaweicloud.sdk.test;
  import com.huaweicloud.sdk.core.auth.ICredential;
  import com.huaweicloud.sdk.core.auth.AbstractCredentials;
  import com.huaweicloud.sdk.core.auth.BasicCredentials;
  import com.huaweicloud.sdk.core.exception.ConnectionException;
  import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
  import com.huaweicloud.sdk.core.exception.ServiceResponseException;
  import com.huaweicloud.sdk.core.region.Region;
  import com.huaweicloud.sdk.iotda.v5.*;
  import com.huaweicloud.sdk.iotda.v5.model.*;
  import java.util.List;
  import java.util.ArrayList;
  public class UpdateProductSolution {
      public static void main(String[] args) {
          // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
          // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
          String ak = System.getenv("CLOUD_SDK_AK");
          String sk = System.getenv("CLOUD_SDK_SK");
          // ENDPOINT：请在控制台的"总览"界面的"平台接入地址"中查看“应用侧”的https接入地址。
          String iotdaEndpoint = "<YOUR ENDPOINT>";
          String projectId = "{project_id}";
          ICredential auth = new BasicCredentials()
                  .withProjectId(projectId)
                  // 标准版/企业版需要使用衍生算法，基础版请删除配置"withDerivedPredicate";
                  .withDerivedPredicate(AbstractCredentials.DEFAULT_DERIVED_PREDICATE) // Used in derivative ak/sk authentication scenarios
                  .withAk(ak)
                  .withSk(sk);
          IoTDAClient client = IoTDAClient.newBuilder()
                  .withCredential(auth)
                  // 标准版/企业版：需自行创建Region对象，基础版：请使用IoTDARegion的region对象，如"withRegion(IoTDARegion.CN_NORTH_4)"
                  .withRegion(new Region("cn-north-4", iotdaEndpoint))
                  .build();
          UpdateProductRequest request = new UpdateProductRequest();
          request.withProductId("{product_id}");
          UpdateProduct body = new UpdateProduct();
          List<ServiceCommandPara> listEventsParas = new ArrayList<>();
          listEventsParas.add(
              new ServiceCommandPara()
                  .withParaName("force")
                  .withDataType("string")
                  .withRequired(false)
                  .withMin("1")
                  .withMax("100")
                  .withMaxLength(100)
                  .withStep((double)0.1)
                  .withUnit("km/h")
                  .withDescription("force")
          );
          List<ServiceEvent> listServiceCapabilitiesEvents = new ArrayList<>();
          listServiceCapabilitiesEvents.add(
              new ServiceEvent()
                  .withEventType("reboot")
                  .withParas(listEventsParas)
          );
          List<ServiceCommandPara> listResponsesParas = new ArrayList<>();
          listResponsesParas.add(
              new ServiceCommandPara()
                  .withParaName("force")
                  .withDataType("string")
                  .withRequired(false)
                  .withMin("1")
                  .withMax("100")
                  .withMaxLength(100)
                  .withStep((double)0.1)
                  .withUnit("km/h")
                  .withDescription("force")
          );
          List<ServiceCommandResponse> listCommandsResponses = new ArrayList<>();
          listCommandsResponses.add(
              new ServiceCommandResponse()
                  .withResponseName("ACK")
                  .withParas(listResponsesParas)
          );
          List<ServiceCommandPara> listCommandsParas = new ArrayList<>();
          listCommandsParas.add(
              new ServiceCommandPara()
                  .withParaName("force")
                  .withDataType("string")
                  .withRequired(false)
                  .withMin("1")
                  .withMax("100")
                  .withMaxLength(100)
                  .withStep((double)0.1)
                  .withUnit("km/h")
                  .withDescription("force")
          );
          List<ServiceCommand> listServiceCapabilitiesCommands = new ArrayList<>();
          listServiceCapabilitiesCommands.add(
              new ServiceCommand()
                  .withCommandName("reboot")
                  .withParas(listCommandsParas)
                  .withResponses(listCommandsResponses)
          );
          List<ServiceProperty> listServiceCapabilitiesProperties = new ArrayList<>();
          listServiceCapabilitiesProperties.add(
              new ServiceProperty()
                  .withPropertyName("temperature")
                  .withDataType("decimal")
                  .withRequired(true)
                  .withMin("1")
                  .withMax("100")
                  .withMaxLength(100)
                  .withStep((double)0.1)
                  .withUnit("centigrade")
                  .withMethod("RW")
                  .withDescription("force")
                  .withDefaultValue("{\"color\":\"red\",\"size\":1}")
          );
          List<ServiceCapability> listbodyServiceCapabilities = new ArrayList<>();
          listbodyServiceCapabilities.add(
              new ServiceCapability()
                  .withServiceId("temperature。")
                  .withServiceType("temperature")
                  .withProperties(listServiceCapabilitiesProperties)
                  .withCommands(listServiceCapabilitiesCommands)
                  .withEvents(listServiceCapabilitiesEvents)
                  .withDescription("temperature")
                  .withOption("Mandatory")
          );
          body.withDescription("this is a thermometer");
          body.withIndustry("smartCity");
          body.withManufacturerName("ABC");
          body.withServiceCapabilities(listbodyServiceCapabilities);
          body.withDataFormat("json");
          body.withProtocolType("MQTT");
          body.withDeviceType("Thermometer");
          body.withName("Thermometer,");
          body.withAppId("jeQDJQZltU8iKgFFoW060F5SGZka");
          request.withBody(body);
          try {
              UpdateProductResponse response = client.updateProduct(request);
              System.out.println(response.toString());
          } catch (ConnectionException e) {
              e.printStackTrace();
          } catch (RequestTimeoutException e) {
              e.printStackTrace();
          } catch (ServiceResponseException e) {
              e.printStackTrace();
              System.out.println(e.getHttpStatusCode());
              System.out.println(e.getRequestId());
              System.out.println(e.getErrorCode());
              System.out.println(e.getErrorMsg());
          }
      }
  }
  ```
- [Python]
  修改一个产品，将产品名称修改为Thermometer，服务能力修改为temperature。
  ```
  # coding: utf-8
  import os
  from huaweicloudsdkcore.auth.credentials import BasicCredentials
  from huaweicloudsdkcore.auth.credentials import DerivedCredentials
  from huaweicloudsdkcore.region.region import Region as coreRegion
  from huaweicloudsdkcore.exceptions import exceptions
  from huaweicloudsdkiotda.v5 import *
  if __name__ == "__main__":
      # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
      # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
      ak = os.environ["CLOUD_SDK_AK"]
      sk = os.environ["CLOUD_SDK_SK"]
      # ENDPOINT：请在控制台的"总览"界面的"平台接入地址"中查看“应用侧”的https接入地址，下面创建Client时需要使用自行创建的Region对象，基础版：请选择IoTDAClient中的Region对象 如： IoTDAClient.new_builder().with_region(IoTDARegion.CN_NORTH_4)
      endpoint = "<YOUR ENDPOINT>";
      projectId = "{project_id}"
      credentials = BasicCredentials(ak, sk, projectId).with_derived_predicate(DerivedCredentials.get_default_derived_predicate())
      client = IoTDAClient.new_builder() \
          .with_credentials(credentials) \
          .with_region(coreRegion(id="cn-north-4", endpoint=endpoint)) \
          .build()
      try:
          request = UpdateProductRequest()
          request.product_id = "{product_id}"
          listParasEvents = [
              ServiceCommandPara(
                  para_name="force",
                  data_type="string",
                  required=False,
                  min="1",
                  max="100",
                  max_length=100,
                  step=0.1,
                  unit="km/h",
                  description="force"
              )
          ]
          listEventsServiceCapabilities = [
              ServiceEvent(
                  event_type="reboot",
                  paras=listParasEvents
              )
          ]
          listParasResponses = [
              ServiceCommandPara(
                  para_name="force",
                  data_type="string",
                  required=False,
                  min="1",
                  max="100",
                  max_length=100,
                  step=0.1,
                  unit="km/h",
                  description="force"
              )
          ]
          listResponsesCommands = [
              ServiceCommandResponse(
                  response_name="ACK",
                  paras=listParasResponses
              )
          ]
          listParasCommands = [
              ServiceCommandPara(
                  para_name="force",
                  data_type="string",
                  required=False,
                  min="1",
                  max="100",
                  max_length=100,
                  step=0.1,
                  unit="km/h",
                  description="force"
              )
          ]
          listCommandsServiceCapabilities = [
              ServiceCommand(
                  command_name="reboot",
                  paras=listParasCommands,
                  responses=listResponsesCommands
              )
          ]
          listPropertiesServiceCapabilities = [
              ServiceProperty(
                  property_name="temperature",
                  data_type="decimal",
                  required=True,
                  min="1",
                  max="100",
                  max_length=100,
                  step=0.1,
                  unit="centigrade",
                  method="RW",
                  description="force",
                  default_value="{\"color\":\"red\",\"size\":1}"
              )
          ]
          listServiceCapabilitiesbody = [
              ServiceCapability(
                  service_id="temperature。",
                  service_type="temperature",
                  properties=listPropertiesServiceCapabilities,
                  commands=listCommandsServiceCapabilities,
                  events=listEventsServiceCapabilities,
                  description="temperature",
                  option="Mandatory"
              )
          ]
          request.body = UpdateProduct(
              description="this is a thermometer",
              industry="smartCity",
              manufacturer_name="ABC",
              service_capabilities=listServiceCapabilitiesbody,
              data_format="json",
              protocol_type="MQTT",
              device_type="Thermometer",
              name="Thermometer,",
              app_id="jeQDJQZltU8iKgFFoW060F5SGZka"
          )
          response = client.update_product(request)
          print(response)
      except exceptions.ClientRequestException as e:
          print(e.status_code)
          print(e.request_id)
          print(e.error_code)
          print(e.error_msg)
  ```
- [Go]
  修改一个产品，将产品名称修改为Thermometer，服务能力修改为temperature。
  ```
  package main
  import (
  "fmt"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
      iotda "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/iotda/v5"
  "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/iotda/v5/model"
      region "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/region"
      core_auth "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth"
  )
  func main() {
      // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
      // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
      ak := os.Getenv("CLOUD_SDK_AK")
      sk := os.Getenv("CLOUD_SDK_SK")
      // endpoint：请在控制台的"总览"界面的"平台接入地址"中查看"应用侧"的https接入地址
      endpoint := "<YOUR ENDPOINT>"
      projectId := "{project_id}"
      auth, err := basic.NewCredentialsBuilder().
          WithAk(ak).
          WithSk(sk).
          WithProjectId(projectId).
          // 企业版/标准版需要使用衍生算法，基础版请删除该配置"WithDerivedPredicate"
          WithDerivedPredicate(core_auth.GetDefaultDerivedPredicate()). // Used in derivative ak/sk authentication scenarios
          SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      hcClient, err := iotda.IoTDAClientBuilder().
           // 标准版/企业版需要自行创建region，基础版使用IoTDARegion中的region对象
           WithRegion(region.NewRegion("cn-north-4", endpoint)).
           WithCredential(auth).
           SafeBuild()
      if err != nil {
          fmt.Println(err)
          return
      }
      client := iotda.NewIoTDAClient(hcClient)
      request := &model.UpdateProductRequest{}
  request.ProductId = "{product_id}"
  requiredParas:= false
  minParas:= "1"
  maxParas:= "100"
  maxLengthParas:= int32(100)
  stepParas:= float64(0.1)
  unitParas:= "km/h"
  descriptionParas:= "force"
  var listParasEvents = []model.ServiceCommandPara{
          {
              ParaName: "force",
              DataType: "string",
              Required: &requiredParas,
              Min: &minParas,
              Max: &maxParas,
              MaxLength: &maxLengthParas,
              Step: &stepParas,
              Unit: &unitParas,
              Description: &descriptionParas,
          },
      }
  var listEventsServiceCapabilities = []model.ServiceEvent{
          {
              EventType: "reboot",
              Paras: &listParasEvents,
          },
      }
  requiredParas1:= false
  minParas1:= "1"
  maxParas1:= "100"
  maxLengthParas1:= int32(100)
  stepParas1:= float64(0.1)
  unitParas1:= "km/h"
  descriptionParas1:= "force"
  var listParasResponses = []model.ServiceCommandPara{
          {
              ParaName: "force",
              DataType: "string",
              Required: &requiredParas1,
              Min: &minParas1,
              Max: &maxParas1,
              MaxLength: &maxLengthParas1,
              Step: &stepParas1,
              Unit: &unitParas1,
              Description: &descriptionParas1,
          },
      }
  var listResponsesCommands = []model.ServiceCommandResponse{
          {
              ResponseName: "ACK",
              Paras: &listParasResponses,
          },
      }
  requiredParas2:= false
  minParas2:= "1"
  maxParas2:= "100"
  maxLengthParas2:= int32(100)
  stepParas2:= float64(0.1)
  unitParas2:= "km/h"
  descriptionParas2:= "force"
  var listParasCommands = []model.ServiceCommandPara{
          {
              ParaName: "force",
              DataType: "string",
              Required: &requiredParas2,
              Min: &minParas2,
              Max: &maxParas2,
              MaxLength: &maxLengthParas2,
              Step: &stepParas2,
              Unit: &unitParas2,
              Description: &descriptionParas2,
          },
      }
  var listCommandsServiceCapabilities = []model.ServiceCommand{
          {
              CommandName: "reboot",
              Paras: &listParasCommands,
              Responses: &listResponsesCommands,
          },
      }
  requiredProperties:= true
  minProperties:= "1"
  maxProperties:= "100"
  maxLengthProperties:= int32(100)
  stepProperties:= float64(0.1)
  unitProperties:= "centigrade"
  descriptionProperties:= "force"
  defaultValueProperties:= "{\"color\":\"red\",\"size\":1}"
  var defaultValuePropertiesInterface interface{} = defaultValueProperties
  var listPropertiesServiceCapabilities = []model.ServiceProperty{
          {
              PropertyName: "temperature",
              DataType: "decimal",
              Required: &requiredProperties,
              Min: &minProperties,
              Max: &maxProperties,
              MaxLength: &maxLengthProperties,
              Step: &stepProperties,
              Unit: &unitProperties,
              Method: "RW",
              Description: &descriptionProperties,
              DefaultValue: &defaultValuePropertiesInterface,
          },
      }
  descriptionServiceCapabilities:= "temperature"
  optionServiceCapabilities:= "Mandatory"
  var listServiceCapabilitiesbody = []model.ServiceCapability{
          {
              ServiceId: "temperature。",
              ServiceType: "temperature",
              Properties: &listPropertiesServiceCapabilities,
              Commands: &listCommandsServiceCapabilities,
              Events: &listEventsServiceCapabilities,
              Description: &descriptionServiceCapabilities,
              Option: &optionServiceCapabilities,
          },
      }
  descriptionUpdateProduct:= "this is a thermometer"
  industryUpdateProduct:= "smartCity"
  manufacturerNameUpdateProduct:= "ABC"
  dataFormatUpdateProduct:= "json"
  protocolTypeUpdateProduct:= "MQTT"
  deviceTypeUpdateProduct:= "Thermometer"
  nameUpdateProduct:= "Thermometer,"
  appIdUpdateProduct:= "jeQDJQZltU8iKgFFoW060F5SGZka"
  request.Body = &model.UpdateProduct{
  Description: &descriptionUpdateProduct,
  Industry: &industryUpdateProduct,
  ManufacturerName: &manufacturerNameUpdateProduct,
  ServiceCapabilities: &listServiceCapabilitiesbody,
  DataFormat: &dataFormatUpdateProduct,
  ProtocolType: &protocolTypeUpdateProduct,
  DeviceType: &deviceTypeUpdateProduct,
  Name: &nameUpdateProduct,
  AppId: &appIdUpdateProduct,
  }
  response, err := client.UpdateProduct(request)
  if err == nil {
          fmt.Printf("%+v\n", response)
      } else {
          fmt.Println(err)
      }
  }
  ```
- [更多]
  更多编程语言的SDK代码示例，请参见[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IoTDA/sdk?api=UpdateProduct)的代码示例页签，可生成自动对应的SDK代码示例。
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | Successful response   |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | FORBIDDEN             |
| 404 | Not Found             |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iothub/ErrorCode.html)。
