Updated on 2022-12-13 GMT+08:00

Creating a VPC

Function

This API is used to create a VPC.

URI

POST /v1/{project_id}/vpcs

Table 1 describes the parameters.
Table 1 Parameter description

Name

Mandatory

Description

project_id

Yes

Specifies the project ID. For details about how to obtain a project ID, see Obtaining a Project ID.

Request Message

  • Request parameter
    Table 2 Request parameter

    Name

    Mandatory

    Type

    Description

    vpc

    Yes

    vpc object

    Specifies the VPC objects.

    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.
    • The value must be in CIDR format, for example, 192.168.0.0/16.

    enterprise_project_id

    No

    String

    • Specifies the enterprise project ID. When creating a VPC, you can associate an enterprise project ID with the VPC.
    • 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.
    NOTE:
  • Example request
    POST https://{Endpoint}/v1/{project_id}/vpcs
    
    {
        "vpc": {
            "name": "vpc",
            "description": "test",
            "cidr": "192.168.0.0/16"
          
        }
    }

Response Message

  • Response parameter
    Table 4 Response parameter

    Name

    Type

    Description

    vpc

    vpc object

    Specifies the VPC objects.

    Table 5 VPC objects

    Name

    Type

    Description

    id

    String

    Specifies a resource ID in UUID format.

    name

    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

    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.

    routes

    Array of route objects

    • Specifies the route information.
    • For details, see the description of the route objects.

    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.
    NOTE:
    Table 6 route objects

    Name

    Type

    Description

    destination

    String

    • Specifies the destination network segment of a route.
    • The value must be in the CIDR format. Currently, only the value 0.0.0.0/0 is supported.

    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
    {
     "vpc": 
         {
         "id": "99d9d709-8478-4b46-9f3f-2206b1023fd3",
         "name": "vpc",
         "description": "test",
         "cidr": "192.168.0.0/16",
         "status": "CREATING",
         "routes": []
         }
    }

Status Code

See Status Codes.

Error Code

See Error Codes.