# ModifyNatGatewayAttribute

## 1. 接口描述

本接口(ModifyNatGatewayAttribute)用于修改NAT网关的属性。

## 2. 请求参数

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

| 参数名称             | 必选 | 类型              | 描述                                                                             |
| ---------------- | -- | --------------- | ------------------------------------------------------------------------------ |
| natGatewayId     | 是  | String          | NAT网关 ID。                                                                      |
| name             | 否  | String          | <p>NAT网关的名称。</p><p>长度为2～63个字符。</p>                                             |
| subnetIds        | 否  | Array of String | NAT网关的子网ID。                                                                    |
| isAllSubnet      | 否  | Boolean         | <p>NAT网关对应的子网是否应用所有子网。</p><p>该字段不能和<code>subnetIds</code>同时设置。</p>             |
| icmpReplyEnabled | 否  | Boolean         | 是否开启ICMP代回。                                                                    |
| securityGroupId  | 否  | String          | <p>修改NAT网关绑定的目标安全组ID。</p><p>目前一张NAT网关只能关联一个安全组。</p><p>指定该字段会解绑NAT网关原来的安全组。</p> |

## 3. 响应结果

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

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 修改NAT网关属性, 修改指定的子网。**

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

Request：
{
    "natGatewayId": "natGatewayId",
    "subnetIds": ["subnetId1", "subnetId2"]
}

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

**2. 修改NAT网关属性, 修改为全部子网。**

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

Request：
{
    "natGatewayId": "natGatewayId",
    "isAllSubnets": true
}

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

{% 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\_NAT\_NOT\_FOUND                      | NAT网关不存在。                         |
| 404     | INVALID\_NAT\_SUBNET\_IS\_MISSING             | NAT网关的subnet范围小于其所在SNAT的subnet范围。 |
| 404     | INVALID\_SUBNET\_NOT\_FOUND                   | 子网不存在。                            |
| 400     | OPERATION\_DENIED\_NAT\_STATUS                | NAT网关状态不是RUNNING。                 |
| 400     | OPERATION\_DENIED\_SUBNET\_STATUS             | Subnet状态不可用。                      |
| 400     | OPERATION\_DENIED\_SUBNET\_TYPE\_NOT\_SUPPORT | 子网堆栈类型不支持。                        |
| 404     | INVALID\_SECURITY\_GROUP\_NOT\_FOUND          | 安全组不存在。                           |
