curl --request GET \
--url https://api.example.com/api/v1/eligibility/device-candidate-ids/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/v1/eligibility/device-candidate-ids/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/v1/eligibility/device-candidate-ids/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/eligibility/device-candidate-ids/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/eligibility/device-candidate-ids/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/eligibility/device-candidate-ids/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/eligibility/device-candidate-ids/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}List device candidate IDs
Return device IDs for the same filters as the device-candidates endpoint.
Accepts the same query parameters as device-candidates and returns an
unpaginated array of matching device IDs, capped by LIST_ALL_MAX_RESULTS.
Computing the eligibility map is skipped entirely unless an eligible
filter is supplied.
curl --request GET \
--url https://api.example.com/api/v1/eligibility/device-candidate-ids/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.example.com/api/v1/eligibility/device-candidate-ids/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.example.com/api/v1/eligibility/device-candidate-ids/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/api/v1/eligibility/device-candidate-ids/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/eligibility/device-candidate-ids/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/api/v1/eligibility/device-candidate-ids/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/eligibility/device-candidate-ids/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body[
"3c90c3cc-0d44-4b50-8888-8dd25736052a"
]{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}Authorizations
The access token received from the authorization server in the OAuth 2.0 flow.
Query Parameters
Multiple values may be separated by commas.
Evaluate Quarantine eligibility for a cordon-only run, which removes the customer-ready trait without adopting the node or touching its instance. Widens readiness to an in-use or available node with an active instance. Ignored by workflows that do not explicitly support this readiness path.
Multiple values may be separated by commas.
Multiple values may be separated by commas.
cpu_baremetal, cpu_hypervisor, gpu_compute, switch Multiple values may be separated by commas.
Multiple values may be separated by commas.
Filter by eligibility. true=eligible only, false=ineligible only. Omit to return all.
Evaluate Quarantine eligibility for in-place rebuild of an already-adopted node. Widens readiness to an active node with an instance, without the in-use requirement force_reclaim carries. Ignored by workflows that do not explicitly support this readiness path.
Evaluate Quarantine eligibility for destructive force reclaim. Ignored by workflows that do not explicitly support this readiness path.
Multiple values may be separated by commas.
critical, degraded, healthy, unknown Multiple values may be separated by commas.
active, decommissioned, decommissioning, failed, inventory, offline, planned, returned, rma, staged, unknown Multiple values may be separated by commas.
active, adopt failed, adopting, available, clean failed, clean hold, clean wait, cleaning, deleted, deleting, deploy complete, deploy failed, deploy hold, deploying, enroll, error, inspect failed, inspect wait, inspecting, manageable, rebuild, rescue, rescue failed, rescue wait, rescuing, service, service failed, service hold, service wait, servicing, unknown, unrescue failed, unrescuing, verifying, wait call-back Multiple values may be separated by commas.
Multiple values may be separated by commas.
Multiple values may be separated by commas.
available, delegated, drained, failed, in_use, pending_handover, quarantine, unknown, validation Multiple values may be separated by commas.
Multiple values may be separated by commas.
Site to scope candidate devices to.
SLURM node states. A device matches when its own state list contains any of these. Multiple values may be separated by commas.
ALLOCATED, BLOCKED, CLOUD, COMPLETING, DOWN, DRAIN, DYNAMIC_FUTURE, DYNAMIC_NORM, ERROR, FAIL, FUTURE, IDLE, INVALID_REG, MAINTENANCE, MIXED, NOT_RESPONDING, PLANNED, POWERED_DOWN, POWERING_DOWN, POWERING_UP, POWER_DOWN, POWER_DRAIN, POWER_UP, REBOOT_CANCELED, REBOOT_ISSUED, REBOOT_REQUESTED, RESERVED, RESUME, UNDRAIN, UNKNOWN Multiple values may be separated by commas.
Multiple values may be separated by commas.
Workflow to evaluate eligibility against.