ACLs

An ACL matches on properties of a request — host, path, headers — and decides which backend serves it. One is created with every Virtual Service to link its frontend to its backend.

ACLs

GET /ipvsDirector/acls

Get all IPVS Director ACLs

curl
curl -X GET "https://appliance.example.com/api/v1/ipvsDirector/acls" \
  -H "Authorization: Bearer $TOKEN"
PHP
<?php

$url = 'https://appliance.example.com/api/v1/ipvsDirector/acls';
$headers = [
    'Authorization: Bearer ' . $token,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}

response = requests.get("https://appliance.example.com/api/v1/ipvsDirector/acls", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/acls', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "ACLs retrieved successfully",
  "data": [
    {
      "id": "111-111-111-111",
      "conditionType": "default",
      "condition": "eq",
      "redirectType": "backend",
      "redirectLocation": "333-333-333-333"
    }
  ]
}

POST /ipvsDirector/acls

Add an ACL linking a Frontend to a Backend

This change is staged. Send PUT /services/apply to apply it.

Body parameters
name string Required

Human-readable label for the ACL (WebUI only; never rendered into config). Required and non-empty, max 255 chars.

conditionType default: "default" default

Must be "default" currently.

condition default: "eq" eq

Must be "eq" currently.

redirectType default: "backend" backend

Must be "backend" currently.

redirectLocation string

The Id of a Backend already in the system.

curl
curl -X POST "https://appliance.example.com/api/v1/ipvsDirector/acls" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "<name>",
  "conditionType": "default",
  "condition": "eq",
  "redirectType": "backend",
  "redirectLocation": "<redirectLocation>"
}'
PHP
<?php

$url = 'https://appliance.example.com/api/v1/ipvsDirector/acls';
$headers = [
    'Authorization: Bearer ' . $token,
    'Content-Type: application/json',
];

$payload = [
    'name' => '<name>',
    'conditionType' => 'default',
    'condition' => 'eq',
    'redirectType' => 'backend',
    'redirectLocation' => '<redirectLocation>',
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => json_encode($payload),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}
payload = {
    "name": "<name>",
    "conditionType": "default",
    "condition": "eq",
    "redirectType": "backend",
    "redirectLocation": "<redirectLocation>"
}

response = requests.post("https://appliance.example.com/api/v1/ipvsDirector/acls", headers=headers, json=payload)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/acls', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${token}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "name": "<name>",
  "conditionType": "default",
  "condition": "eq",
  "redirectType": "backend",
  "redirectLocation": "<redirectLocation>"
}),
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "ACL added successfully",
  "data": {
    "id": "5ce-68c-589-22d"
  }
}

List the Layer 4 ACLs with pending changes

GET /ipvsDirector/acls/hanging

Get all hanging IPVS Director ACLs

curl
curl -X GET "https://appliance.example.com/api/v1/ipvsDirector/acls/hanging" \
  -H "Authorization: Bearer $TOKEN"
PHP
<?php

$url = 'https://appliance.example.com/api/v1/ipvsDirector/acls/hanging';
$headers = [
    'Authorization: Bearer ' . $token,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}

response = requests.get("https://appliance.example.com/api/v1/ipvsDirector/acls/hanging", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/acls/hanging', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "ACLs retrieved successfully",
  "data": [
    {
      "id": "111-111-111-111",
      "conditionType": "default",
      "condition": "eq",
      "redirectType": "backend",
      "redirectLocation": "333-333-333-333"
    }
  ]
}

By ID

GET /ipvsDirector/acls/{id}

Get IPVS Director ACL by Id

Path parameters
id string Required

The id of the acl.

curl
curl -X GET "https://appliance.example.com/api/v1/ipvsDirector/acls/{id}" \
  -H "Authorization: Bearer $TOKEN"
PHP
<?php

$url = 'https://appliance.example.com/api/v1/ipvsDirector/acls/{id}';
$headers = [
    'Authorization: Bearer ' . $token,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'GET',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}

response = requests.get("https://appliance.example.com/api/v1/ipvsDirector/acls/{id}", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/acls/{id}', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "ACLs retrieved successfully",
  "data": {
    "id": "111-111-111-111",
    "conditionType": "default",
    "condition": "eq",
    "redirectType": "backend",
    "redirectLocation": "333-333-333-333"
  }
}

PUT /ipvsDirector/acls/{id}

Edit an ACL

This change is staged. Send PUT /services/apply to apply it.

Path parameters
id string Required

The id of the acl.

Body parameters
name string

Human-readable label (WebUI only). Non-empty and max 255 chars when supplied; omit to keep the stored value.

conditionType default: "default" default

Must be "default" currently.

condition default: "eq" eq

Must be "eq" currently.

redirectType default: "backend" backend

Must be "backend" currently.

redirectLocation string

The Id of a Backend already in the system.

curl
curl -X PUT "https://appliance.example.com/api/v1/ipvsDirector/acls/{id}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "<name>",
  "conditionType": "default",
  "condition": "eq",
  "redirectType": "backend",
  "redirectLocation": "<redirectLocation>"
}'
PHP
<?php

$url = 'https://appliance.example.com/api/v1/ipvsDirector/acls/{id}';
$headers = [
    'Authorization: Bearer ' . $token,
    'Content-Type: application/json',
];

$payload = [
    'name' => '<name>',
    'conditionType' => 'default',
    'condition' => 'eq',
    'redirectType' => 'backend',
    'redirectLocation' => '<redirectLocation>',
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'PUT',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POSTFIELDS => json_encode($payload),
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}
payload = {
    "name": "<name>",
    "conditionType": "default",
    "condition": "eq",
    "redirectType": "backend",
    "redirectLocation": "<redirectLocation>"
}

response = requests.put("https://appliance.example.com/api/v1/ipvsDirector/acls/{id}", headers=headers, json=payload)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/acls/{id}', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${token}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "name": "<name>",
  "conditionType": "default",
  "condition": "eq",
  "redirectType": "backend",
  "redirectLocation": "<redirectLocation>"
}),
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "ACL updated successfully",
  "data": []
}

DELETE /ipvsDirector/acls/{id}

Delete an ACL from the configuration

This change is staged. Send PUT /services/apply to apply it.

Path parameters
id string Required

The id of the acl.

curl
curl -X DELETE "https://appliance.example.com/api/v1/ipvsDirector/acls/{id}" \
  -H "Authorization: Bearer $TOKEN"
PHP
<?php

$url = 'https://appliance.example.com/api/v1/ipvsDirector/acls/{id}';
$headers = [
    'Authorization: Bearer ' . $token,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'DELETE',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}

response = requests.delete("https://appliance.example.com/api/v1/ipvsDirector/acls/{id}", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/acls/{id}', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "ACL deleted successfully",
  "data": []
}

Delete a Layer 4 ACL and everything attached to it

DELETE /ipvsDirector/acls/{id}/all

Delete an ACL and all associated objects from the configuration

This change is staged. Send PUT /services/apply to apply it.

Path parameters
id string Required

The id of the acl.

curl
curl -X DELETE "https://appliance.example.com/api/v1/ipvsDirector/acls/{id}/all" \
  -H "Authorization: Bearer $TOKEN"
PHP
<?php

$url = 'https://appliance.example.com/api/v1/ipvsDirector/acls/{id}/all';
$headers = [
    'Authorization: Bearer ' . $token,
];

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'DELETE',
    CURLOPT_HTTPHEADER => $headers,
    CURLOPT_RETURNTRANSFER => true,
]);

$response = json_decode(curl_exec($ch), true);
curl_close($ch);
Python
import requests

headers = {"Authorization": f"Bearer {token}"}

response = requests.delete("https://appliance.example.com/api/v1/ipvsDirector/acls/{id}/all", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/acls/{id}/all', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "ACL and all unused, associated items deleted successfully",
  "data": []
}