:original_name: vpc_api01_0004.html .. _vpc_api01_0004: Updating a VPC ============== Function -------- This API is used to update information about a VPC. URI --- PUT /v1/{project_id}/vpcs/{vpc_id} :ref:`Table 1 ` describes the parameters. .. _vpc_api01_0004__table27380479: .. table:: **Table 1** Parameter description +------------+-----------+----------------------------------------------------------+ | Name | Mandatory | Description | +============+===========+==========================================================+ | project_id | Yes | Specifies the project ID. | +------------+-----------+----------------------------------------------------------+ | vpc_id | Yes | Specifies the VPC ID, which uniquely identifies the VPC. | +------------+-----------+----------------------------------------------------------+ Request Parameters ------------------ .. table:: **Table 2** Request parameter +------+-----------+---------------------------------------------------+-------------------------------------------------------------------+ | Name | Mandatory | Type | Description | +======+===========+===================================================+===================================================================+ | vpc | Yes | :ref:`vpc ` object | :ref:`Specifies the VPC objects. ` | +------+-----------+---------------------------------------------------+-------------------------------------------------------------------+ .. _vpc_api01_0004__table34290771: .. table:: **Table 3** VPC objects +-----------------+-----------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ | Name | Mandatory | Type | Description | +=================+=================+====================================================================+=========================================================================================================================+ | name | No | String | - Specifies the VPC name. | | | | | - The value can contain up to 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.). | | | | | - Each VPC name of a tenant must be unique if the VPC name is not left blank. | +-----------------+-----------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ | description | No | String | - Provides supplementary information about the VPC. | | | | | - The value can contain no more than 255 characters and cannot contain angle brackets (< or >). | +-----------------+-----------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ | cidr | No | String | - Specifies the available IP address ranges for subnets in the VPC. | | | | | - Possible values are as follows: | | | | | | | | | | - 10.0.0.0/8-24 | | | | | - 172.16.0.0/12-24 | | | | | - 192.168.0.0/16-24 | | | | | | | | | | - If **cidr** is not specified, the value is left blank by default. | | | | | - Constraints: | | | | | | | | | | - The value must be in CIDR format, for example, **192.168.0.0/16**. | | | | | - If you want to update the CIDR block of the VPC, the new CIDR block must contain all subnets in the VPC. | +-----------------+-----------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ | routes | No | Array of :ref:`route ` objects | - Specifies the route list. For details, see :ref:`Table 4 `. | +-----------------+-----------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------+ .. _vpc_api01_0004__table1696324019336: .. table:: **Table 4** **route** objects +-----------------+-----------------+-----------------+-------------------------------------------------------------------------------------------------------+ | Name | Mandatory | Type | Description | +=================+=================+=================+=======================================================================================================+ | destination | No | String | - Specifies the destination CIDR block of a route. | | | | | - Constraints: The value must be in the CIDR format. IPv4 and IPv6 CIDR formats are supported. | +-----------------+-----------------+-----------------+-------------------------------------------------------------------------------------------------------+ | nexthop | No | String | - Specifies the next hop of a route. | | | | | - The value must be an IP address from the subnet of the VPC. IPv4 and IPv6 addresses are supported. | +-----------------+-----------------+-----------------+-------------------------------------------------------------------------------------------------------+ Example Request --------------- - Change the name, description, and CIDR block of the VPC whose ID is 99d9d709-8478-4b46-9f3f-2206b1023fd3 to **vpc1**, **test1**, and **192.168.0.0/16**, respectively. .. code-block:: text PUT https://{Endpoint}/v1/{project_id}/vpcs/99d9d709-8478-4b46-9f3f-2206b1023fd3 { "vpc": { "name": "vpc1", "description": "test1", "cidr": "192.168.0.0/16" } } Response Parameters ------------------- .. table:: **Table 5** Response parameter +------+---------------------------------------------------+-------------------------------------------------------------------+ | Name | Type | Description | +======+===================================================+===================================================================+ | vpc | :ref:`vpc ` object | :ref:`Specifies the VPC objects. ` | +------+---------------------------------------------------+-------------------------------------------------------------------+ .. _vpc_api01_0004__table22527411: .. table:: **Table 6** VPC objects +-----------------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Name | Type | Description | +=======================+====================================================================+===================================================================================================================================================================+ | id | String | Specifies a resource ID in UUID format. | +-----------------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | name | String | Specifies the VPC name. | +-----------------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | description | String | - Provides supplementary information about the VPC. | | | | - The value can contain no more than 255 characters and cannot contain angle brackets (< or >). | +-----------------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | cidr | String | - Specifies the available IP address ranges for subnets in the VPC. | | | | - Possible values are as follows: | | | | | | | | - 10.0.0.0/8-24 | | | | - 172.16.0.0/12-24 | | | | - 192.168.0.0/16-24 | | | | | | | | - If **cidr** is not specified, the default value is left blank. | | | | - The value must be in CIDR format, for example, **192.168.0.0/16**. | +-----------------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | status | String | - Specifies the VPC status. | | | | - Possible values are as follows: | | | | | | | | - **CREATING**: The VPC is being created. | | | | - **OK**: The VPC is created successfully. | +-----------------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | enterprise_project_id | String | - Specifies the enterprise project ID. | | | | - The value is **0** or a string that contains a maximum of 36 characters in UUID format with hyphens (-). Value **0** indicates the default enterprise project. | +-----------------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | routes | Array of :ref:`route ` objects | - Specifies the route information. | | | | - For details, see the description of the :ref:`route objects `. | +-----------------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | enable_shared_snat | Boolean | Specifies whether to enable the shared SNAT function. **true** indicates that the function is enabled, and **false** indicates that the function is not enabled. | +-----------------------+--------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. _vpc_api01_0004__table3576833291556: .. table:: **Table 7** **route** objects +-----------------------+-----------------------+-------------------------------------------------------------------------------------------------------+ | Name | Type | Description | +=======================+=======================+=======================================================================================================+ | destination | String | - Specifies the destination CIDR block of a route. | | | | - Constraints: The value must be in the CIDR format. IPv4 and IPv6 CIDR formats are supported. | +-----------------------+-----------------------+-------------------------------------------------------------------------------------------------------+ | nexthop | String | - Specifies the next hop of a route. | | | | - The value must be an IP address from the subnet of the VPC. IPv4 and IPv6 addresses are supported. | +-----------------------+-----------------------+-------------------------------------------------------------------------------------------------------+ Example Response ---------------- .. code-block:: { "vpc": { "id": "99d9d709-8478-4b46-9f3f-2206b1023fd3", "name": "vpc1", "description": "test1", "cidr": "192.168.0.0/16", "status": "OK", "enterprise_project_id": "0", "routes": [], "enable_shared_snat": true } } Status Code ----------- See :ref:`Status Codes `. Error Code ---------- See :ref:`Error Codes `.