51 KiB

original_name

vpc_subnet01_0001.html

Creating a Subnet

Function

This API is used to create a subnet.

URI

POST /v1/{project_id}/subnets

Table 1 <vpc_subnet01_0001__table21421675> describes the parameters.

Table 1 Parameter description
Name Mandatory Description
project_id Yes Specifies the project ID.

Request Message

  • Request parameter

    Table 2 Request parameter
    Name Mandatory Type Description
    subnet Yes subnet <vpc_subnet01_0001__table45596481> object Specifies the subnet objects <vpc_subnet01_0001__table45596481>.
    Table 3 subnet objects
    Name Mandatory Type Description
    name Yes String
    • Specifies the subnet name.
    • The value can contain 1 to 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.).
    description No String
    • Provides supplementary information about the subnet.
    • The value can contain no more than 255 characters and cannot contain angle brackets (< or >).
    cidr Yes String
    • Specifies the subnet CIDR block.
    • The value must be within the VPC CIDR block.
    • The value must be in CIDR format. The subnet mask cannot be greater than 28.
    gateway_ip Yes String
    • Specifies the gateway of the subnet.
    • The value must be an IP address in the subnet.
    • The value must be a valid IP address.
    dhcp_enable No Boolean
    • Specifies whether DHCP is enabled for the subnet.
    • The value can be true (enabled) or false (disabled).
    • If this parameter is left blank, the default value true is used. The default value is one day. If this parameter is set to false, newly created ECSs cannot obtain IP addresses, and usernames and passwords cannot be injected using Cloud-init.
    primary_dns No String
    • Specifies the IP address of DNS server 1 on the subnet.
    • The value must be an IP address. If the value is not specified, the default value will be left blank.
    secondary_dns No String
    • Specifies the IP address of DNS server 2 on the subnet.
    • The value must be an IP address. If the value is not specified, the default value will be left blank.
    dnsList No Array of strings
    • Specifies the DNS server address list of a subnet. This field is required if you need to use more than two DNS servers.
    • This parameter value is the superset of both DNS server address 1 and DNS server address 2. If the value is not specified, the default value will be left blank.
    availability_zone No String
    • Specifies the AZ to which the subnet belongs, which can be obtained from endpoints.
    • The value must be an existing AZ in the system. If the value is not specified, the default value will be left blank.
    vpc_id Yes String Specifies the ID of the VPC to which the subnet belongs.
    extra_dhcp_opts No Array of extra_dhcp_opt <vpc_subnet01_0001__table1805181451016> objects Specifies the NTP server address or DHCP lease time configured for the subnet. For details, see Table 4 <vpc_subnet01_0001__table1805181451016>.
    Table 4 extra_dhcp_opt object
    Name Mandatory Type Description
    opt_value No String
    • Specifies the NTP server address or DHCP lease expiration time configured for the subnet.

    • Constraints:

      The option ntp for opt_name indicates the NTP server configured for the subnet. Currently, only IPv4 addresses are supported. A maximum of four IP addresses can be configured, and each address must be unique. Multiple IP addresses must be separated using commas (,). The option null for opt_name indicates that no NTP server is configured for the subnet. The parameter value cannot be an empty string.

      The option addresstime for opt_name indicates the DHCP lease expiration time. The value can be -1, which indicates unlimited lease time, or Number+h. The number ranges from 1 to 30,000. For example, the value can be 5h. The default value is 24h.

    opt_name Yes String
    • Specifies the NTP server address name or DHCP lease expiration time name configured for the subnet.
    • Currently, the value can only be set to ntp or addresstime.
  • Example request

    POST https://{Endpoint}/v1/{project_id}/subnets
    
    {
        "subnet": {
            "name": "subnet",
            "description": "",
            "cidr": "192.168.20.0/24",
            "gateway_ip": "192.168.20.1",
            "dhcp_enable": true,
            "primary_dns": "114.xx.xx.114",
            "secondary_dns": "114.xx.xx.115",
            "dnsList": [
                "114.xx.xx.114",
                "114.xx.xx.115"
            ],
            "availability_zone": "aa-bb-cc",//For example, the AZ is aa-bb-cc.
            "vpc_id": "3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85",
            "extra_dhcp_opts": [
                {
                    "opt_value": "10.100.0.33,10.100.0.34",
                    "opt_name": "ntp"
                }
            ]
        }
    }

Response Message

  • Response parameter

    Table 5 Response parameter
    Name Type Description
    subnet subnet <vpc_subnet01_0001__table54041329> object Specifies the subnet objects <vpc_subnet01_0001__table54041329>.
    Table 6 subnet objects
    Name Type Description
    id String Specifies the resource identifier in the form of UUID.
    name String
    • Specifies the subnet name.
    • The value can contain 1 to 64 characters, including letters, digits, underscores (_), hyphens (-), and periods (.).
    description String
    • Provides supplementary information about the subnet.
    • The value can contain no more than 255 characters and cannot contain angle brackets (< or >).
    cidr String
    • Specifies the subnet CIDR block.
    • The value must be within the VPC CIDR block.
    • The value must be in CIDR format. The subnet mask cannot be greater than 28.
    gateway_ip String
    • Specifies the gateway of the subnet.
    • The value must be an IP address in the subnet.
    • The value must be a valid IP address.
    dhcp_enable Boolean Specifies whether the DHCP function is enabled for the subnet.
    primary_dns String
    • Specifies the IP address of DNS server 1 on the subnet.
    • The value must be an IP address. If the value is not specified, the default value will be left blank.
    secondary_dns String
    • Specifies the IP address of DNS server 2 on the subnet.
    • The value must be an IP address. If the value is not specified, the default value will be left blank.
    dnsList Array of strings
    • Specifies the DNS server address list of a subnet. This field is required if you need to use more than two DNS servers.
    • This parameter value is the superset of both DNS server address 1 and DNS server address 2. If the value is not specified, the default value will be left blank.
    availability_zone String
    • Specifies the AZ to which the subnet belongs, which can be obtained from endpoints.
    • The value must be an existing AZ in the system. If the value is not specified, the default value will be left blank.
    vpc_id String Specifies the ID of the VPC to which the subnet belongs.
    status String
    • Specifies the status of the subnet.

    • The value can be ACTIVE, UNKNOWN, or ERROR.

      • ACTIVE: indicates that the subnet has been associated with a VPC.
      • UNKNOWN: indicates that the subnet has not been associated with a VPC.
      • ERROR: indicates that the subnet is abnormal.
    • The system creates a subnet and then associates the subnet with a VPC in the threads.

      In the concurrent scenario, if the CIDR block of the created subnet is the same as that of an existing subnet, the created subnet fails to associate with a VPC after underlying system verification. As a result, the subnet creation fails.

      In this scenario, the returned value of status is UNKNOWN.

    neutron_network_id String Specifies the ID of the corresponding network (OpenStack Neutron API).
    neutron_subnet_id String Specifies the ID of the corresponding subnet (OpenStack Neutron API).
    extra_dhcp_opts Array of extra_dhcp_opt <vpc_subnet01_0001__table019517383270> objects Specifies the NTP server address or DHCP lease time configured for the subnet. For details, see Table 7 <vpc_subnet01_0001__table019517383270>.
    Table 7 extra_dhcp_opt object
    Name Mandatory Type Description
    opt_value No String
    • Specifies the NTP server address or DHCP lease expiration time configured for the subnet.

    • Constraints:

      The option ntp for opt_name indicates the NTP server configured for the subnet. Currently, only IPv4 addresses are supported. A maximum of four IP addresses can be configured, and each address must be unique. Multiple IP addresses must be separated using commas (,). The option null for opt_name indicates that no NTP server is configured for the subnet. The parameter value cannot be an empty string.

      The option addresstime for opt_name indicates the DHCP lease expiration time. The value can be -1, which indicates unlimited lease time, or Number+h. The number ranges from 1 to 30,000. For example, the value can be 5h. The default value is 24h.

    opt_name Yes String
    • Specifies the NTP server address name or DHCP lease expiration time name configured for the subnet.
    • Currently, the value can only be set to ntp or addresstime.
  • Example response

    {
        "subnet": {
            "id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d",
            "name": "subnet",
            "description": "",
            "cidr": "192.168.20.0/24",
            "dnsList": [
                "114.xx.xx.114",
                "114.xx.xx.115"
            ],
            "status": "UNKNOWN",
            "vpc_id": "3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85",
            "gateway_ip": "192.168.20.1",
            "dhcp_enable": true,
            "primary_dns": "114.xx.xx.114",
            "secondary_dns": "114.xx.xx.115",
            "availability_zone": "aa-bb-cc",//For example, the AZ is aa-bb-cc.
            "neutron_network_id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d",
            "neutron_subnet_id": "213cb9d-3122-2ac1-1a29-91ffc1231a12"
            "extra_dhcp_opts": [
                {
                    "opt_value": "10.100.0.33,10.100.0.34",
                    "opt_name": "ntp"
                }
            ]
        }
    }

Status Code

See Status Codes <vpc_api_0002>.

Error Code

See Error Codes <vpc_api_0003>.