# 查询可用VPC和子网列表 - GetAvailableVpcs
#### 功能介绍
根据实例ID和管理网子网信息，返回可用的数据子网。
- 调用接口前，您需要了解API[认证鉴权](https://support.huaweicloud.com/api-rds/rds_03_0001.html)。
- 调用接口前，您需要了解[请求Header参数说明](https://support.huaweicloud.com/api-rds/rds_03_0005.html#rds_03_0005__section479119143310)。
 
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/RDS/doc?api=GetAvailableVpcs)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-rds/rds_10_0005.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
 
| 授权项 | 访问级别 | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| rds:instance:get                | read                             | -                                        | -                                  | rds:instance:list                | -                                     |
   
#### 接口约束
功能目前处于部分区域公测中，如果所在区域未开放此功能，请[提交工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)申请。
#### URI
- URI格式 GET /v3/{project_id}/instances/{instance_id}/available-vpcs
  
- 参数说明
  表1参数说明 
  | 参数                                                     | 是否必选                                        | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
  |:---|:---|:---|:---|
  | project_id        | 是       | String | **参数解释：** 租户在某一region下的project ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-rds/rds_03_0002.html)。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。                                                                                |
  | instance_id | 是 | String | **参数解释：** 实例ID。 可调用[查询数据库实例列表](https://support.huaweicloud.com/api-rds/rds_01_0004.html)接口，通过[表4](https://support.huaweicloud.com/api-rds/rds_01_0004.html#rds_01_0004__table2058713718267)中的"id"获取。 **约束限制：** 不涉及。 **取值范围：** 不涉及。 **默认取值：** 不涉及。 |
     
  
 
#### 请求消息
表2参数说明 
| 参数          | 是否必选 | 参数类型  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| vpc_id      | 否   | String  | **参数解释：** 虚拟私有云ID，获取方法如下： - 方法1：登录虚拟私有云服务的控制台界面，在虚拟私有云的详情页面查找VPC ID。  - 方法2：通过虚拟私有云服务的API接口查询，具体操作可参考[查询VPC列表](https://support.huaweicloud.com/api-vpc/vpc_api01_0003.html)。   **约束限制：** 如果传入vpc_id，则只返回该VPC下的可用子网。 **取值范围：** 不涉及。 **默认取值** **：** 不涉及。 |
| vpc_name | 否   | String | **参数解释：** 虚拟私有云名称，获取方法如下： - 方法1：登录虚拟私有云服务的控制台界面，在虚拟私有云的详情页面查找VPC名称。  - 方法2：通过虚拟私有云服务的API接口查询，具体操作可参考[查询VPC列表](https://support.huaweicloud.com/api-vpc/vpc_api01_0003.html)。   **约束限制：** 如果传入vpc_name，则只返回该name对应的VPC下的可用子网。 **取值范围：** 不涉及。 **默认取值** **：** 不涉及。    |
   
#### 请求示例
查询可用VPC和子网列表。
```
GET https://{Endpoint}/v3/0483b6b16e954cb88930a360d2c4e663/instances/e28979107ed04d3b8b2f1b819b8d2be3in03/available-vpcs
```
#### 响应消息
- 正常响应要素说明
  表3要素说明 
  | 参数 | 参数类型             | 描述                                                                                                                                                                 |
  |:---|:---|:---|
  | vpcs | Array of objects | **参数解释：** 可用的VPC列表，请参见[表4]。 |
     
   表4vpcs字段数据结构说明 
  | 参数   | 参数类型           | 描述                                                                                                                                                                                                                       |
  |:---|:---|:---|
  | id     | String          | **参数解释：** VPC ID。 **取值范围：** 不涉及。 |
  | name   | String            | **参数解释：** VPC名称。 **取值范围：** 不涉及。     |
  | subnets | Array of objects | **参数解释：** VPC下的可用子网列表，详情请参见[表5]。                                                                |
     
   表5subnets字段数据结构说明 
  | 参数              | 参数类型     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
  |:---|:---|:---|
  | id               | String | **参数解释：** 子网ID。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                           |
  | name           | String  | **参数解释：** 子网名称。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                            |
  | ipv6_enable     | Boolean | **参数解释：** 是否是IPv6子网。 **取值范围：** - true：是IPv6子网。  - false：不是IPv6子网。   |
  | cidr             | String  | **参数解释：** 子网的CIDR信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                      |
  | cidr_v6        | String | **参数解释：** IPv6子网的CIDR信息。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                 |
  | gateway_ip      | String  | **参数解释：** 子网的网关。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                       |
  | gateway_ip_v6   | String | **参数解释：** IPv6子网的网关。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                      |
  | availability_zone | String | **参数解释：** 子网的可用区。 **取值范围：** 不涉及。                                                                                                                                                                                                                                                                                      |
     
  
 
- 正常响应样例
  ```
  {
    "vpcs": [
      {
        "id": "bb8b3156-e97e-4ff7-a56f-b90d7516636a",
        "name": "vpc-ddm-192",
        "subnets": [
          {
            "id": "d709e489-48db-4586-b170-b7eeed4e5b23",
            "name": "subnet-ddm-192",
            "ipv6_enable": false,
            "cidr": "192.168.192.0/18",
            "gateway_ip": "192.168.192.1",
            "dhcp_enable": true,
            "availability_zone": "az1xahz"
          }
        ]
      },
      {
        "id": "777ba07b-eed9-45d9-a1c6-ab1b600e9501",
        "name": "vpc-cz2",
        "subnets": [
          {
            "id": "00f569ed-f8c5-4ebf-a4af-625179fef160",
            "name": "az1",
            "ipv6_enable": false,
            "cidr": "192.168.20.0/24",
            "gateway_ip": "192.168.20.1",
            "dhcp_enable": true,
            "availability_zone": "az1xahz"
          }
        ]
      }
    ]
  }
  ```
  

- 异常响应 请参见[异常响应结果](https://support.huaweicloud.com/api-rds/rds_01_0010.html)。
  
#### 状态码
- 正常 200
  
- 异常 请参见[状态码](https://support.huaweicloud.com/api-rds/rds_10_0200.html)。
  
 
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-rds/rds_10_0201.html)。
