Endurance

Backends

A backend is the group of Real Servers a Virtual Service distributes traffic across, together with the load balancing method and health check it uses.

Backends

GET /ipvsDirector/backends

Get all Backends

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

$url = 'https://appliance.example.com/api/v1/ipvsDirector/backends';
$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/backends", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/backends', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "Backends retrieved successfully",
  "data": {
    "backends": [
      {
        "id": "5cf-4f3-1a5-977",
        "name": "testingbackend",
        "ripIds": [
          "5ce-788-600-844"
        ],
        "balanceMode": "leastConnections",
        "forwardingMode": "sourceNat",
        "persistenceEnabled": true,
        "persistenceTimeout": "15m",
        "healthCheckId": "3f2-9ab-41c-05d",
        "fallbackServerId": "",
        "fallbackServerForwardingMode": "destinationNat"
      }
    ]
  }
}

POST /ipvsDirector/backends

Add a IPVS Director Backend to the configuration

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

Body parameters
name string Required

A unique identifier for the Backend.

balanceMode default: "leastConnections" roundRobin | leastConnections
forwardingMode default: "sourceNat" sourceNat | destinationNat | directRouting
persistenceEnabled boolean default: "true"
persistenceTimeout string default: "5m"
healthCheckId string Required

The id of the Health Check to probe Real Servers with.

healthCheckParameters object

The values this reference supplies for the health check it names, keyed by parameter name. Each value is an object carrying exactly one of literal or system, e.g. {"path": {"literal": "/probe"}, "hostHeader": {"system": "hostname"}}. A name the check does not declare, a missing required parameter, and a value that fails its declared type are all rejected.

fallbackServerId string
fallbackServerForwardingMode default: "destinationNat" sourceNat | destinationNat | directRouting
curl
curl -X POST "https://appliance.example.com/api/v1/ipvsDirector/backends" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "<name>",
  "balanceMode": "leastConnections",
  "forwardingMode": "sourceNat",
  "persistenceEnabled": "true",
  "persistenceTimeout": "5m",
  "healthCheckId": "<healthCheckId>",
  "healthCheckParameters": {},
  "fallbackServerId": "<fallbackServerId>",
  "fallbackServerForwardingMode": "destinationNat"
}'
PHP
<?php

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

$payload = [
    'name' => '<name>',
    'balanceMode' => 'leastConnections',
    'forwardingMode' => 'sourceNat',
    'persistenceEnabled' => 'true',
    'persistenceTimeout' => '5m',
    'healthCheckId' => '<healthCheckId>',
    'healthCheckParameters' => [],
    'fallbackServerId' => '<fallbackServerId>',
    'fallbackServerForwardingMode' => 'destinationNat',
];

$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>",
    "balanceMode": "leastConnections",
    "forwardingMode": "sourceNat",
    "persistenceEnabled": "true",
    "persistenceTimeout": "5m",
    "healthCheckId": "<healthCheckId>",
    "healthCheckParameters": {},
    "fallbackServerId": "<fallbackServerId>",
    "fallbackServerForwardingMode": "destinationNat"
}

response = requests.post("https://appliance.example.com/api/v1/ipvsDirector/backends", headers=headers, json=payload)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/backends', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${token}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "name": "<name>",
  "balanceMode": "leastConnections",
  "forwardingMode": "sourceNat",
  "persistenceEnabled": "true",
  "persistenceTimeout": "5m",
  "healthCheckId": "<healthCheckId>",
  "healthCheckParameters": {},
  "fallbackServerId": "<fallbackServerId>",
  "fallbackServerForwardingMode": "destinationNat"
}),
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "Backend added successfully",
  "data": {
    "id": "5cf4f31a5977a"
  }
}

List the Layer 4 backends with pending changes

GET /ipvsDirector/backends/hanging

Get all hanging IPVS Director Backends

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

$url = 'https://appliance.example.com/api/v1/ipvsDirector/backends/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/backends/hanging", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/backends/hanging', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "Backends retrieved successfully",
  "data": [
    "111-111-111-111",
    "222-222-222-222"
  ]
}

By ID

GET /ipvsDirector/backends/{id}

Get a specific Backend

Path parameters
id string Required

The id of the backend.

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

$url = 'https://appliance.example.com/api/v1/ipvsDirector/backends/{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/backends/{id}", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/backends/{id}', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "Backends retrieved successfully",
  "data": {
    "id": "5cf4f31a5977a",
    "name": "testingbackend",
    "ripIds": [
      "5ce-788-d60-084"
    ],
    "balanceMode": "leastConnections",
    "forwardingMode": "sourceNat",
    "persistenceEnabled": true,
    "persistenceTimeout": "15m",
    "healthCheckId": "3f2-9ab-41c-05d",
    "fallbackServerId": "",
    "fallbackServerForwardingMode": "destinationNat"
  }
}

PUT /ipvsDirector/backends/{id}

Edit a IPVS Director Backend to the configuration

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

Path parameters
id string Required

The id of the backend.

Body parameters
name string

A unique identifier for the Backend.

balanceMode default: "leastConnections" roundRobin | leastConnections
forwardingMode default: "sourceNat" sourceNat | destinationNat | directRouting
persistenceEnabled boolean default: "true"
persistenceTimeout string default: "5m"
healthCheckId string Required

The id of the Health Check to probe Real Servers with.

healthCheckParameters object

The values this reference supplies for the health check it names, keyed by parameter name. Each value is an object carrying exactly one of literal or system, e.g. {"path": {"literal": "/probe"}, "hostHeader": {"system": "hostname"}}. A name the check does not declare, a missing required parameter, and a value that fails its declared type are all rejected.

fallbackServerId string
fallbackServerForwardingMode default: "destinationNat" sourceNat | destinationNat | directRouting
curl
curl -X PUT "https://appliance.example.com/api/v1/ipvsDirector/backends/{id}" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "<name>",
  "balanceMode": "leastConnections",
  "forwardingMode": "sourceNat",
  "persistenceEnabled": "true",
  "persistenceTimeout": "5m",
  "healthCheckId": "<healthCheckId>",
  "healthCheckParameters": {},
  "fallbackServerId": "<fallbackServerId>",
  "fallbackServerForwardingMode": "destinationNat"
}'
PHP
<?php

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

$payload = [
    'name' => '<name>',
    'balanceMode' => 'leastConnections',
    'forwardingMode' => 'sourceNat',
    'persistenceEnabled' => 'true',
    'persistenceTimeout' => '5m',
    'healthCheckId' => '<healthCheckId>',
    'healthCheckParameters' => [],
    'fallbackServerId' => '<fallbackServerId>',
    'fallbackServerForwardingMode' => 'destinationNat',
];

$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>",
    "balanceMode": "leastConnections",
    "forwardingMode": "sourceNat",
    "persistenceEnabled": "true",
    "persistenceTimeout": "5m",
    "healthCheckId": "<healthCheckId>",
    "healthCheckParameters": {},
    "fallbackServerId": "<fallbackServerId>",
    "fallbackServerForwardingMode": "destinationNat"
}

response = requests.put("https://appliance.example.com/api/v1/ipvsDirector/backends/{id}", headers=headers, json=payload)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/backends/{id}', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${token}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "name": "<name>",
  "balanceMode": "leastConnections",
  "forwardingMode": "sourceNat",
  "persistenceEnabled": "true",
  "persistenceTimeout": "5m",
  "healthCheckId": "<healthCheckId>",
  "healthCheckParameters": {},
  "fallbackServerId": "<fallbackServerId>",
  "fallbackServerForwardingMode": "destinationNat"
}),
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "Backend updated successfully",
  "data": {
    "id": "5cf4f31a5977a"
  }
}

DELETE /ipvsDirector/backends/{id}

Delete A Backend

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

Path parameters
id string Required

The id of the backend.

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

$url = 'https://appliance.example.com/api/v1/ipvsDirector/backends/{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/backends/{id}", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/backends/{id}', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

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

List the ACLs of a Layer 4 backend

GET /ipvsDirector/backends/{id}/acls

Get ACLS associated to a Backend

Path parameters
id string Required

The id of the backend.

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

$url = 'https://appliance.example.com/api/v1/ipvsDirector/backends/{id}/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/backends/{id}/acls", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/backends/{id}/acls', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

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

Delete a Layer 4 backend and everything attached to it

DELETE /ipvsDirector/backends/{id}/all

Delete a Backend and all associated from the configuration

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

Path parameters
id string Required

The id of the backend.

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

$url = 'https://appliance.example.com/api/v1/ipvsDirector/backends/{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/backends/{id}/all", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/backends/{id}/all', {
  method: 'DELETE',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

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

Drain a Layer 4 backend

PUT /ipvsDirector/backends/{id}/drain

Drain all Real Servers associated to this Backend

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

Path parameters
id string Required

The id of the backend.

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

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

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'PUT',
    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.put("https://appliance.example.com/api/v1/ipvsDirector/backends/{id}/drain", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/backends/{id}/drain', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "Drained all Real Servers in Backend",
  "data": []
}

Halt a Layer 4 backend

PUT /ipvsDirector/backends/{id}/halt

Halt all Real Servers linked to this Backend

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

Path parameters
id string Required

The id of the backend.

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

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

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'PUT',
    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.put("https://appliance.example.com/api/v1/ipvsDirector/backends/{id}/halt", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/backends/{id}/halt', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "Halted all Real Servers in Backend",
  "data": []
}

Bring a Layer 4 backend online

PUT /ipvsDirector/backends/{id}/online

Online all Real Servers associated to this Backend

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

Path parameters
id string Required

The id of the backend.

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

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

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'PUT',
    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.put("https://appliance.example.com/api/v1/ipvsDirector/backends/{id}/online", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/backends/{id}/online', {
  method: 'PUT',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

const data = await response.json();
Response
{
  "status": "success",
  "message": "Enabled all real servers in the backend",
  "data": []
}

List the real servers of a Layer 4 backend

GET /ipvsDirector/backends/{id}/rips

Get Real Servers linked to a Backend by Id

Path parameters
id string Required

The id of the backend.

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

$url = 'https://appliance.example.com/api/v1/ipvsDirector/backends/{id}/rips';
$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/backends/{id}/rips", headers=headers)
response.raise_for_status()
print(response.json())
JavaScript
const response = await fetch('https://appliance.example.com/api/v1/ipvsDirector/backends/{id}/rips', {
  method: 'GET',
  headers: {
    Authorization: `Bearer ${token}`,
  },
});

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