GET
/api/application/address-poolsFetching pools
Query parameters
pageper_page- Max is 100.
filter[name]
Request
GET
/api/application/address-poolscurl "https://panel.example.com/api/application/address-pools" \ -H "Authorization: Bearer <token>" \ -H "Accept: application/json"
use Illuminate\Support\Facades\Http; $response = Http::withToken($token) ->acceptJson() ->get('https://panel.example.com/api/application/address-pools');
const response = await fetch('https://panel.example.com/api/application/address-pools', { headers: { Authorization: `Bearer ${token}`, Accept: 'application/json', }, })
Response
{ "data": [ { "id": 2, "name": "Node dc01.local", "nodes_count": 1, "addresses_count": 6 }, { "id": 1, "name": "Node 172.16.141.50", "nodes_count": 1, "addresses_count": 5 } ], "meta": { "pagination": { "total": 2, "count": 2, "per_page": 50, "current_page": 1, "total_pages": 1, "links": {} } } }
- page
- per_page
- max is 100
- filter[name]
GET
/api/application/address-pools/<pool_id>Fetching a pool
Request
GET
/api/application/address-pools/<pool_id>curl "https://panel.example.com/api/application/address-pools/<pool_id>" \ -H "Authorization: Bearer <token>" \ -H "Accept: application/json"
use Illuminate\Support\Facades\Http; $response = Http::withToken($token) ->acceptJson() ->get('https://panel.example.com/api/application/address-pools/<pool_id>');
const response = await fetch('https://panel.example.com/api/application/address-pools/<pool_id>', { headers: { Authorization: `Bearer ${token}`, Accept: 'application/json', }, })
Response
{ "data": { "id": 1, "name": "Node 172.16.141.50", "nodes_count": 1, "addresses_count": 5 } }
GET
/api/application/address-pools/<pool_id>/addressesFetching a pool addresess
Query parameters
pageper_page- Max is 100.
filter[type] = ipv4 | ipv6filter[address]filter[*]- Search by wildcard.
filter[server_id]- An empty server_id field will search for unallocated IP addresses.
Request
GET
/api/application/address-pools/<pool_id>/addressescurl "https://panel.example.com/api/application/address-pools/<pool_id>/addresses" \ -H "Authorization: Bearer <token>" \ -H "Accept: application/json"
use Illuminate\Support\Facades\Http; $response = Http::withToken($token) ->acceptJson() ->get('https://panel.example.com/api/application/address-pools/<pool_id>/addresses');
const response = await fetch('https://panel.example.com/api/application/address-pools/<pool_id>/addresses', { headers: { Authorization: `Bearer ${token}`, Accept: 'application/json', }, })
Response
{ "data": [ { "id": 11, "address_pool_id": 2, "server_id": null, "type": "ipv4", "address": "172.16.141.70", "cidr": 24, "gateway": "172.16.141.1", "mac_address": null }, { "id": 10, "address_pool_id": 2, "server_id": null, "type": "ipv4", "address": "172.16.141.69", "cidr": 24, "gateway": "172.16.141.1", "mac_address": null }, { "id": 9, "address_pool_id": 2, "server_id": null, "type": "ipv4", "address": "172.16.141.68", "cidr": 24, "gateway": "172.16.141.1", "mac_address": null }, { "id": 8, "address_pool_id": 2, "server_id": null, "type": "ipv4", "address": "172.16.141.67", "cidr": 24, "gateway": "172.16.141.1", "mac_address": null } ], "meta": { "pagination": { "total": 4, "count": 4, "per_page": 50, "current_page": 1, "total_pages": 1, "links": {} } } }
- page
- per_page
- max is 100
- filter[type] = ipv4 | ipv6
- filter[address]
- filter[*]
- search by wildcard
- filter[server_id]
- an empty server_id field will search for unallocated IP addresses
POST
/api/application/address-poolsCreating a pool
Parameters
name: Pool namenode_ids: Node ID that can access this pool in array
Request
POST
/api/application/address-poolscurl -X POST "https://panel.example.com/api/application/address-pools" \ -H "Authorization: Bearer <token>" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ --data '{ "name": "Node dc01.local", "node_ids": [ 1 ] }'
use Illuminate\Support\Facades\Http; $response = Http::withToken($token) ->acceptJson() ->post('https://panel.example.com/api/application/address-pools', [ 'name' => 'Node dc01.local', 'node_ids' => [ 1, ], ]);
const response = await fetch('https://panel.example.com/api/application/address-pools', { method: 'POST', headers: { Authorization: `Bearer ${token}`, Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ "name": "Node dc01.local", "node_ids": [ 1 ] }), })
Response
{ "data": { "id": 4, "name": "Node dc01.local", "nodes_count": 1, "addresses_count": 0 } }
name: Pool namenode_ids: Node ID that can access this pool in array
POST
/api/application/address-pools/<pool_id>/addressesCreating single or multiple address
is_bulk_action:truefor multiple adresses andfalsefor single address- For single address use this:
address: IP address value
- For multiple address use this to define range:
starting_address: First IP address valueending_address: Last IP address value
- For single address use this:
type:ipv4oripv6cidr: CIDR valuegateway: Network gateway IP valuemac_address: MAC address value ornullfor emptyserver_id: Server id number for adress allocation ornullfor empty
Single address
Multiple address
Returns no content
Body parameters
is_bulk_actionbooleanmac_addressserver_idintegeraddressstringtypestringcidrintegergatewaystring
Request
POST
/api/application/address-pools/<pool_id>/addressescurl -X POST "https://panel.example.com/api/application/address-pools/<pool_id>/addresses" \ -H "Authorization: Bearer <token>" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ --data '{ "is_bulk_action": false, "mac_address": null, "server_id": 10, "address": "172.16.141.71", "type": "ipv4", "cidr": 24, "gateway": "172.16.141.1" }'
use Illuminate\Support\Facades\Http; $response = Http::withToken($token) ->acceptJson() ->post('https://panel.example.com/api/application/address-pools/<pool_id>/addresses', [ 'is_bulk_action' => false, 'mac_address' => null, 'server_id' => 10, 'address' => '172.16.141.71', 'type' => 'ipv4', 'cidr' => 24, 'gateway' => '172.16.141.1', ]);
const response = await fetch('https://panel.example.com/api/application/address-pools/<pool_id>/addresses', { method: 'POST', headers: { Authorization: `Bearer ${token}`, Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ "is_bulk_action": false, "mac_address": null, "server_id": 10, "address": "172.16.141.71", "type": "ipv4", "cidr": 24, "gateway": "172.16.141.1" }), })
Response
{ "data": { "id": 14, "address_pool_id": 2, "server_id": 10, "type": "ipv4", "address": "172.16.141.71", "cidr": 24, "gateway": "172.16.141.1", "mac_address": null } }
Response
{ "is_bulk_action": true, "starting_address": "172.16.141.80", "ending_address": "172.16.141.85", "mac_address": null, "server_id": 10, "type": "ipv4", "cidr": 24, "gateway": "172.16.141.1" }
PUT
/api/application/address-pools/<pool_id>Updating a pool
name: new namenode_ids: new node ID that can access this pool in array
Body parameters
namestringnode_idsarray
Request
PUT
/api/application/address-pools/<pool_id>curl -X PUT "https://panel.example.com/api/application/address-pools/<pool_id>" \ -H "Authorization: Bearer <token>" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ --data '{ "name": "Network Node dc01.local", "node_ids": [ 1 ] }'
use Illuminate\Support\Facades\Http; $response = Http::withToken($token) ->acceptJson() ->put('https://panel.example.com/api/application/address-pools/<pool_id>', [ 'name' => 'Network Node dc01.local', 'node_ids' => [ 1, ], ]);
const response = await fetch('https://panel.example.com/api/application/address-pools/<pool_id>', { method: 'PUT', headers: { Authorization: `Bearer ${token}`, Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ "name": "Network Node dc01.local", "node_ids": [ 1 ] }), })
Response
{ "data": { "id": 2, "name": "Network Node dc01.local", "nodes_count": 1, "addresses_count": 6 } }
PUT
/api/application/address-pools/<pool_id>/addresses/<address_id>Updating an address
address: New IP address valuetype:ipv4oripv6cidr: New CIDR valuegateway: New network gateway IP valuemac_address: New MAC address valueserver_id: New server id number for address allocation- null indicates that the address is not allocated to any server
Request
PUT
/api/application/address-pools/<pool_id>/addresses/<address_id>curl -X PUT "https://panel.example.com/api/application/address-pools/<pool_id>/addresses/<address_id>" \ -H "Authorization: Bearer <token>" \ -H "Accept: application/json"
use Illuminate\Support\Facades\Http; $response = Http::withToken($token) ->acceptJson() ->put('https://panel.example.com/api/application/address-pools/<pool_id>/addresses/<address_id>');
const response = await fetch('https://panel.example.com/api/application/address-pools/<pool_id>/addresses/<address_id>', { method: 'PUT', headers: { Authorization: `Bearer ${token}`, Accept: 'application/json', }, })
Response
{ "mac_address": null, "server_id": 10, "address": "172.16.141.71", "type": "ipv4", "cidr": 24, "gateway": "172.16.141.2" }
Response
{ "data": { "id": 14, "address_pool_id": 2, "server_id": 10, "type": "ipv4", "address": "172.16.141.71", "cidr": 24, "gateway": "172.16.141.2", "mac_address": null } }
DELETE
/api/application/address-pools/<pool_id>Deleting a pool
- Note: make sure that there are no nodes associated with that pool before deleting. If there are nodes, an HTTP exception will be thrown and the action won't be processed.
Returns no content
Request
DELETE
/api/application/address-pools/<pool_id>curl -X DELETE "https://panel.example.com/api/application/address-pools/<pool_id>" \ -H "Authorization: Bearer <token>" \ -H "Accept: application/json"
use Illuminate\Support\Facades\Http; $response = Http::withToken($token) ->acceptJson() ->delete('https://panel.example.com/api/application/address-pools/<pool_id>');
const response = await fetch('https://panel.example.com/api/application/address-pools/<pool_id>', { method: 'DELETE', headers: { Authorization: `Bearer ${token}`, Accept: 'application/json', }, })
DELETE
/api/application/address-pools/<pool_id>/addresses/<address_id>Deleting an address
Returns no content
Request
DELETE
/api/application/address-pools/<pool_id>/addresses/<address_id>curl -X DELETE "https://panel.example.com/api/application/address-pools/<pool_id>/addresses/<address_id>" \ -H "Authorization: Bearer <token>" \ -H "Accept: application/json"
use Illuminate\Support\Facades\Http; $response = Http::withToken($token) ->acceptJson() ->delete('https://panel.example.com/api/application/address-pools/<pool_id>/addresses/<address_id>');
const response = await fetch('https://panel.example.com/api/application/address-pools/<pool_id>/addresses/<address_id>', { method: 'DELETE', headers: { Authorization: `Bearer ${token}`, Accept: 'application/json', }, })