
# 修改数据源
#### 功能介绍
修改数据源
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTAnalytics&api=UpdateDataSource)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### URI
PUT /v1/{project_id}/datasources/{datasource_id}
表1路径参数 
| 参数            | 是否必选 | 参数类型   | 描述                                |
|:---|:---|:---|:---|
| project_id    | 是    | String | projectid 最小长度：**1** 最大长度：**128** |
| datasource_id | 是    | String | 数据源id 最小长度：**1** 最大长度：**256**     |
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 租户Token 最小长度：**1** 最大长度：**65535** |
   
表3请求Body参数 
| 参数      | 是否必选 | 参数类型                                                                               | 描述                                  |
|:---|:---|:---|:---|
| name    | 是    | String                                                                             | 数据源名称 最大长度：**128**                  |
| type    | 是    | String                                                                             | 数据源类型, 包括：IOTDA、API、DIS。数据源不支持修改类型。 |
| content | 否    | [ContentDetailReq] object | 数据源详细配置内容                           |
   
 表4ContentDetailReq 
| 参数            | 是否必选 | 参数类型                                                                             | 描述             |
|:---|:---|:---|:---|
| iotda_content | 否    | [IotdaContentReq] object | IoTDA数据源详细配置内容 |
| dis_content   | 否    | [DisContentReq] object     | DIS数据源详细配置内容   |
| api_content   | 否    | [ApiContentReq] object     | api数据源配置内容     |
   
 表5IotdaContentReq 
| 参数                | 是否必选 | 参数类型                                                                                               | 描述                                |
|:---|:---|:---|:---|
| iotda_instance_id | 是    | String                                                                                             | IoTDA实例Id 最小长度：**1** 最大长度：**256** |
| rules             | 是    | Array of [IotdaContentRuleReq] objects | 在IoTDA实例中要配置转发规则推送数据的资源空间和产品列表    |
   
 表6IotdaContentRuleReq 
| 参数       | 是否必选 | 参数类型             | 描述                                    |
|:---|:---|:---|:---|
| app_id   | 是    | String           | IoTDA中的资源空间Id 最小长度：**1** 最大长度：**256** |
| products | 是    | Array of strings | IoTDA中某资源空间Id下的产品列表                   |
   
 表7DisContentReq 
| 参数          | 是否必选 | 参数类型   | 描述                            |
|:---|:---|:---|:---|
| project_id  | 是    | String | 项目id 最小长度：**1** 最大长度：**128**  |
| stream_name | 是    | String | 通道名称 最小长度：**1** 最大长度：**256**  |
| ak          | 是    | String | 租户的AK 最小长度：**1** 最大长度：**256** |
| sk          | 是    | String | 租户的SK 最小长度：**1** 最大长度：**256** |
   
 表8ApiContentReq 
| 参数   | 是否必选 | 参数类型   | 描述                               |
|:---|:---|:---|:---|
| name | 是    | String | api数据源名称 最小长度：**1** 最大长度：**128** |
   
#### 响应参数
**状态码： 200**
表9响应Body参数 
| 参数            | 参数类型                                                                                | 描述                                                       |
|:---|:---|:---|
| id            | String                                                                              | 数据源id 最小长度：**1** 最大长度：**256**                            |
| name          | String                                                                              | 数据源名称 最大长度：**128**                                       |
| type          | String                                                                              | 数据源类型, 包括：IOTDA、API、DIS。数据源不支持修改类型。                      |
| content       | [ContentDetailRsp] object | 数据源详细配置内容                                                |
| created_time  | String                                                                              | 创建时间，格式为：yyyy-MM-dd'T'HH:mm:ss'Z' 最小长度：**1** 最大长度：**64** |
| modified_time | String                                                                              | 修改时间，格式为：yyyy-MM-dd'T'HH:mm:ss'Z' 最小长度：**1** 最大长度：**64** |
   
 表10ContentDetailRsp 
| 参数            | 参数类型                                                                              | 描述             |
|:---|:---|:---|
| iotda_content | [IotdaContentRsp] object | IoTDA数据源详细配置内容 |
| dis_content   | [DisContentRsp] object     | DIS数据源详细配置内容   |
| api_content   | [ApiContentRsp] object     | API数据源配置       |
   
 表11IotdaContentRsp 
| 参数                | 参数类型                                                                                                | 描述                                 |
|:---|:---|:---|
| iotda_instance_id | String                                                                                              | IoTDA实例Id 最小长度：**1** 最大长度：**256**  |
| rules             | Array of [IotdaContentRuleRsp] objects | 在IoTDA实例中要配置的转发规则，包含推送数据的资源空间和产品列表 |
   
 表12IotdaContentRuleRsp 
| 参数           | 参数类型                                                                                        | 描述                                    |
|:---|:---|:---|
| app_id       | String                                                                                      | IoTDA中的资源空间Id 最小长度：**1** 最大长度：**256** |
| products     | Array of strings                                                                            | IoTDA中某资源空间Id下的产品列表                   |
| rule_actions | Array of [IotdaRuleAction] objects | IoTDA中rule_id和action_id列表             |
   
 表13IotdaRuleAction 
| 参数        | 参数类型   | 描述                                     |
|:---|:---|:---|
| rule_id   | String | IoTDA中的规则Id 最小长度：**1** 最大长度：**256**    |
| action_id | String | IoTDA中推送数据动作ID 最小长度：**1** 最大长度：**256** |
   
 表14DisContentRsp 
| 参数         | 参数类型   | 描述                            |
|:---|:---|:---|
| streamName | String | 通道名称 最小长度：**1** 最大长度：**256**  |
| ak         | String | 租户的AK 最小长度：**1** 最大长度：**256** |
| sk         | String | 租户的SK 最小长度：**1** 最大长度：**256** |
| projectId  | String | 项目id 最小长度：**1** 最大长度：**128**  |
   
 表15ApiContentRsp 
| 参数   | 参数类型   | 描述                              |
|:---|:---|:---|
| name | String | 数据源名称 最小长度：**1** 最大长度：**128**   |
| url  | String | 数据上报url 最小长度：**1** 最大长度：**512** |
   
#### 请求示例
```
{
  "name" : "test03",
  "type" : "API",
  "content" : {
    "api_content" : {
      "name" : "test03"
    }
  }
}
```
#### 响应示例
**状态码： 200**
successful
```
{
  "id" : "125606569c5cf5fx7qk2",
  "name" : "test03",
  "type" : "API",
  "content" : {
    "api_content" : {
      "name" : "test03",
      "url" : "https://ip:port/v1/yourProjectId/datasources/yourDatasourceId/dev-data"
    },
    "created_time" : "2021-09-02T00:00:00Z",
    "modified_time" : "2021-09-02T00:00:00Z"
  }
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | successful            |
| 400 | Bad Request           |
| 401 | Unauthorized          |
| 403 | Forbidden             |
| 404 | Not Found             |
| 409 | Conflict              |
| 500 | Internal Server Error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iotanalytics/ErrorCode.html)。
