
# 查询实例可升级版本 - QueryingVersionsThataDBInstanceCanBeUpgradedTo
#### 功能介绍
查询实例可升级版本。
- 调用接口前，您需要了解API [认证鉴权](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_011.html)。
- 调用接口前，您需要提前获取到[地区和终端节点](https://developer.huaweicloud.com/endpoint)。
 
#### 调试
您可以在[API Explorer](https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=GaussDBforopenGauss&api=ShowUpgradeCandidateVersionsDetails)中调试该接口。
#### URI
GET /v3.1/{project_id}/instances/{instance_id}/db-upgrade/candidate-versions
表1参数说明 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| project_id  | 是    | String | **参数解释：** 租户在某一Region下的项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_196.html)。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为32个字符。 **默认取值**： 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| instance_id | 是    | String | **参数解释：** 实例ID，此参数是用户创建实例的唯一标识。请参考[查询数据库实例列表 - QueryingDBInstances](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_328.html)接口获取实例ID。 **约束限制：** 不涉及。 **取值范围：** 只能由英文字母、数字组成，且长度为36个字符。 **默认取值** **：** 不涉及。 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | **参数解释：** 用户Token。 通过调用IAM服务[获取用户Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html)接口获取。 请求响应成功后在响应消息头中包含的"X-Subject-Token"的值即为Token值。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值** **：** 不涉及。 |
| X-Language   | 否    | String | **参数解释：** 指定接口返回信息的语言类型。 **约束限制：** 不涉及。 **取值范围：** - **zh-cn**：中文  - **en-us**：英文   **默认取值** **：** **en-us**                     |
   
#### 响应参数
表3响应参数 
| 参数                                 | 参数类型                                                                                                         | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|
| upgrade_type_list                  | Array of [表4] objects | **参数解释：** 升级类型信息列表。                                                                                                                                                                                                                                                                                                                                                                                                                    |
| rollback_enabled                   | Boolean                                                                                                      | **参数解释：** 是否支持回滚。 **取值范围：** - true：支持回滚。  - false：不支持回滚。   |
| source_version                     | String                                                                                                       | **参数解释：** 源实例版本号。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                              |
| target_version                     | String                                                                                                       | **参数解释：** 实例升级的目标版本号。 **取值范围：** 若实例处于升级待观察中，返回升级的目标版本，否则返回为空。                                                                                                                                                                                                                                               |
| roll_upgrade_progress              | [表6] object       | **参数解释：** 升级待观察DN、AZ信息。                                                                                                                                                                                                                                                                                                                                                                                                              |
| upgrade_candidate_versions         | Array of strings                                                                                             | **参数解释：** 可以升级的版本，包括大小版本，升级待观察中返回空数组。                                                                                                                                                                                                                                                                                                                                                                                                 |
| hotfix_upgrade_candidate_versions  | Array of strings                                                                                             | **参数解释：** 可以升级的热补丁版本，滚动升级中返回空数组。                                                                                                                                                                                                                                                                                                                                                                                                    |
| hotfix_rollback_candidate_versions | Array of strings                                                                                             | **参数解释：** 可以回滚的热补丁版本，滚动升级中返回空数组。                                                                                                                                                                                                                                                                                                                                                                                                      |
| hotfix_upgrade_infos               | Array of [表7] objects                                    | **参数解释：** 可以升级的热补丁信息。                                                                                                                                                                                                                                                                                                                                                                                                                |
| hotfix_rollback_infos              | Array of [表8] objects                                     | **参数解释：** 可以回滚的热补丁信息。                                                                                                                                                                                                                                                                                                                                                                                                              |
   
 表4upgrade_type_list 
| 参数                  | 参数类型                                                                                                           | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| upgrade_type        | String                                                                                                         | **参数解释：** 升级类型。 **取值范围：** - grey：灰度升级。  - inplace：就地升级。  - hotfix：热补丁升级。                                                                                                                         |
| enable              | Boolean                                                                                                        | **参数解释：** 升级类型是否可用。 **取值范围：** - true：可用。  - false：不可用。                                                                                                                                                                                                                                       |
| upgrade_action_list | Array of [表5] objects | **参数解释：** 升级操作列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| is_parallel_upgrade | Boolean                                                                                                        | **参数解释：** 是否正在进行AZ内并行升级。 **取值范围：** - true：当前实例处于灰度升级的升级待观察升级方式中，已选择了AZ内并行升级方式，后续无法更改。    - false：当前实例处于升级流程中，未选择AZ内并行升级的方式，后续无法更改。  - null：当前实例尚未处于升级流程中。   |
   
 表5upgrade_action_list 
| 参数             | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|
| upgrade_action | String  | **参数解释：** 升级操作。 **取值范围：** - upgrade：升级待观察。  - upgradeAutoCommit：升级自动提交。  - commit：提交。  - rollback：回滚。   |
| enable         | Boolean | **参数解释：** 升级操作是否可用。 **取值范围：** - true：可用。  - false：不可用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   
 表6roll_upgrade_progress 
| 参数                        | 参数类型                 | 描述                                                                                                                                                                                                                       |
|:---|:---|:---|
| upgraded_dn_group_numbers | String               | **参数解释：** 已升级分片数。 **取值范围：** 不涉及。                 |
| total_dn_group_numbers    | String               | **参数解释：** 总分片数。 **取值范围：** 不涉及。                    |
| not_fully_upgraded_az     | String               | **参数解释：** 未完成升级的AZ，以","隔开，独立部署返回null。 **取值范围：** 不涉及。  |
| already_upgraded_az       | String               | **参数解释：** 已升级AZ，以","隔开，独立部署返回null。 **取值范围：** 不涉及。 |
| az_description_map        | Map\<String,String\> | **参数解释：** AZ描述信息。其中key为AZ标识，value为对应的AZ描述信息。                                                                                                                                |
   
 表7hotfix_upgrade_infos 
| 参数               | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|
| version          | String  | **参数解释：** 热补丁版本。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                            |
| common_patch     | String  | **参数解释：** 补丁类型。 **取值范围：** - common：通用补丁。  - certain：定制补丁。   |
| backup_sensitive | Boolean | **参数解释：** 是否和备份相关。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                             |
| descripition     | String  | **参数解释：** 补丁的描述信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                |
   
 表8hotfix_rollback_infos 
| 参数               | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| version          | String  | **参数解释：** 热补丁版本。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                             |
| common_patch     | String  | **参数解释：** 补丁类型。 **取值范围：** - common：通用补丁。  - certain：定制补丁。   |
| backup_sensitive | Boolean | **参数解释：** 是否和备份相关。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                              |
| descripition     | String  | **参数解释：** 补丁的描述信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
#### 请求示例
查询实例可升级版本。
```
GET https://gaussdb-opengauss.cn-north-4.myhuaweicloud.com/v3.1/0483b6b16e954cb88930a360d2c4e663/instances/cc6fd964d93f4003851dfc29d57d30a5in14/db-upgrade/candidate-versions
```
#### 响应示例
实例在滚动升级中时，只返回滚动升级目标版本与滚动升级分片和AZ状态。
```
{
    "upgrade_type_list": [
        {
            "upgrade_type": "grey",
            "upgrade_action_list": [
                {
                    "upgrade_action": "commit",
                    "enable": false
                },
                {
                    "upgrade_action": "rollback",
                    "enable": false
                },
                {
                    "upgrade_action": "upgrade",
                    "enable": true
                },
                {
                    "upgrade_action": "upgradeAutoCommit",
                    "enable": true
                }
            ],
            "enable": true,
            "is_parallel_upgrade": null
        },
        {
            "upgrade_type": "hotfix",
            "upgrade_action_list": null,
            "enable": false,
            "is_parallel_upgrade": null
        },
        {
            "upgrade_type": "inplace",
            "upgrade_action_list": [
                {
                    "upgrade_action": "upgradeAutoCommit",
                    "enable": true
                }
            ],
            "enable": true,
            "is_parallel_upgrade": null
        }
    ],
    "rollback_enabled": false,
    "source_version": "V2.0-8.102.0",
    "target_version": null,
    "roll_upgrade_progress": {
        "upgraded_dn_group_numbers":"0",
        "total_dn_group_numbers":"1",
        "not_fully_upgraded_az": "cn-southwest-244a,cn-southwest-244b,cn-southwest-244c",
        "already_upgraded_az": "",
        "az_description_map": {
            "cn-southwest-244c": "az3",
            "cn-southwest-244b": "az2",
            "cn-southwest-244a": "az1"
        }
    },
    "upgrade_candidate_versions": [
        "V2.0-8.300.0",
        "V2.0-8.103.0"
    ],
    "hotfix_upgrade_candidate_versions": [],
    "hotfix_rollback_candidate_versions": [],
    "hotfix_upgrade_infos": [],
    "hotfix_rollback_infos": []
}
```
#### 状态码
- 正常 200
  
- 异常 请参见[状态码](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_194.html)。
  
 
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-gaussdb/gaussdb_api_195.html)。
