forked from docs/virtual-private-cloud
299 lines
58 KiB
ReStructuredText
299 lines
58 KiB
ReStructuredText
:original_name: vpc_subnet01_0001.html
|
|
|
|
.. _vpc_subnet01_0001:
|
|
|
|
Creating a Subnet
|
|
=================
|
|
|
|
Function
|
|
--------
|
|
|
|
This API is used to create a subnet.
|
|
|
|
URI
|
|
---
|
|
|
|
POST /v1/{project_id}/subnets
|
|
|
|
:ref:`Table 1 <vpc_subnet01_0001__table21421675>` describes the parameters.
|
|
|
|
.. _vpc_subnet01_0001__table21421675:
|
|
|
|
.. table:: **Table 1** Parameter description
|
|
|
|
========== ========= =========================
|
|
Name Mandatory Description
|
|
========== ========= =========================
|
|
project_id Yes Specifies the project ID.
|
|
========== ========= =========================
|
|
|
|
Request Parameters
|
|
------------------
|
|
|
|
.. table:: **Table 2** Request parameter
|
|
|
|
+--------+-----------+---------------------------------------------------------+-------------------------------------------------------------------------+
|
|
| Name | Mandatory | Type | Description |
|
|
+========+===========+=========================================================+=========================================================================+
|
|
| subnet | Yes | :ref:`subnet <vpc_subnet01_0001__table45596481>` object | Specifies the :ref:`subnet objects <vpc_subnet01_0001__table45596481>`. |
|
|
+--------+-----------+---------------------------------------------------------+-------------------------------------------------------------------------+
|
|
|
|
.. _vpc_subnet01_0001__table45596481:
|
|
|
|
.. table:: **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. |
|
|
+-----------------+-----------------+--------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| ipv6_enable | No | Boolean | - Specifies whether IPv6 is enabled. |
|
|
| | | | - The value can be **true** (enabled) or **false** (disabled). |
|
|
| | | | - If this parameter is left blank, the system automatically sets it to **false** by default. |
|
|
+-----------------+-----------------+--------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| 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 value is set to **true** by default. 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 primary IP address of DNS server 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 standby IP address of DNS server on the subnet. |
|
|
| | | | |
|
|
| | | | - The value must be an IP address. If the value is not specified, the default value will be left blank. |
|
|
| | | | |
|
|
| | | | If only **secondary_dns** is specified and **primary_dns** is not specified, **primary_dns** will automatically use the value of **secondary_dns**. |
|
|
| | | | |
|
|
| | | | If there is only one DNS server address, only **primary_dns** is displayed. |
|
|
+-----------------+-----------------+--------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| 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. |
|
|
+-----------------+-----------------+--------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| vpc_id | Yes | String | Specifies the ID of the VPC to which the subnet belongs. |
|
|
+-----------------+-----------------+--------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| extra_dhcp_opts | No | Array of :ref:`extra_dhcp_opt <vpc_subnet01_0001__table1805181451016>` objects | Specifies the NTP server address configured for the subnet. For details, see :ref:`Table 4 <vpc_subnet01_0001__table1805181451016>`. |
|
|
+-----------------+-----------------+--------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
.. _vpc_subnet01_0001__table1805181451016:
|
|
|
|
.. table:: **Table 4** **extra_dhcp_opt** object
|
|
|
|
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| Name | Mandatory | Type | Description |
|
|
+=================+=================+=================+======================================================================================================================================================================================================================================================================================================================================================================================================================================+
|
|
| opt_value | No | String | - Specifies the NTP server address 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. |
|
|
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| opt_name | Yes | String | - Specifies the NTP server address configured for the subnet. |
|
|
| | | | - Currently, the value can only be set to **ntp**. |
|
|
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
Example Request
|
|
---------------
|
|
|
|
- Create a subnet with name set to **subnet**, CIDR block set to 192.168.20.0/24, and gateway IP address set to 192.168.20.1 in the VPC with ID of 3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85.
|
|
|
|
.. code-block:: text
|
|
|
|
POST https://{Endpoint}/v1/{project_id}/subnets
|
|
|
|
{
|
|
"subnet": {
|
|
"name": "subnet",
|
|
"description": "",
|
|
"cidr": "192.168.20.0/24",
|
|
"gateway_ip": "192.168.20.1",
|
|
"ipv6_enable": true,
|
|
"dhcp_enable": true,
|
|
"primary_dns": "114.xx.xx.114",
|
|
"secondary_dns": "114.xx.xx.115",
|
|
"dnsList": [
|
|
"114.xx.xx.114",
|
|
"114.xx.xx.115"
|
|
],
|
|
"vpc_id": "3ec3b33f-ac1c-4630-ad1c-7dba1ed79d85",
|
|
"extra_dhcp_opts": [
|
|
{
|
|
"opt_value": "10.100.0.33,10.100.0.34",
|
|
"opt_name": "ntp"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
Response Parameters
|
|
-------------------
|
|
|
|
.. table:: **Table 5** Response parameter
|
|
|
|
+--------+---------------------------------------------------------+-------------------------------------------------------------------------+
|
|
| Name | Type | Description |
|
|
+========+=========================================================+=========================================================================+
|
|
| subnet | :ref:`subnet <vpc_subnet01_0001__table54041329>` object | Specifies the :ref:`subnet objects <vpc_subnet01_0001__table54041329>`. |
|
|
+--------+---------------------------------------------------------+-------------------------------------------------------------------------+
|
|
|
|
.. _vpc_subnet01_0001__table54041329:
|
|
|
|
.. table:: **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. |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| ipv6_enable | Boolean | Specifies whether IPv6 is enabled. |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| cidr_v6 | String | Specifies the IPv6 subnet CIDR block. If the subnet is an IPv4 subnet, this parameter is not returned. |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| gateway_ip_v6 | String | Specifies the IPv6 subnet gateway. If the subnet is an IPv4 subnet, this parameter is not returned. |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| dhcp_enable | Boolean | Specifies whether DHCP is enabled for the subnet. |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| primary_dns | String | - Specifies the primary IP address of DNS server 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 standby IP address of DNS server on the subnet. |
|
|
| | | |
|
|
| | | - The value must be an IP address. If the value is not specified, the default value will be left blank. |
|
|
| | | |
|
|
| | | If only **secondary_dns** is specified and **primary_dns** is not specified, **primary_dns** will automatically use the value of **secondary_dns**. |
|
|
| | | |
|
|
| | | If there is only one DNS server address, only **primary_dns** is displayed. |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| 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. |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| 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. |
|
|
| | | |
|
|
| | | - The value of status is **UNKNOWN** before the subnet is associated with a VPC. After the subnet is associated with a VPC in the threads, the status of the subnet is **ACTIVE**. |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| 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). |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| neutron_subnet_id_v6 | String | Specifies the ID of the IPv6 subnet (OpenStack Neutron API). If the subnet is an IPv4 subnet, this parameter is not returned. |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| extra_dhcp_opts | Array of :ref:`extra_dhcp_opt <vpc_subnet01_0001__table019517383270>` objects | Specifies the NTP server address configured for the subnet. For details, see :ref:`Table 7 <vpc_subnet01_0001__table019517383270>`. |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| scope | String | - Specifies where the subnet is used in edge cloud scenario. |
|
|
| | | - The value can be: |
|
|
| | | |
|
|
| | | - **center**: The subnet is used in a central AZ. |
|
|
| | | - *{azId}*: The subnet is used in an edge AZ. |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| tenant_id | String | - Project ID |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| created_at | String | - Specifies the time (UTC) when the subnet is created. |
|
|
| | | - Format: *yyyy-MM-ddTHH:mm:ss* |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| updated_at | String | - Specifies the time (UTC) when the subnet is updated. |
|
|
| | | - Format: *yyyy-MM-ddTHH:mm:ss* |
|
|
+-----------------------+-------------------------------------------------------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
.. _vpc_subnet01_0001__table019517383270:
|
|
|
|
.. table:: **Table 7** **extra_dhcp_opt** object
|
|
|
|
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| Name | Mandatory | Type | Description |
|
|
+=================+=================+=================+======================================================================================================================================================================================================================================================================================================================================================================================================================================+
|
|
| opt_value | No | String | - Specifies the NTP server address 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. |
|
|
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
| opt_name | Yes | String | - Specifies the NTP server address configured for the subnet. |
|
|
| | | | - Currently, the value can only be set to **ntp**. |
|
|
+-----------------+-----------------+-----------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
|
|
|
Example Response
|
|
----------------
|
|
|
|
.. code-block::
|
|
|
|
{
|
|
"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",
|
|
"ipv6_enable": true,
|
|
"cidr_v6": "2001:db8:a583::/64",
|
|
"gateway_ip_v6": "2001:db8:a583::1",
|
|
"dhcp_enable": true,
|
|
"primary_dns": "114.xx.xx.114",
|
|
"secondary_dns": "114.xx.xx.115",
|
|
"neutron_network_id": "4779ab1c-7c1a-44b1-a02e-93dfc361b32d",
|
|
"neutron_subnet_id": "213cb9d-3122-2ac1-1a29-91ffc1231a12",
|
|
"neutron_subnet_id_v6": "e0fa7de1-a6e2-44c9-b052-b9d8cebe93c4",
|
|
"extra_dhcp_opts": [
|
|
{
|
|
"opt_value": "10.100.0.33,10.100.0.34",
|
|
"opt_name": "ntp"
|
|
}
|
|
]
|
|
"tenant_id": "087679f0aa80d32a2f4ec0172f5e902b",
|
|
"created_at": "2022-12-15T02:42:07",
|
|
"updated_at": "2022-12-15T02:42:07"
|
|
}
|
|
}
|
|
|
|
Status Code
|
|
-----------
|
|
|
|
See :ref:`Status Codes <vpc_api_0002>`.
|
|
|
|
Error Code
|
|
----------
|
|
|
|
See :ref:`Error Codes <vpc_api_0003>`.
|