# CreateNetworkInterface

## 1. 接口描述

本接口(CreateNetworkInterface)用于创建一张辅助网卡。

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

* 此操作为异步接口，调用成功后，辅助网卡并未立刻创建成功， 需要等待网卡的状态从`PENDING`到`Available`则为创建成功，如果状态变为`CREATE_FAILED`则创建失败。
  {% endhint %}

## 2. 请求参数

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

| 参数名称               | 必选 | 类型                                                                                                                | 描述                                                                                                                                                    |
| ------------------ | -- | ----------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
| name               | 是  | String                                                                                                            | <p>网卡名称。</p><p>范围2到63个字符。</p><p>仅支持输入字母、数字、-/\_和英文句点(.)。</p><p>且必须以数字或字母开头和结尾。</p>                                                                    |
| subnetId           | 是  | String                                                                                                            | 子网的ID。                                                                                                                                                |
| nicStackType       | 否  | [SubnetStackType](https://docs.console.zenlayer.com/api-reference/cn/compute/datastructure#subnetstacktype)       | <p>网卡的IP堆栈类型。</p><p>如果不指定，会根据子网堆栈类型决定：如果子网是V4,则网卡为V4，如果子网是V6,则网卡为V6。</p><p>如果网卡要V4\&V6，请指定该参数。</p>                                                    |
| resourceGroupId    | 否  | String                                                                                                            | 网卡创建所在的资源组ID，如不指定则放入默认资源组。                                                                                                                            |
| securityGroupId    | 否  | String                                                                                                            | <p>指定安全组ID。</p><p>目前一个网卡只能关联1个安全组。</p><p>如果未指定，会默认用VPC关联下的安全组。</p>                                                                                    |
| internetChargeType | 否  | [InternetChargeType](https://docs.console.zenlayer.com/api-reference/cn/compute/datastructure#internetchargetype) | <p>公网IPv6的网络计费方式。</p><p>当子网的堆栈类型包括V6且为公网时，需要指定。</p>                                                                                                   |
| bandwidth          | 否  | Integer                                                                                                           | <p>公网IPv6的带宽限速。</p><p>单位Mbps。</p><p>当子网的堆栈类型包括V6且为公网时，需要指定。</p><p>可选值范围：\[1, +)。</p>                                                                  |
| packageSize        | 否  | Float                                                                                                             | <p>公网IPv6的流量包大小。</p><p>单位为TB。</p><p>值要求为0或0.1的倍数。</p><p>当子网的堆栈类型包括V6且为公网时，且网络计费方式是流量计费(<code>ByTrafficPackage</code>)需要指定。</p><p>可选值范围：\[0.0, +)。</p> |
| clusterId          | 否  | String                                                                                                            | <p>公网IPv6所指定的共享带宽包ID。</p><p>当子网的堆栈类型包括V6且为公网时，且网络计费方式是共享带宽包计费(<code>BandwidthCluster</code>)需要指定。</p>                                                 |
| marketingOptions   | 否  | [MarketingInfo](https://docs.console.zenlayer.com/api-reference/cn/compute/datastructure#marketinginfo)           | 市场营销相关的选项。                                                                                                                                            |

## 3. 响应结果

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

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 在IPv4堆栈类型的子网下创建一张辅助网卡。**

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

Request：
{
  "name": "Test-NIC",
  "subnetId": "<subnetId>",
}

Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
    "nicId": "<nicId>"
  }
}
```

**2. 在IPv4\&IPv6堆栈类型的子网下创建一张辅助网卡。且带有公网IPv6。该公网IPv6的计费方式为带宽包计费。**

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

Request：
{
  "name": "Test-NIC",
  "subnetId": "<subnetId>",
  "internetChargeType": "BandwidthCluster",
  "bandwidth": 100,
  "clusterId": "<clusterId>"
}

Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
    "nicId": "<nicId>"
  }
}
```

{% 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状态码 | 错误码                                                     | 说明           |
| ------- | ------------------------------------------------------- | ------------ |
| 404     | INVALID\_SUBNET\_NOT\_FOUND                             | 子网不存在。       |
| 403     | OPERATION\_DENIED\_INTERNET\_CHARGE\_TYPE\_NOT\_SUPPORT | IP网络计费方式不支持。 |
| 403     | OPERATION\_DENIED\_STACK\_TYPE\_NOT\_SUPPORT            | 堆栈类型不支持。     |
| 404     | INVALID\_SECURITY\_GROUP\_NOT\_FOUND                    | 安全组不存在。      |
