> For the complete documentation index, see [llms.txt](https://docs.console.zenlayer.com/api-reference/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.console.zenlayer.com/api-reference/cn/ipt/ip-transit/modifyiptransitconfig.md).

# ModifyIPTransitConfig

## 1. 接口描述

本接口(ModifyIPTransitConfig)用于修改IP Transit配置。

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

* 仅当 IP Transit 状态为 **AVAILABLE** 时，才能发起变更操作。
* 本接口为异步接口，请求成功后 IP Transit 状态将变为 **UPDATING**，可通过 [DescribeIPTransits](/api-reference/cn/ipt/ip-transit/describeiptransits.md) 轮询状态，变回 **AVAILABLE** 表示变更成功。
* 变更期间不得对该 IP Transit 进行其他任何操作。
* **type 说明：**
  * `BANDWIDTH`：修改带宽限速，须传 `bandwidth`；传 `commitBandwidth` 可设置保底带宽，否则保底与限速相同。95 计费（`internetType=ByInstanceBandwidth95`）下 `bandwidth` 必须大于等于生效后的保底带宽，否则返回 `INVALID_RIPT_BANDWIDTH_LESS_THAN_COMMIT` 错误。
  * `BFD`：修改 BFD 配置，须传 `bfd`；传 `null` 表示关闭 BFD。高可用 IP Transit 不允许关闭 BFD，传 `null` 或不完整的 `bfd` 会返回 `OPERATION_DENIED_HA_BFD_DISABLE` 错误。
  * `BGP_ROUTE_TYPE`：修改 BGP inbound 路由类型，须传 `bgp.routeType`。仅路由类型为 BGP 的 IP Transit 支持，否则返回 `INVALID_RIPT_ROUTING_TYPE_NOT_BGP` 错误。
  * `BGP_ASN_AS_SET`：修改 BGP 允许 ASN/AS-SET 名单，`asn` 创建后不支持修改，须在 `bgp` 中传 `asnList` 或 `asSetList` 二选一，否则返回 `INVALID_RIPT_BGP_ASN_LIST_MISSING` 错误。仅路由类型为 BGP 的 IP Transit 支持，否则返回 `INVALID_RIPT_ROUTING_TYPE_NOT_BGP` 错误。
  * `BGP_PASSWORD`：修改 BGP MD5 密码，须传 `bgp.password`。仅路由类型为 BGP 的 IP Transit 支持，否则返回 `INVALID_RIPT_ROUTING_TYPE_NOT_BGP` 错误。
  * `ADD_CIDR_BLOCK`：新增公网 IPv4 CIDR 块，须传 `publicIPv4BlockSize`；可选传 `ipNetworkType`，默认 `BGP_IP`；可选传 `marketingInfo.usePocVoucher=true` 使用 POC 代金券，系统不存在可用 POC 代金券时本次下单会失败。普通 BGP 档位（`bgp.tier=STANDARD`）的 IP Transit 不支持，否则返回 `OPERATION_DENIED_STANDARD_BGP_ADD_CIDR` 错误。
  * `DEL_CIDR_BLOCK`：删除公网 IPv4 CIDR 块，须传 `ipUuid`。
  * `EXPAND_CIDR_BLOCK`：扩大已有 CIDR 块（缩小掩码），须传 `ipUuid` 和 `publicIPv4BlockSize`；目标掩码不能小于该 IP 块底层实际可扩容到的最小掩码，否则返回 `OPERATION_DENIED_INVALID_CIDR_SIZE` 错误。
  * `SHRINK_CIDR_BLOCK`：缩小已有 CIDR 块（增大掩码），须传 `ipUuid` 和 `publicIPv4BlockSize`；目标掩码同样不能小于该 IP 块底层实际可扩容到的最小掩码。
  * `HA_SWITCH_PRIMARY`：HA 主备切换，仅 HA 模式 IP Transit 可用。
  * `HA_SWITCH_MODE`：切换 HA 模式（主备模式 ↔ 负载均衡模式），仅 HA 模式 IP Transit 可用。
    {% endhint %}

## 2. 请求参数

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

| 参数名称                | 必选 | 类型                                                                                      | 描述                                                                                                     |
| ------------------- | -- | --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
| iptId               | 是  | String                                                                                  | IP Transit 实例 ID。                                                                                      |
| type                | 是  | [IPTransitConfigType](/api-reference/cn/ipt/datastructure.md#iptransitconfigtype)       | 变配操作类型。                                                                                                |
| bandwidth           | 否  | Integer                                                                                 | <p>目标带宽（Mbps）。</p><p>type=BANDWIDTH 时必填。</p><p>95 计费下必须大于等于生效后的 <code>commitBandwidth</code>。</p>      |
| commitBandwidth     | 否  | Integer                                                                                 | <p>保底带宽（Mbps）。</p><p>type=BANDWIDTH 时有效，不填则与 <code>bandwidth</code> 相同。</p>                            |
| bfd                 | 否  | [BFDConfig](/api-reference/cn/ipt/datastructure.md#bfdconfig)                           | <p>BFD 配置。</p><p>type=BFD 时填写；传 null 表示关闭 BFD。</p><p>高可用 IP Transit 不允许关闭 BFD。</p>                     |
| bgp                 | 否  | [BgpConfigParam](/api-reference/cn/ipt/datastructure.md#bgpconfigparam)                 | <p>BGP 配置参数。</p><p>type=BGP\_ROUTE\_TYPE、BGP\_ASN\_AS\_SET、BGP\_PASSWORD 时必填，并填写对应子字段。</p>             |
| publicIPv4BlockSize | 否  | Integer                                                                                 | <p>IPv4 CIDR 掩码长度（24–32）。</p><p>type=ADD\_CIDR\_BLOCK、EXPAND\_CIDR\_BLOCK、SHRINK\_CIDR\_BLOCK 时必填。</p> |
| ipUuid              | 否  | String                                                                                  | <p>目标 IP 块 UUID。</p><p>type=DEL\_CIDR\_BLOCK、EXPAND\_CIDR\_BLOCK、SHRINK\_CIDR\_BLOCK 时必填。</p>          |
| ipNetworkType       | 否  | [IPTransitIpNetworkType](/api-reference/cn/ipt/datastructure.md#iptransitipnetworktype) | <p>IP 网络类型。</p><p>type=ADD\_CIDR\_BLOCK 时有效，默认 BGP\_IP。</p>                                            |
| marketingInfo       | 否  | [MarketingInfo](/api-reference/cn/ipt/datastructure.md#marketinginfo)                   | <p>市场活动相关信息，含是否使用 POC 代金券。</p><p>type=ADD\_CIDR\_BLOCK 时有效；系统不存在可用 POC 代金券时，本次追加 IP 的下单会失败。</p>        |

## 3. 响应结果

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

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 将 IP Transit 带宽修改为 200Mbps，保底带宽设为 100Mbps。**

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

Request：
{
  "iptId": "your-ipt-id",
  "type": "BANDWIDTH",
  "bandwidth": 200,
  "commitBandwidth": 100
}

Response：
{
  "requestId": "T12345678-ABCD-1234-EFGH-000000000004",
  "response": {
    "requestId": "T12345678-ABCD-1234-EFGH-000000000004"
  }
}
```

**2. 修改 BGP inbound 路由类型为仅接收默认路由。**

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

Request：
{
  "iptId": "your-ipt-id",
  "type": "BGP_ROUTE_TYPE",
  "bgp": {
    "routeType": "DEFAULT_ROUTES"
  }
}

Response：
{
  "requestId": "T12345678-ABCD-1234-EFGH-000000000005",
  "response": {
    "requestId": "T12345678-ABCD-1234-EFGH-000000000005"
  }
}
```

**3. 新增一个 /28 公网 IPv4 CIDR 块。**

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

Request：
{
  "iptId": "your-ipt-id",
  "type": "ADD_CIDR_BLOCK",
  "publicIPv4BlockSize": 28,
  "marketingInfo": {
    "usePocVoucher": true
  }
}

Response：
{
  "requestId": "T12345678-ABCD-1234-EFGH-000000000006",
  "response": {
    "requestId": "T12345678-ABCD-1234-EFGH-000000000006"
  }
}
```

**4. 关闭 BFD 检测。**

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

Request：
{
  "iptId": "your-ipt-id",
  "type": "BFD",
  "bfd": null
}

Response：
{
  "requestId": "T12345678-ABCD-1234-EFGH-000000000007",
  "response": {
    "requestId": "T12345678-ABCD-1234-EFGH-000000000007"
  }
}
```

{% endtab %}
{% endtabs %}

## 5. 开发者工具

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

## 6. 错误码

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

| HTTP状态码 | 错误码                                           | 说明                                           |
| ------- | --------------------------------------------- | -------------------------------------------- |
| 404     | INVALID\_RIPT\_NOT\_FOUND                     | 远程 IP 隧道实例不存在。                               |
| 409     | INVALID\_RIPT\_HA\_ROLE                       | RIPT 的 HA 角色不适用于该操作。                         |
| 400     | INVALID\_RIPT\_STATE                          | 远程 IP 隧道状态不符合预期。                             |
| 400     | INVALID\_RIPT\_IP\_INVALID\_RANGE             | 公网 IP 掩码不在有效范围内。                             |
| 400     | INVALID\_RIPT\_BANDWIDTH\_LESS\_THAN\_COMMIT  | 95 计费下 `bandwidth` 必须大于等于 `commitBandwidth`。 |
| 403     | OPERATION\_DENIED\_LAST\_CIDR                 | 最后一个 CIDR 段不能删除。                             |
| 409     | INVALID\_RIPT\_INTERCONNECT\_BLOCK\_IMMUTABLE | 远程 IP 隧道互联地址段创建后不可修改。                        |
| 403     | OPERATION\_DENIED\_CIDR\_STATUS               | CIDR 段状态不支持该操作。                              |
| 403     | OPERATION\_DENIED\_INVALID\_CIDR\_SIZE        | CIDR 段大小无效。                                  |
| 403     | OPERATION\_DENIED\_IP\_IN\_USE                | 部分 IP 地址仍在使用中。                               |
| 409     | INVALID\_RIPT\_HA\_MODE\_NOT\_ACTIVE\_STANDBY | 主备切换仅在主备模式下允许。                               |
| 404     | INVALID\_RIPT\_HA\_CHILD\_NOT\_FOUND          | 该子 RIPT 不属于此 HA 父实例。                         |
| 409     | INVALID\_RIPT\_HA\_STATUS\_NOT\_RUNNING       | RIPT 业务状态需为 RUNNING 才能进行 HA 操作。              |
| 403     | OPERATION\_DENIED\_HA\_BFD\_DISABLE           | 高可用 IP Transit 不允许关闭 BFD。                    |
| 400     | INVALID\_RIPT\_ROUTING\_TYPE\_NOT\_BGP        | 远程 IP 隧道路由类型非 BGP，不支持修改 BGP 配置。              |
| 403     | OPERATION\_DENIED\_STANDARD\_BGP\_ADD\_CIDR   | 普通 BGP 档位的 IP Transit 不支持新增公网 IP。            |
| 400     | INVALID\_RIPT\_BGP\_ASN\_LIST\_MISSING        | `bgp.asnList`、`bgp.asSetList` 至少需要传一个。       |
