:original_name: vpc_apiroutetab_0004.html
.. _vpc_apiroutetab_0004:
Updating a Route Table
======================
Function
--------
This API is used to update a route table.
URI
---
PUT /v1/{project_id}/routetables/{routetable_id}
:ref:`Table 1 ` describes the parameters.
.. _vpc_apiroutetab_0004__table13791152173213:
.. table:: **Table 1** Parameter description
+---------------+-----------+--------+------------------------------------------------------------------------+
| Name | Mandatory | Type | Description |
+===============+===========+========+========================================================================+
| project_id | Yes | String | Specifies the project ID. |
+---------------+-----------+--------+------------------------------------------------------------------------+
| routetable_id | Yes | String | Specifies the route table ID, which uniquely identifies a route table. |
+---------------+-----------+--------+------------------------------------------------------------------------+
Request Parameters
------------------
.. table:: **Table 2** Request parameter
+------------+-----------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
| Name | Mandatory | Type | Description |
+============+===========+====================================================================+=======================================================================================================+
| routetable | Yes | :ref:`routetable ` object | Specifies the route table. For details, see :ref:`Table 3 `. |
+------------+-----------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
.. _vpc_apiroutetab_0004__table188071229326:
.. table:: **Table 3** Description of the **routetable** field
+-----------------+-----------------+-------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Name | Mandatory | Type | Description |
+=================+=================+===========================================================================================+===========================================================================================================================================================================================+
| name | No | String | - Specifies the route table name. |
| | | | - The value can contain 1 to 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.). |
+-----------------+-----------------+-------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| description | No | String | - Provides supplementary information about the route. |
| | | | - The value can contain no more than 255 characters and cannot contain angle brackets (< or >). |
+-----------------+-----------------+-------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| routes | No | :ref:`RouteTableRouteAction ` object | - Specifies the route list. For details, see :ref:`Table 4 `. |
| | | | - Constraints: |
| | | | |
| | | | - Each route table can have a maximum of 200 routes. |
| | | | - The destination cannot be modified directly. To modify the destination, run the **del** command to delete the corresponding route, and then run the **add** command to add a route. |
| | | | |
| | | | - Specifies the operation to perform. Possible values are as follows: |
| | | | |
| | | | - **add**: Adds a route. Parameters **type**, **destination**, and **nexthop** are mandatory. |
| | | | - **mod**: Modifies a route. Parameters **type**, **destination**, and **nexthop** are mandatory. |
| | | | - **del**: Deletes a route. Parameter **destination** is mandatory. |
+-----------------+-----------------+-------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
.. _vpc_apiroutetab_0004__request_routetablerouteaction:
.. table:: **Table 4** Description of the **route** field
+-----------------+-----------------+----------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
| Parameter | Mandatory | Type | Description |
+=================+=================+========================================================================================+=============================================================================================+
| add | No | Array of :ref:`AddRouteTableRoute ` objects | Add a route. For details, see :ref:`Table 5 `. |
| | | | |
| | | | Parameters **type**, **destination**, and **nexthop** are mandatory. |
+-----------------+-----------------+----------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
| mod | No | Array of :ref:`ModRouteTableRoute ` objects | Modify a route. For details, see :ref:`Table 6 `. |
| | | | |
| | | | Parameters **type**, **destination**, and **nexthop** are mandatory. |
+-----------------+-----------------+----------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
| del | No | Array of :ref:`DelRouteTableRoute ` objects | Delete a route. For details, see :ref:`Table 7 `. |
| | | | |
| | | | Parameter **destination** is mandatory. |
+-----------------+-----------------+----------------------------------------------------------------------------------------+---------------------------------------------------------------------------------------------+
.. _vpc_apiroutetab_0004__table11648235202119:
.. table:: **Table 5** Field description of adding a route
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
| Parameter | Mandatory | Type | Description |
+=================+=================+=================+==================================================================================================+
| type | Yes | String | - Specifies the route type. |
| | | | - Values: |
| | | | |
| | | | - **ecs** (ECS) |
| | | | - **eni** (NIC) |
| | | | - **vip** (Virtual IP address) |
| | | | - **nat** (NAT gateway) |
| | | | - **peering** (VPC peering connection) |
| | | | - **vpn** (VPN) |
| | | | - **dc** (Direct Connect connection) |
| | | | - **egw**: VPC endpoint node |
| | | | - **er**: enterprise router |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
| destination | Yes | String | - Specifies the destination CIDR block of a route. |
| | | | - The value must be in the valid CIDR format. |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
| nexthop | Yes | String | - Specifies the ID of the next hop in the route. |
| | | | - Values: |
| | | | |
| | | | - When **type** is **ecs**, the value is the ECS ID. |
| | | | - When **type** is **eni**, the value is the extension NIC ID. |
| | | | - When **type** is **vip**, the value is the virtual IP address. |
| | | | - When **type** is **nat**, the value is NAT gateway ID. |
| | | | - When **type** is **peering**, the value is the VPC peering connection ID. |
| | | | - When **type** is **vpn**, the value is the VPN ID. |
| | | | - When **type** is **dc**, the value is the Direct Connect connection ID. |
| | | | - When **type** is set to **egw**, the value is the VPC endpoint ID. |
| | | | - When **type** is set to **er**, the value is the ID of the enterprise router. |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
| description | No | String | - Provides supplementary information about the route. |
| | | | - The value can contain no more than 255 characters and cannot contain angle brackets (< or >). |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
.. _vpc_apiroutetab_0004__table1294364718262:
.. table:: **Table 6** Field description of modifying a route
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
| Parameter | Mandatory | Type | Description |
+=================+=================+=================+==================================================================================================+
| type | Yes | String | - Specifies the route type. |
| | | | - Values: |
| | | | |
| | | | - **ecs** (ECS) |
| | | | - **eni** (NIC) |
| | | | - **vip** (Virtual IP address) |
| | | | - **nat** (NAT gateway) |
| | | | - **peering** (VPC peering connection) |
| | | | - **vpn** (VPN) |
| | | | - **dc** (Direct Connect connection) |
| | | | - **egw**: VPC endpoint node |
| | | | - **er**: enterprise router |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
| destination | Yes | String | - Specifies the destination CIDR block of a route. |
| | | | - The value must be in the valid CIDR format. |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
| nexthop | Yes | String | - Specifies the ID of the next hop in the route. |
| | | | - Values: |
| | | | |
| | | | - When **type** is **ecs**, the value is the ECS ID. |
| | | | - When **type** is **eni**, the value is the extension NIC ID. |
| | | | - When **type** is **vip**, the value is the virtual IP address. |
| | | | - When **type** is **nat**, the value is NAT gateway ID. |
| | | | - When **type** is **peering**, the value is the VPC peering connection ID. |
| | | | - When **type** is **vpn**, the value is the VPN ID. |
| | | | - When **type** is **dc**, the value is the Direct Connect connection ID. |
| | | | - When **type** is set to **egw**, the value is the VPC endpoint ID. |
| | | | - When **type** is set to **er**, the value is the ID of the enterprise router. |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
| description | No | String | - Provides supplementary information about the route. |
| | | | - The value can contain no more than 255 characters and cannot contain angle brackets (< or >). |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
.. _vpc_apiroutetab_0004__table27171519267:
.. table:: **Table 7** Field description of deleting a route
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
| Parameter | Mandatory | Type | Description |
+=================+=================+=================+==================================================================================================+
| type | No | String | - Specifies the route type. |
| | | | - Values: |
| | | | |
| | | | - **ecs** (ECS) |
| | | | - **eni** (NIC) |
| | | | - **vip** (Virtual IP address) |
| | | | - **nat** (NAT gateway) |
| | | | - **peering** (VPC peering connection) |
| | | | - **vpn** (VPN) |
| | | | - **dc** (Direct Connect connection) |
| | | | - **egw**: VPC endpoint node |
| | | | - **er**: enterprise router |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
| destination | Yes | String | - Specifies the destination CIDR block of a route. |
| | | | - The value must be in the valid CIDR format. |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
| nexthop | No | String | - Specifies the ID of the next hop in the route. |
| | | | - Values: |
| | | | |
| | | | - When **type** is **ecs**, the value is the ECS ID. |
| | | | - When **type** is **eni**, the value is the extension NIC ID. |
| | | | - When **type** is **vip**, the value is the virtual IP address. |
| | | | - When **type** is **nat**, the value is NAT gateway ID. |
| | | | - When **type** is **peering**, the value is the VPC peering connection ID. |
| | | | - When **type** is **vpn**, the value is the VPN ID. |
| | | | - When **type** is **dc**, the value is the Direct Connect connection ID. |
| | | | - When **type** is set to **egw**, the value is the VPC endpoint ID. |
| | | | - When **type** is set to **er**, the value is the ID of the enterprise router. |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
| description | No | String | - Provides supplementary information about the route. |
| | | | - The value can contain no more than 255 characters and cannot contain angle brackets (< or >). |
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------+
Example Request
---------------
- Change the route table whose ID is 3d42a0d4-a980-4613-ae76-a2cddecff054, add a route with next hop type of ECS, modify the route with next hop type of ECS, and delete the route whose destination is 20.20.10.0/24.
.. code-block:: text
PUT https://{Endpoint}/v1/6fbe9263116a4b68818cf1edce16bc4f/routetables/3d42a0d4-a980-4613-ae76-a2cddecff054
{
"routetable": {
"name": "routertable-789",
"description": "abc",
"routes": {
"add": [
{
"type": "ecs",
"destination": "10.10.10.0/24",
"nexthop": "7c50463d-d36c-4417-aa85-cc11fa10f341",
"description": "abc"
}
],
"mod": [
{
"type": "ecs",
"destination": "20.10.10.0/24",
"nexthop": "7c50463d-d36c-4417-aa85-cc11fa10f341",
"description": "abc"
}
],
"del": [
{
"destination": "20.20.10.0/24"
}
]
}
}
}
Response Parameters
-------------------
.. table:: **Table 8** Response parameter
+------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
| Name | Type | Description |
+============+====================================================================+=======================================================================================================+
| routetable | :ref:`routetable ` object | Specifies the route table. For details, see :ref:`Table 9 `. |
+------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------+
.. _vpc_apiroutetab_0004__table884119412392:
.. table:: **Table 9** Description of the **routetable** field
+-----------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| Name | Type | Description |
+=======================+============================================================================+========================================================================================================================================+
| id | String | - Specifies the route table ID, which uniquely identifies the route table. |
| | | - The value must be in standard UUID format. |
+-----------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| name | String | - Specifies the route table name. |
| | | - The value can contain no more than 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.). |
+-----------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| default | Boolean | - Specifies whether the route table is the default one. |
| | | - The value can be **true** (default route table) or **false** (custom route table). |
+-----------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| routes | Array of :ref:`route ` objects | - Specifies the route list. For details, see :ref:`Table 4 `. |
| | | - Each route table can have a maximum of 200 routes. |
+-----------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| subnets | Array of :ref:`subnet ` objects | - Specifies the subnets associated with the route table. For details, see :ref:`Table 5 `. |
| | | - Only subnets in the VPC to which the route table belongs can be associated with the route table. |
+-----------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| tenant_id | String | - Specifies the project ID. |
+-----------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| vpc_id | String | - Specifies the ID of the VPC associated with the route table. |
+-----------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| description | String | - Provides supplementary information about the route table. |
| | | - The value can contain no more than 255 characters and cannot contain angle brackets (< or >). |
+-----------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| created_at | String | - Specifies the time (UTC) when the route table is created. |
| | | - Format: *yyyy-MM-ddTHH:mm:ss* |
+-----------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
| updated_at | String | - Specifies the time (UTC) when the route table is updated. |
| | | - Format: *yyyy-MM-ddTHH:mm:ss* |
+-----------------------+----------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------+
.. table:: **Table 10** Description of the **route** field
+-----------------------+-----------------------+--------------------------------------------------------------------------------------------------+
| Name | Type | Description |
+=======================+=======================+==================================================================================================+
| type | String | - Specifies the route type. |
| | | - Values: |
| | | |
| | | - **ecs** (ECS) |
| | | - **eni** (NIC) |
| | | - **vip** (Virtual IP address) |
| | | - **nat** (NAT gateway) |
| | | - **peering** (VPC peering connection) |
| | | - **vpn** (VPN) |
| | | - **dc** (Direct Connect connection) |
| | | - **egw**: VPC endpoint node |
| | | - **er**: enterprise router |
+-----------------------+-----------------------+--------------------------------------------------------------------------------------------------+
| destination | String | - Specifies the destination CIDR block of a route. |
| | | - The value must be in the valid CIDR format. |
+-----------------------+-----------------------+--------------------------------------------------------------------------------------------------+
| nexthop | String | - Specifies the ID of the next hop in the route. |
| | | - Values: |
| | | |
| | | - When **type** is **ecs**, the value is the ECS ID. |
| | | - When **type** is **eni**, the value is the extension NIC ID. |
| | | - When **type** is **vip**, the value is the virtual IP address. |
| | | - When **type** is **nat**, the value is NAT gateway ID. |
| | | - When **type** is **peering**, the value is the VPC peering connection ID. |
| | | - When **type** is **vpn**, the value is the VPN ID. |
| | | - When **type** is **dc**, the value is the Direct Connect connection ID. |
| | | - When **type** is set to **egw**, the value is the VPC endpoint ID. |
| | | - When **type** is set to **er**, the value is the ID of the enterprise router. |
+-----------------------+-----------------------+--------------------------------------------------------------------------------------------------+
| description | String | - Provides supplementary information about the route. |
| | | - The value can contain no more than 255 characters and cannot contain angle brackets (< or >). |
+-----------------------+-----------------------+--------------------------------------------------------------------------------------------------+
.. table:: **Table 11** Description of the **subnet** field
+------+--------+-----------------------------------------------------------------+
| Name | Type | Description |
+======+========+=================================================================+
| id | String | Specifies the ID of the subnet associated with the route table. |
+------+--------+-----------------------------------------------------------------+
Example Response
----------------
.. code-block::
{
"routetable": {
"id": "3d42a0d4-a980-4613-ae76-a2cddecff054",
"vpc_id": "ab78be2d-782f-42a5-aa72-35879f6890ff",
"description": "abc",
"default": false,
"routes": [
{
"type": "ecs",
"destination": "10.10.10.0/24",
"nexthop": "7c50463d-d36c-4417-aa85-cc11fa10f341",
"description": "abc"
}
],
"subnets": [
{
"id": "8d4ce32f-d68a-4c4c-9f18-c68d8a5c7f2f"
}
],
"tenant_id": "6fbe9263116a4b68818cf1edce16bc4f",
"created_at": "2022-12-15T02:56:40",
"updated_at": "2022-12-15T03:03:42"
}
}
Status Code
-----------
See :ref:`Status Codes `.
Error Code
----------
See :ref:`Error Codes `.