Subnets

Create a subnet

This operation takes one parameter, an associative array, with the following keys:

Name Description Data type Required? Default value Example value
networkId Network this subnet is associated with String Yes
eb60583c-57ea-41b9-8d5c-8fab2d22224c
ipVersion IP version Integer (4 or 6) Yes
4
cidr CIDR representing the IP address range for this subnet String (CIDR) Yes
192.168.199.0/25
name A human-readable name for the subnet. This name might not be unique. String No null My subnet
gatewayIp IP address of the default gateway used by devices on this subnet String (IP address) No First IP address in CIDR 192.168.199.128
dnsNameservers DNS nameservers used by hosts in this subnet Indexed array of strings No Empty array array('4.4.4.4', '8.8.8.8')
allocationPools Subranges of the CIDR available for dynamic allocation to ports Indexed array of associative arrays No Every IP address in CIDR, excluding gateway IP address if configured array(array('start' => '192.168.199.2', 'end' => '192.168.199.127'))
hostRoutes Routes that should be used by devices with IP addresses from this subnet (not including the local subnet route) Indexed array of associative arrays No Empty array array(array('destination' => '1.1.1.0/24', 'nexthop' => '192.168.19.20'))
enableDhcp Specifies whether DHCP is enabled for this subnet Boolean No true false
tenantId Owner of the subnet. Only admin users can specify a tenant ID other than their own. String No Same as tenant creating the subnet 123456

You can create a subnet as shown in the following example:

/** @var $subnet OpenCloud\Networking\Resource\Subnet **/
$subnet = $networkingService->createSubnet(array(
    'name' => 'My subnet',
    'networkId' => 'eb60583c-57ea-41b9-8d5c-8fab2d22224c',
    'ipVersion' => 4,
    'cidr' => '192.168.199.0/25'
));

Get the executable PHP script for this example

Create multiple subnets

This operation takes one parameter, an indexed array. Each element of this array must be an associative array with the keys shown in the preceding table.

You can create multiple subnets as shown in the following example:

$subnets = $networkingService->createSubnets(array(
    array(
        'name' => 'My subnet #1'
    ),
    array(
        'name' => 'My subnet #2'
    )
));

foreach ($subnets as $subnet) {
    /** @var $subnet OpenCloud\Networking\Resource\Subnet **/
}

Get the executable PHP script for this example

List subnets

You can list all the subnets to which you have access as shown in the following example:

$subnets = $networkingService->listSubnets();
foreach ($subnets as $subnet) {
    /** @var $subnet OpenCloud\Networking\Resource\Subnet **/
}

Get the executable PHP script for this example

Get a subnet

You can retrieve a specific subnet by using that subnet’s ID, as shown in the following example:

/** @var $subnet OpenCloud\Networking\Resource\Subnet **/
$subnet = $networkingService->getSubnet('{subnetId}');

Get the executable PHP script for this example

Update a subnet

This operation takes one parameter, an associative array, with the following keys:

Name Description Data type Required? Default value Example value
name A human-readable name for the subnet. This name might not be unique. String No null My updated subnet
gatewayIp IP address of the default gateway used by devices on this subnet String (IP address) No First IP address in CIDR 192.168.62.155
dnsNameservers DNS nameservers used by hosts in this subnet Indexed array of strings No Empty array array('4.4.4.4', '8.8.8.8')
hostRoutes Routes that should be used by devices with IP adresses from this subnet (not including the local subnet route) Indexed array of associative arrays No Empty array array(array('destination' => '1.1.1.0/24', 'nexthop' => '192.168.17.19'))
enableDhcp Specifies whether DHCP is enabled for this subnet Boolean No true false

You can update a subnet as shown in the following example:

$subnet->update(array(
    'name' => 'My updated subnet',
    'hostRoutes' => array(
        array(
            'destination' => '1.1.1.0/24',
            'nexthop'     => '192.168.17.19'
        )
    ),
    'gatewayIp' => '192.168.62.155'
));

Get the executable PHP script for this example

Delete a subnet

You can delete a subnet as shown in the following example:

$subnet->delete();

Get the executable PHP script for this example