Adding a Secondary CIDR Block to a VPC

Function

This API is used to add a secondary CIDR block to a VPC.

URI

PUT /v3/{project_id}/vpc/vpcs/{vpc_id}/add-extend-cidr

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID.

vpc_id

Yes

String

VPC ID.

Request Parameters

Table 2 Request body parameters

Parameter

Mandatory

Type

Description

dry_run

No

Boolean

  • Whether to only send the check request.

  • The value can be:

    • true: Only the check request will be sent and the secondary CIDR block will not be added. Check items include mandatory parameters, request format, and constraints. If the check fails, the system returns an error. If the check succeeds, response code 202 will be returned.

    • false (default value): A request will be sent and a secondary CIDR block will be added.

vpc

Yes

AddExtendCidrOption object

Request body for adding a secondary CIDR block.

Table 3 AddExtendCidrOption

Parameter

Mandatory

Type

Description

extend_cidrs

Yes

Array of strings

  • Secondary CIDR blocks that can be added to a VPC.

  • The CIDR block cannot be the following:

    • 100.64.0.0/10

    • 214.0.0.0/7

    • 198.18.0.0/15

    • 169.254.0.0/16

    • 0.0.0.0/8

    • 127.0.0.0/8

    • 240.0.0.0/4

    • 172.31.0.0/16

    • 192.168.0.0/16

    • 255.255.255.255/32

  • A maximum of 5 secondary CIDR blocks can be added.

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

request_id

String

Request ID.

vpc

Vpc object

Response body of adding a secondary CIDR block.

Table 5 Vpc

Parameter

Type

Description

id

String

  • VPC ID, which uniquely identifies the VPC.

  • The value is in UUID format with hyphens (-).

name

String

  • VPC name.

  • The name can contain up to 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.).

description

String

  • Supplementary information about the VPC.

  • The value can contain up to 255 characters and cannot contain angle brackets (< or >).

cidr

String

  • Available VPC CIDR blocks.

  • The value can be:

    • 10.0.0.0/8-10.255.255.240/28

    • 172.16.0.0/12-172.31.255.240/28

    • 192.168.0.0/16-192.168.255.240/28

    • If cidr is not specified, the default value is "".

  • The value must be in IPv4 CIDR format, for example, 192.168.0.0/16.

extend_cidrs

Array of strings

  • Secondary CIDR blocks of a VPC.

  • Currently, only IPv4 CIDR blocks are supported.

status

String

  • VPC status.

  • The value can be:

    • PENDING: The VPC is being created.

    • ACTIVE: The VPC is created successfully.

project_id

String

  • ID of the project to which the VPC belongs.

enterprise_project_id

String

  • ID of the enterprise project to which the VPC belongs.

  • The value can be 0 or a string that contains a maximum of 36 characters in UUID format with hyphens (-). Value 0 indicates the default enterprise project.

created_at

String

  • Time when the VPC is created.

  • The value is a UTC time in the format of yyyy-MM-ddTHH:mmssZ.

updated_at

String

  • Time when the VPC is updated.

  • The value is a UTC time in the format of yyyy-MM-ddTHH:mmssZ.

cloud_resources

Array of CloudResource objects

  • Type and number of resources associated with the VPC.

  • Currently, only route tables and subnets of the VPC are returned. The number of virsubnets is the total number of IPv4 and IPv6 subnets.

tags

Array of Tag objects

  • VPC tags. For details, see the tag objects.

  • Value range: 0 to 20 tag key-value pairs.

Table 6 CloudResource

Parameter

Type

Description

resource_type

String

  • Resource type.

resource_count

Integer

  • Number of resources.

Table 7 Tag

Parameter

Type

Description

key

String

  • Tag key.

  • Value range:

    • Each key can contain up to 36 Unicode characters and cannot be left blank.

    • Each key value of a resource must be unique.

    • The value can contain:

      • Letters

      • Digits

      • Special characters: underscores (_) ,at signs (@), and hyphens (-)

value

String

  • Tag value.

  • Value range:

    • Each value can contain up to 43 Unicode characters and can be left blank.

    • The value can contain:

      • Letters

      • Digits

      • Special characters: underscore (_), at signs (@), and hyphen (-)

Status code: 202

Table 8 Response body parameters

Parameter

Type

Description

request_id

String

Request ID.

error_msg

String

Error message.

error_code

String

Error code.

Example Requests

Add a secondary CIDR block 23.8.0.0/16 to the VPC whose ID is 99d9d709-8478-4b46-9f3f-2206b1023fd3.

PUT https://{Endpoint}/v3/{project_id}/vpc/vpcs/99d9d709-8478-4b46-9f3f-2206b1023fd3/add-extend-cidr

{
  "vpc" : {
    "extend_cidrs" : [ "23.8.0.0/16" ]
  }
}

Example Responses

Status code: 200

Normal response for the PUT operation. For more status codes, see Status Code.

{
  "request_id" : "84eb4f775d66dd916db121768ec55626",
  "vpc" : {
    "id" : "0552091e-b83a-49dd-88a7-4a5c86fd9ec3",
    "name" : "vpc1",
    "description" : "test1",
    "cidr" : "192.168.0.0/16",
    "extend_cidrs" : [ "23.8.0.0/16" ],
    "enterprise_project_id" : "0",
    "tags" : [ {
      "key" : "key",
      "value" : "value"
    } ],
    "cloud_resources" : [ {
      "resource_type" : "routetable",
      "resource_count" : 1
    } ],
    "status" : "ACTIVE",
    "project_id" : "060576782980d5762f9ec014dd2f1148",
    "created_at" : "2018-03-23T09:26:08",
    "updated_at" : "2018-08-24T08:49:53"
  }
}

Status code: 202

Normal response for the specified preflight request of API V3. For more status codes, see Status Code.

{
  "error_msg" : "Request validation has been passed with dry run...",
  "error_code" : "SYS.0202",
  "request_id" : "cfd81aea3f59eac7128dba4b36d516c8"
}

Status Codes

Status Code

Description

200

Normal response for the PUT operation. For more status codes, see Status Code.

202

Normal response for the specified preflight request of API V3. For more status codes, see Status Code.

Error Codes

See Error Codes.