# Updating a Subnet

#### Function

This API is used to update information about a subnet.

Restrictions

When updating the allocation_pools field, neither gateway nor broadcast IP addresses can be included.

#### URI

PUT /v2.0/subnets/{subnet_id}

#### Request Message

Table 1 Request parameter
Parameter | Type | Mandatory | Description
--- | --- | --- | ---
subnet | subnet object | Yes | Specifies the subnet. For details, see Table 2. You must specify at least one attribute when updating a subnet.

Table 2 subnet objects
Attribute | Mandatory | Type | Description
--- | --- | --- | ---
name | No | String | Specifies the subnet name.

allocation_pools

No

Array of allocation_pool objects

Specifies the available IP address pool. For details about the allocation_pool objects, see Table 3.

Example: [ { "start": "10.0.0.2", "end": "10.0.0.251"} ]

The last three and the first IP addresses in each subnet are the ones reserved by the system. For example, in subnet 192.168.1.0/24, IP addresses 192.168.1.0, 192.168.1.253, 192.168.1.254, and 192.168.1.255 are reserved by the system. By default, the IP addresses reserved by the system are not in the IP address pool specified by allocation_pool.

When updating an IP address pool, the allocation_pool value can contain neither gateway nor broadcast IP addresses.

dns_nameservers | No | Array of strings | Specifies the DNS server address. Instructions: Example: "dns_nameservers": ["8.xx.xx.8","8.xx.xx.4"] A maximum of five DNS server addresses are supported.
host_routes | No | Array of host_route objects | Specifies the static VM routes. For details, see Table 4. Static routes are not supported, and entered information will be ignored.
enable_dhcp | No | Boolean | Specifies whether to enable the DHCP function. Value false indicates that the DHCP function is not enabled. The value can only be true.

Table 3 allocation_pool objects
Parameter | Mandatory | Type | Description
--- | --- | --- | ---
start | No | String | Specifies the start IP address of a network pool.
end | No | String | Specifies the end IP address of a network pool.

Table 4 host_route objects
Parameter | Mandatory | Type | Description
--- | --- | --- | ---
destination | No | String | Specifies the destination subnet of a route.
nexthop | No | String | Specifies the next-hop IP address of a route.

#### Response Message

Table 5 Response parameter
Parameter | Type | Description
--- | --- | ---
subnet | subnet object | Specifies the subnet. For details, see Table 6.

Table 6 subnet objects
Attribute | Type | Description
--- | --- | ---
id | String | Specifies the subnet ID. This parameter is not mandatory when you query subnets.
name | String | Specifies the subnet name.
ip_version | Integer | Specifies the IP address version. Supported versions: IPv4
network_id | String | Specifies the ID of the network to which the subnet belongs.
cidr | String | Specifies the CIDR format. Only the addresses in the 10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16 network segments are supported. In addition, the subnet mask cannot be greater than 28.
gateway_ip | String | The gateway IP address cannot conflict with IP addresses configured for allocation_pools. This attribute cannot be modified.

allocation_pools

Array of allocation_pool objects

Specifies the available IP address pool. For details, see the allocation_pool objects.

Table 7

Example: [ { "start": "10.0.0.2", "end": "10.0.0.251"} ]

The last three and the first IP addresses in each subnet are the ones reserved by the system. For example, in IPv4 subnet 192.168.1.0/24, IP addresses 192.168.1.0, 192.168.1.253, 192.168.1.254, and 192.168.1.255 are reserved by the system.

By default, the IP addresses reserved by the system are not in the IP address pool specified by allocation_pool.

When updating an IP address pool, the allocation_pool value can contain neither gateway nor broadcast IP addresses.

dns_nameservers | Array of strings | Specifies the DNS server address. Example: "dns_nameservers": ["8.xx.xx.8","8.xx.xx.4"]
host_routes | Array of host_route objects | Specifies the static VM routes. For details, see Table 8. Static routes are not supported, and entered information will be ignored.
tenant_id | String | Specifies the project ID.
enable_dhcp | Boolean | Specifies whether to enable the DHCP function. Value false indicates that the DHCP function is not enabled. The value can only be true.
project_id | String | Specifies the 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

Table 7 allocation_pool objects
Parameter | Type | Remarks
--- | --- | ---
start | String | Specifies the start IP address of a network pool.
end | String | Specifies the end IP address of a network pool.

Table 8 host_route objects
Parameter | Type | Remarks
--- | --- | ---
destination | String | Specifies the destination subnet of a route.
nexthop | String | Specifies the next-hop IP address of a route.

#### Example:

Example request

    PUT https://{Endpoint}/v2.0/subnets/98bac90c-0ba7-4a63-8995-097da9bead1c

    {
      "subnet": {
        "name": "subnet-test"
      }
    }

Example response

    {
        "subnet": {
            "name": "subnet-test",
            "cidr": "172.16.2.0/24",
            "id": "98bac90c-0ba7-4a63-8995-097da9bead1c",
            "enable_dhcp": true,
            "network_id": "0133cd73-34d4-4d4c-bf1f-e65b24603206",
            "tenant_id": "bbfe8c41dd034a07bebd592bf03b4b0c",
            "project_id": "bbfe8c41dd034a07bebd592bf03b4b0c",
            "dns_nameservers": [],
            "allocation_pools": [
                {
                    "start": "172.16.2.2",
                    "end": "172.16.2.251"
                }
            ],
            "host_routes": [],
            "ip_version": 4,
            "gateway_ip": "172.16.2.1",
            "created_at": "2018-09-20T02:02:16",
            "updated_at": "2018-09-20T02:03:03"
        }
    }

#### Status Code

See Status Codes.

#### Error Code

See Error Codes.

Parent topic: Subnet