# CreateSubnet

## 1. 接口描述

本接口(CreateSubnet)用于创建子网。

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

* 同一个VPC能创建的子网资源个数也是有限制的，每个子网的的CIDR网段必须属于VPC的CIDR网段内。
* 同一个VPC内,子网的CIDR地址段不可有重叠。
* 调用[`DescribeSubnetRegion`](https://docs.console.zenlayer.com/api/cn/compute/zec/vpc-network/describesubnetregions)接口查询子网区域是否支持创建。
  {% endhint %}

## 2. 请求参数

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

| 参数名称      | 必选 | 类型                                                                                                | 描述                                                                                                                          |
| --------- | -- | ------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
| vpcId     | 是  | String                                                                                            | 需要添加子网的VPC ID。                                                                                                              |
| name      | 是  | String                                                                                            | <p>子网名称。</p><p>范围2到63个字符。</p><p>仅支持输入字母、数字、-和英文句点(.)。</p><p>且必须以数字或字母开头和结尾。</p>                                             |
| regionId  | 是  | String                                                                                            | 子网所在的节点ID。                                                                                                                  |
| stackType | 是  | [SubnetStackType](https://docs.console.zenlayer.com/api/cn/compute/datastructure#subnetstacktype) | 子网的IP堆栈类型。                                                                                                                  |
| cidrBlock | 否  | String                                                                                            | <p>子网的IPv4 CIDR地址段。</p><p>如果指定堆栈类型<code>stackType</code> 包含 <code>IPv4</code>, 则该字段必填。</p><p>指定的CIDR地址段必须属于VPC的CIDR范围内。</p> |
| ipv6Type  | 否  | [IPv6Type](https://docs.console.zenlayer.com/api/cn/compute/datastructure#ipv6type)               | <p>IPv6的类型。</p><p>如果指定堆栈类型<code>stackType</code> 包含 <code>IPv6</code>, 则该字段必填。</p>                                          |

## 3. 响应结果

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

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 创建一个子网。堆栈类型为IPv4\_IPv6。IPv6为公网。**

```json
POST /api/v2/zec HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: CreateSubnet
<Common Request Params>

Request：
{
  "vpcId": "<vpcId>",
  "regionId": "asia-east-1",
  "stackType": "IPv4_IPv6",
  "ipv6Type": "Public",
  "name": "XXX",
  "cidrBlock": "10.0.0.0/8",
}

Response：
{
  "requestId": "TBFC01FCF-6439-4530-ADBC-16809F0C3E8F",
  "response": {
    "requestId": "TBFC01FCF-6439-4530-ADBC-16809F0C3E8F",
    "subnetId": "xxxx"
  }
}
```

{% endtab %}
{% endtabs %}

## 5. 开发者工具

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

## 6. 错误码

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

| HTTP状态码 | 错误码                       | 说明                          |
| ------- | ------------------------- | --------------------------- |
| 400     | INVALID\_CIDR\_IPV6\_ONLY | 堆栈类型指定为IPv6,不支持指定IPv4 CIDR。 |
