
# 数据源更新 - UpdateDataConnection
#### 功能介绍
数据源更新。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-dataartsinsight/abcd.html)。
#### URI
PUT /v1/{project_id}/connections/{connection_id}
表1路径参数 
| 参数            | 是否必选 | 参数类型   | 描述                                                                                                                                                            |
|:---|:---|:---|:---|
| project_id    | 是    | String | **参数解释：** 项目ID。获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-dataartsinsight/dataartsinsight_projectid.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| connection_id | 是    | String | **参数解释：** 数据源ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                    |
#### 请求参数
表2请求Header参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                                                                                                  |
|:---|:---|:---|:---|
| X-Workspace-Id | 是    | String | **参数解释：** 工作空间ID。获取方法请参见[获取工作空间ID](https://support.huaweicloud.com/api-dataartsinsight/dataartsinsight_workspaceid.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| X-Auth-Token   | 是    | String | **参数解释：** 用户Token。通过调用IAM服务获取IAM用户Token接口获取，接口返回的响应消息头中"X-Subject-Token"就是需要获取的用户Token。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                   |
   
表3请求Body参数 
| 参数            | 是否必选 | 参数类型                                                                   | 描述                                                                                                                                                                                     |
|:---|:---|:---|:---|
| name          | 是    | String                                                                 | **参数解释：** 数据源名称。 **取值范围：** 不涉及                                                                                                                                                         |
| description   | 否    | String                                                                 | **参数解释：** 数据源描述信息。 **取值范围：** 不涉及                                                                                                                                                       |
| type          | 是    | String                                                                 | **参数解释：** 数据源类型。 **取值范围：** - MySQL - DWS - PostgreSQL - OpenGauss - Doris - HIVE - ClickHouse - DLI - API                                                                              |
| source        | 是    | String                                                                 | **参数解释：** 数据源来源。 **取值范围：** - rds：云服务RDS数据源 - dws：DWS集群数据源 - mrs：云服务MRS数据源 - gaussdb：云服务GaussDB数据源 - public：公网接入方式数据源 - restapi：API数据源 - dli：云服务DLI数据源 - endpoint-service：终端节点服务接入方式数据源 |
| server_list   | 否    | String                                                                 | **参数解释：** 集群模式。 **取值范围：** 不涉及                                                                                                                                                          |
| database_name | 是    | String                                                                 | **参数解释：** 数据库名。 **取值范围：** 不涉及                                                                                                                                                          |
| host          | 否    | String                                                                 | **参数解释：** 域名。 **取值范围：** 不涉及                                                                                                                                                            |
| port          | 否    | Integer                                                                | **参数解释：** 端口。 **取值范围：** 不涉及                                                                                                                                                            |
| user_name     | 否    | String                                                                 | **参数解释：** 用户名。 **取值范围：** 不涉及                                                                                                                                                           |
| password      | 否    | String                                                                 | **参数解释：** 密码。 **取值范围：** 不涉及                                                                                                                                                            |
| cluster       | 否    | [ClusterInfoDTO] object | 云实例接入方式时必填。                                                                                                                                                                            |
| region_id     | 否    | String                                                                 | **参数解释：** 当前region的ID。 **取值范围：** 不涉及                                                                                                                                                   |
| config        | 是    | [DcConfigDTO] object       | 配置参数。                                                                                                                                                                                  |
   
 表4ClusterInfoDTO 
| 参数 | 是否必选 | 参数类型   | 描述                               |
|:---|:---|:---|:---|
| id | 否    | String | **参数解释：** 关联云实例ID。 **取值范围：** 不涉及 |
   
 表5DcConfigDTO 
| 参数             | 是否必选 | 参数类型                                                                                 | 描述                                                                                |
|:---|:---|:---|:---|
| ssl            | 否    | Boolean                                                                              | **参数解释：** ssl参数配置。 **取值范围：** 不涉及                                                  |
| region_id      | 否    | String                                                                               | **参数解释：** 归属regionId；当前不支持跨region，值只能是当前regionId。 **取值范围：** 不涉及                   |
| catalog_name   | 否    | String                                                                               | **参数解释：** 数据目录名称。 **取值范围：** dli：DLI自有catalog值为dli                           |
| catalog_type   | 否    | String                                                                               | **参数解释：** 数据目录类型。 **取值范围：** - dli：DLI自有catalog - lakeformation：lakeformation的数据目录 |
| ds_project_id  | 否    | String                                                                               | **参数解释：** 队列归属projectId。 **取值范围：** 不涉及                                            |
| queue_name     | 否    | String                                                                               | **参数解释：** SQL队列。 **取值范围：** 不涉及                                                    |
| auth_type      | 否    | String                                                                               | **参数解释：** 验证方式。 **取值范围：** AKSK                                                    |
| ds_ak          | 否    | String                                                                               | **参数解释：** 用户ak。 **取值范围：** 不涉及                                                     |
| ds_sk          | 否    | String                                                                               | **参数解释：** 用户sk。 **取值范围：** 不涉及                                                     |
| time_out       | 否    | Integer                                                                              | **参数解释：** 请求超时时间。 **取值范围：** 不涉及                                                   |
| protocol       | 否    | String                                                                               | **参数解释：** 协议。 **取值范围：** 不涉及                                                       |
| token_key      | 否    | String                                                                               | **参数解释：** token key。 **取值范围：** 不涉及                                                |
| token_value    | 否    | String                                                                               | **参数解释：** token value。 **取值范围：** 不涉及                                              |
| request_url    | 否    | String                                                                               | **参数解释：** 请求url。 **取值范围：** 不涉及                                                    |
| request_method | 否    | String                                                                               | **参数解释：** 请求方式 **取值范围：** 不涉及                                                      |
| request_params | 否    | Array of [RequestParamDto] objects   | 请求参数列表。                                                                           |
| resp_param     | 否    | Array of [ResponseParamDto] objects | 返回参数。                                                                             |
   
 表6RequestParamDto 
| 参数           | 是否必选 | 参数类型             | 描述                                                                                                                                                                                     |
|:---|:---|:---|:---|
| location     | 是    | String           | **参数解释：** 位置。 **取值范围：** 不涉及                                                                                                                                                            |
| value        | 是    | Array of strings | **参数解释：** 参数值。 **取值范围：** 不涉及                                                                                                                                                           |
| tag_id       | 否    | String           | **参数解释：** 标签ID。 **取值范围：** 不涉及                                                                                                                                                          |
| param_name   | 是    | String           | **参数解释：** 参数名称。 **取值范围：** 不涉及                                                                                                                                                          |
| alias_name   | 否    | String           | **参数解释：** 参数别名。 **取值范围：** 不涉及                                                                                                                                                          |
| field_type   | 是    | String           | **参数解释：** 参数类型 **取值范围：** - String：字符 - Long：长整型 - Decimal：数字 - List\<String\>：字符串列表 - List\<Long\>：长整型列表 - List\<Decimal\>：数字列表 - DateTime：日期时间 - Bool：布尔 - PageIndex：页码 - PageNum：页大小 |
| param_source | 是    | String           | **参数解释：** 参数来源 **取值范围：** - custom：自定义用户 - user：用户 - userGroup：用户组                                                                                                                      |
| type         | 是    | Boolean          | **参数解释：** 是否加密。 **取值范围：** 不涉及                                                                                                                                                          |
   
 表7ResponseParamDto 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                      |
|:---|:---|:---|:---|
| alias_name | 是    | String | **参数解释：** 参数别名。 **取值范围：** 不涉及                                                           |
| field_type | 是    | String | **参数解释：** 参数类型。 **取值范围：** - String：字符 - Long：长整型 - Decimal：数字 - DateTime：日期时间 - Bool：布尔 |
| param_name | 是    | String | **参数解释：** 参数名称。 **取值范围：** 不涉及                                                           |
   
#### 响应参数
**状态码：200**
表8响应Body参数 
| 参数      | 参数类型   | 描述                          |
|:---|:---|:---|
| message | String | **参数解释：** 描述。 **取值范围：** 不涉及 |
   
#### 请求示例
数据源更新。
```
PUT /v1/{project_id}/connections/{connection_id}
1.修改公网连接类型数据源
{
  "name": "dws02",
  "server_list": "xx.xx.x.xx:xxxx",
  "database_name": "gaussdb",
  "user_name": "xxxxx",
  "password": "xxxxxxx",
  "config": {
    "ssl": true
  },
  "source": "public",
  "type": "DWS"
}
2.修改DWS云数据源
{
    "name": "dws04_instance",
    "description": "测试新增",
    "source": "dws",
    "type": "DWS",
    "database_name": "xxxxx",
    "user_name": "xxxx",
    "password": "xxxx",
    "region_id": "cn-north-7",
    "cluster": {
        "id": "xxxxxxxxxxxx"
    },
    "config": {
        "ssl": false
    }
}
3.修改RDS的MySQL云数据源
{
    "name": "mysql_instance",
    "description": "测试新增",
    "source": "rds",
    "type": "MySQL",
    "database_name": "xxxxx",
    "user_name": "xxxxx",
    "password": "xxxxx",
    "region_id": "cn-north-7",
    "cluster": {
        "id": "xxxxxxxxxxxx"
    },
    "config": {
        "ssl": false
    }
}
4.修改GaussDBForMySQL云数据源
{
    "name": "gaussdb_mysql_instance",
    "description": "测试新增",
    "source": "gaussdb",
    "type": "MySQL",
    "database_name": "xxxxx",
    "user_name": "xxxxx",
    "password": "xxxxx",
    "region_id": "cn-north-7",
    "cluster": {
        "id": "xxxxxxxx"
    },
    "config": {
        "ssl": false
    }
}
5.修改OpenGauss云数据源
{
    "name": "gaussdb_instance",
    "description": "测试新增",
    "source": "gaussdb",
    "type": "OpenGauss",
    "database_name": "xxxxx",
    "user_name": "xxxxx",
    "password": "xxxxx",
    "region_id": "cn-north-7",
    "cluster": {
        "id": "xxxxxxxx"
    },
    "config": {
        "ssl": false
    }
}
6.修改PostgreSQL云数据源
{
    "name": "postgre_instance",
    "description": "测试新增",
    "source": "rds",
    "type": "PostgreSQL",
    "database_name": "xxxxx",
    "user_name": "xxxxx",
    "password": "xxxxx",
    "region_id": "cn-north-7",
    "cluster": {
        "id": "xxxxxxxx"
    },
    "config": {
        "ssl": false
    }
}
```
#### 响应示例
**状态码：200**
更新成功。
```
{
  "message" : "Update Data Connection Success!"
}
```
#### 状态码
| 状态码 | 描述    |
|:---|:---|
| 200 | 更新成功。 |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-dataartsinsight/ErrorCode.html)。
