Updated on 2024-08-01 GMT+08:00

Creating a Network

Function

This API is used to create a network.

URI

POST /v2.0/networks

Request Parameters

Table 1 Request parameter

Parameter

Type

Mandatory

Description

network

network object

Yes

Specifies the network. For details, see Table 2.

Table 2 network objects

Attribute

Mandatory

Type

Description

name

No

String

Specifies the network name.

The name cannot be the same as the admin_external_net value (preset network name and cannot be used).

admin_state_up

No

Boolean

Specifies the administrative status.

The value can only be true.

shared

No

Boolean

Specifies whether the network can be shared by different tenants.

provider:network_type

No

String

Specifies the network type.

Only the VXLAN and GENEVE networks are supported.

Tenants can only set this parameter to geneve. If this parameter is not specified, the network type is automatically set to VXLAN. If the network is preset as admin_external_net, this parameter is fixed at vlan and cannot be configured.

Note:

  • Set this parameter to geneve if you want to create GENEVE networks.
  • Do not specify this parameter if you want to create VXLAN networks.

port_security_enabled

No

Boolean

Specifies whether the security option is enabled for the port. If the option is not enabled, the security group and DHCP snooping settings of all VMs in the network do not take effect.

Example Request

Create a network named network-test.

POST https://{Endpoint}/v2.0/networks 

{
    "network": {
           "name": "network-test",
           "shared": false,
           "admin_state_up": true
    }
}

Response Parameters

Table 3 Response parameter

Parameter

Type

Description

network

network object

Specifies the network. For details, see Table 4.

Table 4 network objects

Attribute

Type

Description

status

String

Specifies the network status. The value can be ACTIVE, BUILD, DOWN, or ERROR.

subnets

Array of strings

Specifies IDs of the subnets associated with this network. The IDs are in a list.

Only one subnet can be associated with each network.

name

String

Specifies the network name.

The name cannot be the same as the admin_external_net value (preset network name and cannot be used).

router:external

Boolean

Specifies whether the network is an external network. The default value is false. This is an extended attribute.

admin_state_up

Boolean

Specifies the administrative status.

The value can only be true.

tenant_id

String

Specifies the project ID.

shared

Boolean

Specifies whether the network can be shared by different tenants.

id

String

Specifies the network ID.

This parameter is not mandatory when you query networks.

provider:network_type

String

Specifies the network type.

Only the VXLAN and GENEVE networks are supported.

Tenants can only set this parameter to geneve. If this parameter is not specified, the network type is automatically set to VXLAN. If the network is preset as admin_external_net, this parameter is fixed at vlan and cannot be configured.

Note:

  • Set this parameter to geneve if you want to create GENEVE networks.
  • Do not specify this parameter if you want to create VXLAN networks.

availability_zone_hints

Array of strings

Specifies the availability zones available to this network. The current version does not support cross-availability-zone network scheduling.

availability_zones

Array of strings

Specifies the availability zone of this network.

port_security_enabled

Boolean

Specifies whether the security option is enabled for the port. If the option is not enabled, the security group and DHCP snooping settings of all VMs in the network do not take effect.

dns_domain

String

Specifies the default private network DNS domain address. The system automatically sets this parameter, and you are not allowed to configure or change the parameter value.

project_id

String

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

created_at

String

Specifies the time (UTC) when the network is created.

Format: yyyy-MM-ddTHH:mm:ss

updated_at

String

Specifies the time (UTC) when the network is updated.

Format: yyyy-MM-ddTHH:mm:ss

Example Response

{
    "network": {
        "id": "c360322d-5315-45d7-b7d2-481f98c56edb",
        "name": "network-test",
        "status": "ACTIVE",
        "shared": false,
        "subnets": [],
        "availability_zone_hints": [],
        "availability_zones": [
            "az2.dc2",
            "az5.dc5"
        ],
        "admin_state_up": true,
        "tenant_id": "bbfe8c41dd034a07bebd592bf03b4b0c",
        "project_id": "bbfe8c41dd034a07bebd592bf03b4b0c",
        "provider:network_type": "vxlan",
        "router:external": false,
        "port_security_enabled": true,
        "created_at": "2018-09-20T01:53:18",
        "updated_at": "2018-09-20T01:53:20"
    }
}

Status Code

See Status Codes.

Error Code

See Error Codes.