: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 no more than 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 default value is left blank. | | | | | | | | | | - 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 `. | +--------------------+-----------------+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | enable_shared_snat | No | Boolean | Specifies whether the shared SNAT function is enabled. The value **true** indicates that the function is enabled, and the value **false** indicates that the function is not enabled. | +--------------------+-----------------+--------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. _vpc_api01_0004__table1696324019336: .. table:: **Table 4** **route** objects +-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------+ | Name | Mandatory | Type | Description | +=================+=================+=================+==========================================================================================================================+ | destination | No | String | - Specifies the destination network segment of a route. | | | | | - The value must be in CIDR format. | +-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------+ | nexthop | No | String | - Specifies the next hop of a route. | | | | | - The value must be an IP address and must belong to the subnet in the VPC. Otherwise, this value does not take effect. | +-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------+ 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", "enable_shared_snat": true } } 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 the shared SNAT function is enabled. The value **true** indicates that the function is enabled, and the value **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 network segment of a route. | | | | - The value must be in CIDR format. | +-----------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------+ | nexthop | String | - Specifies the next hop of a route. | | | | - The value must be an IP address and must belong to the subnet in the VPC. Otherwise, this value does not take effect. | +-----------------------+-----------------------+--------------------------------------------------------------------------------------------------------------------------+ 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 `.