Updating a VPC

Function

This API is used to update information about a VPC.

URI

PUT /v1/{project_id}/vpcs/{vpc_id}

Table 1 describes the parameters.

Table 1 Parameter description

Parameter

Mandatory

Description

project_id

Yes

Specifies the project ID.

vpc_id

Yes

Specifies the VPC ID, which uniquely identifies the VPC.

Request Parameters

Table 2 Request parameter

Parameter

Mandatory

Type

Description

vpc

Yes

vpc object

Specifies the VPC objects.

Table 3 VPC objects

Parameter

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 route objects

  • Specifies the route list. For details, see Table 4.

Table 4 route objects

Parameter

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.

    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 5 Response parameter

Parameter

Type

Description

vpc

vpc object

Specifies the VPC objects.

Table 6 VPC objects

Parameter

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 route objects

  • Specifies the route information.

  • For details, see the description of the 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.

tenant_id

String

  • Project ID

created_at

String

  • Specifies the time (UTC) when the VPC is created.

  • Format: yyyy-MM-ddTHH:mm:ss

updated_at

String

  • Specifies the time (UTC) when the VPC is updated.

  • Format: yyyy-MM-ddTHH:mm:ss

Table 7 route objects

Parameter

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

{
    "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,
        "tenant_id": "087679f0aa80d32a2f4ec0172f5e902b",
        "created_at": "2022-12-15T02:25:11",
        "updated_at": "2022-12-15T06:23:15"
    }
}

Status Code

See Status Codes.

Error Code

See Error Codes.