# CreateVpcSubnet

## 1. 接口描述

本接口用于创建VPC的子网。

{% hint style="info" %}
**注意事项**

* 同一个VPC能创建的子网资源个数也是有限制的，每个Subnet的网段必须包含在VPC的网段内。
* 本接口为异步接口，当创建VPC子网请求下发成功后会返回一个VPC子网`ID`，此时创建VPC子网操作并未立即完成。在此期间VPC子网的状态将会处于`Pending`**，子网创建结果可以通过调用**[**`DescribeVpcSubnets`**](https://docs.console.zenlayer.com/api-reference/cn/compute/zvm/vpc-network/describevpcsubnets)**接口查询，如果VPC子网状态由**`Pending`**(创建中)变为**`Available`**，则代表VPC子网创建成功，**`Fail`代表VPC子网创建失败。创建过程中不可对VPC子网进行任何操作。
  {% endhint %}

## 2. 请求参数

以下请求参数列表仅列出了接口中需要的请求参数

| 参数名称       | 必选 | 类型     | 描述                                                                                                                                 |
| ---------- | -- | ------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| cidrBlock  | 是  | String | <p>子网的CIDR。</p><p>可选值<code>10.0.0.0/16</code>、<code>172.16.0.0/16</code>和<code>192.168.0.0/16</code>及它们包含的子网。</p><p>子网网段不能重叠 。</p> |
| subnetName | 是  | String | <p>子网的名称。</p><p>范围2到63个字符。仅支持输入字母、数字、-和英文句点(.)。且必须以数字或字母开头和结尾。</p>                                                                 |
| vpcId      | 是  | String | VPC ID。                                                                                                                            |

## 3. 响应结果

| 参数名称      | 类型     | 描述                                                       |
| --------- | ------ | -------------------------------------------------------- |
| requestId | String | <p>唯一请求 ID。</p><p>每次请求都会返回。定位问题时需要提供该次请求的 RequestId。</p> |
| subnetId  | String | VPC子网的ID。                                                |

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 在FRA-A可用区创建Subnet。**

<pre class="language-json"><code class="lang-json"><strong>POST /api/v2/vm HTTP/1.1
</strong>Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: CreateVpcSubnet
&#x3C;Common Request Params>

Request:
{
  "vpcId": "914862014017316658",
  "cidrBlock": "10.0.0.0/20",
  "subnetName": "subnetXXX"
}

Response:
{
  "requestId": "TBFC01FCF-6439-4530-ADBC-16809F0C3E8F",
  "response": {
    "requestId": "TBFC01FCF-6439-4530-ADBC-16809F0C3E8F",
    "subnetId": "914862014017316658"
  }
}
</code></pre>

{% endtab %}
{% endtabs %}

## 5. 开发者工具

Zenlayer Cloud API 2.0 提供了配套的[开发工具集（SDK）](https://docs.console.zenlayer.com/api-reference/cn/api-introduction/toolkit)，未来会陆续支持更多开发语言，方便快速接入和使用Zenlayer的产品和服务。

## 6. 错误码

下面包含业务逻辑中遇到的错误码，其他错误码见[公共错误码](https://docs.console.zenlayer.com/api-reference/cn/api-introduction/instruction/commonerrorcode)

| HTTP状态码 | 错误码                                                         | 说明                              |
| ------- | ----------------------------------------------------------- | ------------------------------- |
| 500     | CREATE\_SUBNET\_FAILED                                      | 创建失败。                           |
| 400     | UNSUPPORTED\_OPERATION\_SUBNET\_BIND\_NETWORK\_COUNT\_LIMIT | 达到子网的数量限制。                      |
| 400     | UNSUPPORTED\_OPERATION\_CIDR\_BLOCK\_IS\_EXIST              | CIDR 地址冲突。请检查子网下是否存在相同的CIDR地址段。 |
| 400     | INVALID\_CIDR\_BLOCK\_FORMAT                                | CIDR 格式错误。请注意是否为IP/掩码格式。        |
| 400     | INVALID\_CIDR\_BLOCK\_NETMASK                               | CIDR 掩码范围不支持。                   |
| 400     | INVALID\_CIDR\_BLOCK\_NOT\_LAN\_IP                          | CIDR 不是私有网络段。                   |
| 400     | INVALID\_CIDR\_BLOCK\_INVALID\_INTERNAL\_IP                 | CIDR 非法的内网地址段。                  |
| 400     | INVALID\_REGION\_NOT\_ON\_SALE                              | 指定的区域未开售。                       |
