curl --request PUT \
--url https://api.example.com/api/v1/devices/{id}/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"netbox_link": "<string>",
"name": "<string>",
"position": "<string>",
"device_type": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rack": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"annotations": {},
"tags": [
"<string>"
],
"serial_number": "<string>",
"infrastructure_ref": "<string>",
"placement_traits": [
"<string>"
],
"slurm_states": [],
"slurm_state_updated_at": "2023-11-07T05:31:56Z",
"slurm_state_reason": "<string>",
"operational_failure_reason": "<string>",
"operational_failure_details": "<string>",
"ironic_maintenance": true,
"ironic_maintenance_reason": "<string>",
"ironic_fault": "<string>",
"ironic_last_error": "<string>",
"triage_ticket_url": "<string>",
"parent_ticket_url": "<string>",
"netbox_id": 1073741823,
"netbox_source_updated_at": "2023-11-07T05:31:56Z",
"interfaces": [
{
"name": "<string>",
"type": "<string>",
"type_display": "<string>",
"ip_addresses": [
"<string>"
],
"mac_address": "<string>",
"ib_device_guid": "<string>"
}
],
"platform_class": "<string>",
"entered_service_at": "2023-11-07T05:31:56Z",
"in_triage": true,
"chad_ignore": true
}
'import requests
url = "https://api.example.com/api/v1/devices/{id}/"
payload = {
"netbox_link": "<string>",
"name": "<string>",
"position": "<string>",
"device_type": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rack": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"annotations": {},
"tags": ["<string>"],
"serial_number": "<string>",
"infrastructure_ref": "<string>",
"placement_traits": ["<string>"],
"slurm_states": [],
"slurm_state_updated_at": "2023-11-07T05:31:56Z",
"slurm_state_reason": "<string>",
"operational_failure_reason": "<string>",
"operational_failure_details": "<string>",
"ironic_maintenance": True,
"ironic_maintenance_reason": "<string>",
"ironic_fault": "<string>",
"ironic_last_error": "<string>",
"triage_ticket_url": "<string>",
"parent_ticket_url": "<string>",
"netbox_id": 1073741823,
"netbox_source_updated_at": "2023-11-07T05:31:56Z",
"interfaces": [
{
"name": "<string>",
"type": "<string>",
"type_display": "<string>",
"ip_addresses": ["<string>"],
"mac_address": "<string>",
"ib_device_guid": "<string>"
}
],
"platform_class": "<string>",
"entered_service_at": "2023-11-07T05:31:56Z",
"in_triage": True,
"chad_ignore": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
netbox_link: '<string>',
name: '<string>',
position: '<string>',
device_type: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
role: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
rack: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
annotations: {},
tags: ['<string>'],
serial_number: '<string>',
infrastructure_ref: '<string>',
placement_traits: ['<string>'],
slurm_states: [],
slurm_state_updated_at: '2023-11-07T05:31:56Z',
slurm_state_reason: '<string>',
operational_failure_reason: '<string>',
operational_failure_details: '<string>',
ironic_maintenance: true,
ironic_maintenance_reason: '<string>',
ironic_fault: '<string>',
ironic_last_error: '<string>',
triage_ticket_url: '<string>',
parent_ticket_url: '<string>',
netbox_id: 1073741823,
netbox_source_updated_at: '2023-11-07T05:31:56Z',
interfaces: [
{
name: '<string>',
type: '<string>',
type_display: '<string>',
ip_addresses: ['<string>'],
mac_address: '<string>',
ib_device_guid: '<string>'
}
],
platform_class: '<string>',
entered_service_at: '2023-11-07T05:31:56Z',
in_triage: true,
chad_ignore: true
})
};
fetch('https://api.example.com/api/v1/devices/{id}/', 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/devices/{id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'netbox_link' => '<string>',
'name' => '<string>',
'position' => '<string>',
'device_type' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'role' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'rack' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'annotations' => [
],
'tags' => [
'<string>'
],
'serial_number' => '<string>',
'infrastructure_ref' => '<string>',
'placement_traits' => [
'<string>'
],
'slurm_states' => [
],
'slurm_state_updated_at' => '2023-11-07T05:31:56Z',
'slurm_state_reason' => '<string>',
'operational_failure_reason' => '<string>',
'operational_failure_details' => '<string>',
'ironic_maintenance' => true,
'ironic_maintenance_reason' => '<string>',
'ironic_fault' => '<string>',
'ironic_last_error' => '<string>',
'triage_ticket_url' => '<string>',
'parent_ticket_url' => '<string>',
'netbox_id' => 1073741823,
'netbox_source_updated_at' => '2023-11-07T05:31:56Z',
'interfaces' => [
[
'name' => '<string>',
'type' => '<string>',
'type_display' => '<string>',
'ip_addresses' => [
'<string>'
],
'mac_address' => '<string>',
'ib_device_guid' => '<string>'
]
],
'platform_class' => '<string>',
'entered_service_at' => '2023-11-07T05:31:56Z',
'in_triage' => true,
'chad_ignore' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/devices/{id}/"
payload := strings.NewReader("{\n \"netbox_link\": \"<string>\",\n \"name\": \"<string>\",\n \"position\": \"<string>\",\n \"device_type\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"role\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"rack\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"annotations\": {},\n \"tags\": [\n \"<string>\"\n ],\n \"serial_number\": \"<string>\",\n \"infrastructure_ref\": \"<string>\",\n \"placement_traits\": [\n \"<string>\"\n ],\n \"slurm_states\": [],\n \"slurm_state_updated_at\": \"2023-11-07T05:31:56Z\",\n \"slurm_state_reason\": \"<string>\",\n \"operational_failure_reason\": \"<string>\",\n \"operational_failure_details\": \"<string>\",\n \"ironic_maintenance\": true,\n \"ironic_maintenance_reason\": \"<string>\",\n \"ironic_fault\": \"<string>\",\n \"ironic_last_error\": \"<string>\",\n \"triage_ticket_url\": \"<string>\",\n \"parent_ticket_url\": \"<string>\",\n \"netbox_id\": 1073741823,\n \"netbox_source_updated_at\": \"2023-11-07T05:31:56Z\",\n \"interfaces\": [\n {\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"type_display\": \"<string>\",\n \"ip_addresses\": [\n \"<string>\"\n ],\n \"mac_address\": \"<string>\",\n \"ib_device_guid\": \"<string>\"\n }\n ],\n \"platform_class\": \"<string>\",\n \"entered_service_at\": \"2023-11-07T05:31:56Z\",\n \"in_triage\": true,\n \"chad_ignore\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.example.com/api/v1/devices/{id}/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"netbox_link\": \"<string>\",\n \"name\": \"<string>\",\n \"position\": \"<string>\",\n \"device_type\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"role\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"rack\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"annotations\": {},\n \"tags\": [\n \"<string>\"\n ],\n \"serial_number\": \"<string>\",\n \"infrastructure_ref\": \"<string>\",\n \"placement_traits\": [\n \"<string>\"\n ],\n \"slurm_states\": [],\n \"slurm_state_updated_at\": \"2023-11-07T05:31:56Z\",\n \"slurm_state_reason\": \"<string>\",\n \"operational_failure_reason\": \"<string>\",\n \"operational_failure_details\": \"<string>\",\n \"ironic_maintenance\": true,\n \"ironic_maintenance_reason\": \"<string>\",\n \"ironic_fault\": \"<string>\",\n \"ironic_last_error\": \"<string>\",\n \"triage_ticket_url\": \"<string>\",\n \"parent_ticket_url\": \"<string>\",\n \"netbox_id\": 1073741823,\n \"netbox_source_updated_at\": \"2023-11-07T05:31:56Z\",\n \"interfaces\": [\n {\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"type_display\": \"<string>\",\n \"ip_addresses\": [\n \"<string>\"\n ],\n \"mac_address\": \"<string>\",\n \"ib_device_guid\": \"<string>\"\n }\n ],\n \"platform_class\": \"<string>\",\n \"entered_service_at\": \"2023-11-07T05:31:56Z\",\n \"in_triage\": true,\n \"chad_ignore\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/devices/{id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"netbox_link\": \"<string>\",\n \"name\": \"<string>\",\n \"position\": \"<string>\",\n \"device_type\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"role\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"rack\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"annotations\": {},\n \"tags\": [\n \"<string>\"\n ],\n \"serial_number\": \"<string>\",\n \"infrastructure_ref\": \"<string>\",\n \"placement_traits\": [\n \"<string>\"\n ],\n \"slurm_states\": [],\n \"slurm_state_updated_at\": \"2023-11-07T05:31:56Z\",\n \"slurm_state_reason\": \"<string>\",\n \"operational_failure_reason\": \"<string>\",\n \"operational_failure_details\": \"<string>\",\n \"ironic_maintenance\": true,\n \"ironic_maintenance_reason\": \"<string>\",\n \"ironic_fault\": \"<string>\",\n \"ironic_last_error\": \"<string>\",\n \"triage_ticket_url\": \"<string>\",\n \"parent_ticket_url\": \"<string>\",\n \"netbox_id\": 1073741823,\n \"netbox_source_updated_at\": \"2023-11-07T05:31:56Z\",\n \"interfaces\": [\n {\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"type_display\": \"<string>\",\n \"ip_addresses\": [\n \"<string>\"\n ],\n \"mac_address\": \"<string>\",\n \"ib_device_guid\": \"<string>\"\n }\n ],\n \"platform_class\": \"<string>\",\n \"entered_service_at\": \"2023-11-07T05:31:56Z\",\n \"in_triage\": true,\n \"chad_ignore\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"nvswitch_rack_slot": "ST0",
"nvswitch_switch_role": "",
"nvswitch_nvos_hostname": "<string>",
"enrollment_validated_ref": "<string>",
"current_instance_uuid": "<string>",
"device_type_kind": "<string>",
"device_type_vendor": "<string>",
"device_type_model": "<string>",
"device_type_resource_class": "<string>",
"role_name": "<string>",
"role_slug": "<string>",
"device_class": "gpu_compute",
"rack_name": "<string>",
"rack_serial_number": "",
"location_name": "<string>",
"site_name": "<string>",
"site_slug": "<string>",
"organisation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organisation_slug": "<string>",
"links": {
"self": "<string>",
"collection": "<string>",
"device_type": "<string>",
"role": "<string>",
"rack": "<string>",
"location": "<string>",
"site": "<string>",
"jobs": "<string>",
"job_device_statuses": "<string>",
"netbox": "<string>"
},
"customer_ready": true,
"topology": {},
"topology_group_types": {},
"short_name": "<string>",
"current_tenant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"current_tenant_name": "<string>",
"current_allocation_annotations": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"nvswitch_ztp_completed_at": "2023-11-07T05:31:56Z",
"nvswitch_ztp_evidence_source": "<string>",
"position": "<string>",
"enrollment_proof_source": "enrolled",
"entered_triage_at": "2023-11-07T05:31:56Z",
"inventory_only": true,
"device_type": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rack": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"location": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"site": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"annotations": {},
"tags": [
"<string>"
],
"serial_number": "<string>",
"infrastructure_ref": "<string>",
"ironic_provision_state": "enroll",
"placement_traits": [
"<string>"
],
"slurm_states": [
"ALLOCATED"
],
"slurm_state_updated_at": "2023-11-07T05:31:56Z",
"slurm_state_reason": "<string>",
"operational_failure_reason": "<string>",
"operational_failure_details": "<string>",
"ironic_maintenance": true,
"ironic_maintenance_reason": "<string>",
"ironic_fault": "<string>",
"ironic_last_error": "<string>",
"triage_ticket_url": "<string>",
"parent_ticket_url": "<string>",
"netbox_id": 1073741823,
"interfaces": [
{
"name": "<string>",
"type": "<string>",
"type_display": "<string>",
"ip_addresses": [
"<string>"
],
"mac_address": "<string>",
"ib_device_guid": "<string>"
}
],
"inventory_status": "planned",
"operational_status": "unknown",
"health_status": "unknown",
"platform_class": "<string>",
"entered_service_at": "2023-11-07T05:31:56Z",
"in_triage": true,
"chad_ignore": true
}{
"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>"
]
}
]
}{
"detail": "<string>",
"code": "error",
"field_errors": [
{
"field": "<string>",
"messages": [
"<string>"
]
}
]
}Update device
List, retrieve, create and update devices for a site.
curl --request PUT \
--url https://api.example.com/api/v1/devices/{id}/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"netbox_link": "<string>",
"name": "<string>",
"position": "<string>",
"device_type": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rack": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"annotations": {},
"tags": [
"<string>"
],
"serial_number": "<string>",
"infrastructure_ref": "<string>",
"placement_traits": [
"<string>"
],
"slurm_states": [],
"slurm_state_updated_at": "2023-11-07T05:31:56Z",
"slurm_state_reason": "<string>",
"operational_failure_reason": "<string>",
"operational_failure_details": "<string>",
"ironic_maintenance": true,
"ironic_maintenance_reason": "<string>",
"ironic_fault": "<string>",
"ironic_last_error": "<string>",
"triage_ticket_url": "<string>",
"parent_ticket_url": "<string>",
"netbox_id": 1073741823,
"netbox_source_updated_at": "2023-11-07T05:31:56Z",
"interfaces": [
{
"name": "<string>",
"type": "<string>",
"type_display": "<string>",
"ip_addresses": [
"<string>"
],
"mac_address": "<string>",
"ib_device_guid": "<string>"
}
],
"platform_class": "<string>",
"entered_service_at": "2023-11-07T05:31:56Z",
"in_triage": true,
"chad_ignore": true
}
'import requests
url = "https://api.example.com/api/v1/devices/{id}/"
payload = {
"netbox_link": "<string>",
"name": "<string>",
"position": "<string>",
"device_type": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rack": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"annotations": {},
"tags": ["<string>"],
"serial_number": "<string>",
"infrastructure_ref": "<string>",
"placement_traits": ["<string>"],
"slurm_states": [],
"slurm_state_updated_at": "2023-11-07T05:31:56Z",
"slurm_state_reason": "<string>",
"operational_failure_reason": "<string>",
"operational_failure_details": "<string>",
"ironic_maintenance": True,
"ironic_maintenance_reason": "<string>",
"ironic_fault": "<string>",
"ironic_last_error": "<string>",
"triage_ticket_url": "<string>",
"parent_ticket_url": "<string>",
"netbox_id": 1073741823,
"netbox_source_updated_at": "2023-11-07T05:31:56Z",
"interfaces": [
{
"name": "<string>",
"type": "<string>",
"type_display": "<string>",
"ip_addresses": ["<string>"],
"mac_address": "<string>",
"ib_device_guid": "<string>"
}
],
"platform_class": "<string>",
"entered_service_at": "2023-11-07T05:31:56Z",
"in_triage": True,
"chad_ignore": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
netbox_link: '<string>',
name: '<string>',
position: '<string>',
device_type: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
role: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
rack: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
annotations: {},
tags: ['<string>'],
serial_number: '<string>',
infrastructure_ref: '<string>',
placement_traits: ['<string>'],
slurm_states: [],
slurm_state_updated_at: '2023-11-07T05:31:56Z',
slurm_state_reason: '<string>',
operational_failure_reason: '<string>',
operational_failure_details: '<string>',
ironic_maintenance: true,
ironic_maintenance_reason: '<string>',
ironic_fault: '<string>',
ironic_last_error: '<string>',
triage_ticket_url: '<string>',
parent_ticket_url: '<string>',
netbox_id: 1073741823,
netbox_source_updated_at: '2023-11-07T05:31:56Z',
interfaces: [
{
name: '<string>',
type: '<string>',
type_display: '<string>',
ip_addresses: ['<string>'],
mac_address: '<string>',
ib_device_guid: '<string>'
}
],
platform_class: '<string>',
entered_service_at: '2023-11-07T05:31:56Z',
in_triage: true,
chad_ignore: true
})
};
fetch('https://api.example.com/api/v1/devices/{id}/', 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/devices/{id}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'netbox_link' => '<string>',
'name' => '<string>',
'position' => '<string>',
'device_type' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'role' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'rack' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'annotations' => [
],
'tags' => [
'<string>'
],
'serial_number' => '<string>',
'infrastructure_ref' => '<string>',
'placement_traits' => [
'<string>'
],
'slurm_states' => [
],
'slurm_state_updated_at' => '2023-11-07T05:31:56Z',
'slurm_state_reason' => '<string>',
'operational_failure_reason' => '<string>',
'operational_failure_details' => '<string>',
'ironic_maintenance' => true,
'ironic_maintenance_reason' => '<string>',
'ironic_fault' => '<string>',
'ironic_last_error' => '<string>',
'triage_ticket_url' => '<string>',
'parent_ticket_url' => '<string>',
'netbox_id' => 1073741823,
'netbox_source_updated_at' => '2023-11-07T05:31:56Z',
'interfaces' => [
[
'name' => '<string>',
'type' => '<string>',
'type_display' => '<string>',
'ip_addresses' => [
'<string>'
],
'mac_address' => '<string>',
'ib_device_guid' => '<string>'
]
],
'platform_class' => '<string>',
'entered_service_at' => '2023-11-07T05:31:56Z',
'in_triage' => true,
'chad_ignore' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/api/v1/devices/{id}/"
payload := strings.NewReader("{\n \"netbox_link\": \"<string>\",\n \"name\": \"<string>\",\n \"position\": \"<string>\",\n \"device_type\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"role\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"rack\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"annotations\": {},\n \"tags\": [\n \"<string>\"\n ],\n \"serial_number\": \"<string>\",\n \"infrastructure_ref\": \"<string>\",\n \"placement_traits\": [\n \"<string>\"\n ],\n \"slurm_states\": [],\n \"slurm_state_updated_at\": \"2023-11-07T05:31:56Z\",\n \"slurm_state_reason\": \"<string>\",\n \"operational_failure_reason\": \"<string>\",\n \"operational_failure_details\": \"<string>\",\n \"ironic_maintenance\": true,\n \"ironic_maintenance_reason\": \"<string>\",\n \"ironic_fault\": \"<string>\",\n \"ironic_last_error\": \"<string>\",\n \"triage_ticket_url\": \"<string>\",\n \"parent_ticket_url\": \"<string>\",\n \"netbox_id\": 1073741823,\n \"netbox_source_updated_at\": \"2023-11-07T05:31:56Z\",\n \"interfaces\": [\n {\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"type_display\": \"<string>\",\n \"ip_addresses\": [\n \"<string>\"\n ],\n \"mac_address\": \"<string>\",\n \"ib_device_guid\": \"<string>\"\n }\n ],\n \"platform_class\": \"<string>\",\n \"entered_service_at\": \"2023-11-07T05:31:56Z\",\n \"in_triage\": true,\n \"chad_ignore\": true\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.put("https://api.example.com/api/v1/devices/{id}/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"netbox_link\": \"<string>\",\n \"name\": \"<string>\",\n \"position\": \"<string>\",\n \"device_type\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"role\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"rack\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"annotations\": {},\n \"tags\": [\n \"<string>\"\n ],\n \"serial_number\": \"<string>\",\n \"infrastructure_ref\": \"<string>\",\n \"placement_traits\": [\n \"<string>\"\n ],\n \"slurm_states\": [],\n \"slurm_state_updated_at\": \"2023-11-07T05:31:56Z\",\n \"slurm_state_reason\": \"<string>\",\n \"operational_failure_reason\": \"<string>\",\n \"operational_failure_details\": \"<string>\",\n \"ironic_maintenance\": true,\n \"ironic_maintenance_reason\": \"<string>\",\n \"ironic_fault\": \"<string>\",\n \"ironic_last_error\": \"<string>\",\n \"triage_ticket_url\": \"<string>\",\n \"parent_ticket_url\": \"<string>\",\n \"netbox_id\": 1073741823,\n \"netbox_source_updated_at\": \"2023-11-07T05:31:56Z\",\n \"interfaces\": [\n {\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"type_display\": \"<string>\",\n \"ip_addresses\": [\n \"<string>\"\n ],\n \"mac_address\": \"<string>\",\n \"ib_device_guid\": \"<string>\"\n }\n ],\n \"platform_class\": \"<string>\",\n \"entered_service_at\": \"2023-11-07T05:31:56Z\",\n \"in_triage\": true,\n \"chad_ignore\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/devices/{id}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"netbox_link\": \"<string>\",\n \"name\": \"<string>\",\n \"position\": \"<string>\",\n \"device_type\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"role\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"rack\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"annotations\": {},\n \"tags\": [\n \"<string>\"\n ],\n \"serial_number\": \"<string>\",\n \"infrastructure_ref\": \"<string>\",\n \"placement_traits\": [\n \"<string>\"\n ],\n \"slurm_states\": [],\n \"slurm_state_updated_at\": \"2023-11-07T05:31:56Z\",\n \"slurm_state_reason\": \"<string>\",\n \"operational_failure_reason\": \"<string>\",\n \"operational_failure_details\": \"<string>\",\n \"ironic_maintenance\": true,\n \"ironic_maintenance_reason\": \"<string>\",\n \"ironic_fault\": \"<string>\",\n \"ironic_last_error\": \"<string>\",\n \"triage_ticket_url\": \"<string>\",\n \"parent_ticket_url\": \"<string>\",\n \"netbox_id\": 1073741823,\n \"netbox_source_updated_at\": \"2023-11-07T05:31:56Z\",\n \"interfaces\": [\n {\n \"name\": \"<string>\",\n \"type\": \"<string>\",\n \"type_display\": \"<string>\",\n \"ip_addresses\": [\n \"<string>\"\n ],\n \"mac_address\": \"<string>\",\n \"ib_device_guid\": \"<string>\"\n }\n ],\n \"platform_class\": \"<string>\",\n \"entered_service_at\": \"2023-11-07T05:31:56Z\",\n \"in_triage\": true,\n \"chad_ignore\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"nvswitch_rack_slot": "ST0",
"nvswitch_switch_role": "",
"nvswitch_nvos_hostname": "<string>",
"enrollment_validated_ref": "<string>",
"current_instance_uuid": "<string>",
"device_type_kind": "<string>",
"device_type_vendor": "<string>",
"device_type_model": "<string>",
"device_type_resource_class": "<string>",
"role_name": "<string>",
"role_slug": "<string>",
"device_class": "gpu_compute",
"rack_name": "<string>",
"rack_serial_number": "",
"location_name": "<string>",
"site_name": "<string>",
"site_slug": "<string>",
"organisation_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organisation_slug": "<string>",
"links": {
"self": "<string>",
"collection": "<string>",
"device_type": "<string>",
"role": "<string>",
"rack": "<string>",
"location": "<string>",
"site": "<string>",
"jobs": "<string>",
"job_device_statuses": "<string>",
"netbox": "<string>"
},
"customer_ready": true,
"topology": {},
"topology_group_types": {},
"short_name": "<string>",
"current_tenant_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"current_tenant_name": "<string>",
"current_allocation_annotations": {},
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"name": "<string>",
"nvswitch_ztp_completed_at": "2023-11-07T05:31:56Z",
"nvswitch_ztp_evidence_source": "<string>",
"position": "<string>",
"enrollment_proof_source": "enrolled",
"entered_triage_at": "2023-11-07T05:31:56Z",
"inventory_only": true,
"device_type": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"role": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"rack": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"location": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"site": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"annotations": {},
"tags": [
"<string>"
],
"serial_number": "<string>",
"infrastructure_ref": "<string>",
"ironic_provision_state": "enroll",
"placement_traits": [
"<string>"
],
"slurm_states": [
"ALLOCATED"
],
"slurm_state_updated_at": "2023-11-07T05:31:56Z",
"slurm_state_reason": "<string>",
"operational_failure_reason": "<string>",
"operational_failure_details": "<string>",
"ironic_maintenance": true,
"ironic_maintenance_reason": "<string>",
"ironic_fault": "<string>",
"ironic_last_error": "<string>",
"triage_ticket_url": "<string>",
"parent_ticket_url": "<string>",
"netbox_id": 1073741823,
"interfaces": [
{
"name": "<string>",
"type": "<string>",
"type_display": "<string>",
"ip_addresses": [
"<string>"
],
"mac_address": "<string>",
"ib_device_guid": "<string>"
}
],
"inventory_status": "planned",
"operational_status": "unknown",
"health_status": "unknown",
"platform_class": "<string>",
"entered_service_at": "2023-11-07T05:31:56Z",
"in_triage": true,
"chad_ignore": true
}{
"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>"
]
}
]
}{
"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.
Path Parameters
A UUID string identifying this device.
Body
Serializer for Device model.
200255^[A-Za-z0-9._-]+$Rack U position. Null for an unpositioned device, one NetBox has in its rack without a U.
^-?\d{0,3}(?:\.\d{0,1})?$Key-value annotations. Keys must start with a lowercase letter and contain only lowercase alphanumeric segments joined by hyphens or underscores (e.g. 'org-id', 'gpu_ready').
Show child attributes
Show child attributes
Tags for the resource. Must start with a lowercase letter and contain only lowercase alphanumeric segments joined by hyphens or underscores (e.g. 'gpu-ready', 'needs_review'). Stored deduplicated and sorted.
enroll- enrollverifying- verifyingmanageable- manageableavailable- availableactive- activewait call-back- wait call-backdeploying- deployingdeploy failed- deploy faileddeploy complete- deploy completedeploy hold- deploy holddeleting- deletingdeleted- deletedcleaning- cleaningclean wait- clean waitclean failed- clean failedclean hold- clean holderror- errorrebuild- rebuildinspecting- inspectinginspect failed- inspect failedinspect wait- inspect waitadopting- adoptingadopt failed- adopt failedrescue- rescuerescue failed- rescue failedrescue wait- rescue waitrescuing- rescuingunrescue failed- unrescue failedunrescuing- unrescuingservice- serviceservicing- servicingservice wait- service waitservice failed- service failedservice hold- service holdunknown- unknown
enroll, verifying, manageable, available, active, wait call-back, deploying, deploy failed, deploy complete, deploy hold, deleting, deleted, cleaning, clean wait, clean failed, clean hold, error, rebuild, inspecting, inspect failed, inspect wait, adopting, adopt failed, rescue, rescue failed, rescue wait, rescuing, unrescue failed, unrescuing, service, servicing, service wait, service failed, service hold, unknown ALLOCATED- ALLOCATEDDOWN- DOWNERROR- ERRORFUTURE- FUTUREIDLE- IDLEMIXED- MIXEDUNKNOWN- UNKNOWNBLOCKED- BLOCKEDCLOUD- CLOUDCOMPLETING- COMPLETINGDRAIN- DRAINDYNAMIC_FUTURE- DYNAMIC_FUTUREDYNAMIC_NORM- DYNAMIC_NORMFAIL- FAILINVALID_REG- INVALID_REGMAINTENANCE- MAINTENANCENOT_RESPONDING- NOT_RESPONDINGPLANNED- PLANNEDPOWERED_DOWN- POWERED_DOWNPOWERING_DOWN- POWERING_DOWNPOWERING_UP- POWERING_UPPOWER_DOWN- POWER_DOWNPOWER_DRAIN- POWER_DRAINPOWER_UP- POWER_UPREBOOT_CANCELED- REBOOT_CANCELEDREBOOT_ISSUED- REBOOT_ISSUEDREBOOT_REQUESTED- REBOOT_REQUESTEDRESERVED- RESERVEDRESUME- RESUMEUNDRAIN- UNDRAIN
ALLOCATED, DOWN, ERROR, FUTURE, IDLE, MIXED, UNKNOWN, BLOCKED, CLOUD, COMPLETING, DRAIN, DYNAMIC_FUTURE, DYNAMIC_NORM, FAIL, INVALID_REG, MAINTENANCE, NOT_RESPONDING, PLANNED, POWERED_DOWN, POWERING_DOWN, POWERING_UP, POWER_DOWN, POWER_DRAIN, POWER_UP, REBOOT_CANCELED, REBOOT_ISSUED, REBOOT_REQUESTED, RESERVED, RESUME, UNDRAIN 110 <= x <= 2147483647NetBox device last_updated timestamp acknowledged by the lifecycle sync. This is NetBox source time, not a Fleet Manager wall-clock timestamp. Only the exact netbox-agent OAuth client may submit this field.
Show child attributes
Show child attributes
planned- Plannedstaged- Stagedactive- Activefailed- Failedoffline- Offlinerma- RMAreturned- Returneddecommissioning- Decommissioningdecommissioned- Decommissionedinventory- Inventoryunknown- Unknown
planned, staged, active, failed, offline, rma, returned, decommissioning, decommissioned, inventory, unknown unknown- Unknownquarantine- Quarantinevalidation- Validationavailable- Availablein_use- In Usedelegated- Delegatedpending_handover- Pending Handoverdrained- Drainedfailed- Failed
unknown, quarantine, validation, available, in_use, delegated, pending_handover, drained, failed unknown- Unknownhealthy- Healthydegraded- Degradedcritical- Critical
unknown, healthy, degraded, critical Hardware descriptor key _, computed by the enrollment workflow from NetBox and mirrored to NetBox custom_fields.platform_class. Empty until the device first enrols.
128Response
Serializer for Device model.
ST0- ST0ST1- ST1ST2- ST2ST3- ST3ST4- ST4ST5- ST5ST6- ST6ST7- ST7ST8- ST8
ST0, ST1, ST2, ST3, ST4, ST5, ST6, ST7, ST8 - `` - Unset
lead- Leadmember- Member
, lead, member 255^[-a-zA-Z0-9_]+$gpu_compute- GPU Computecpu_hypervisor- CPU Hypervisorcpu_baremetal- CPU Baremetalswitch- Switch
gpu_compute, cpu_hypervisor, cpu_baremetal, switch Rack serial number for this device's rack. Empty string if not synced.
^[-a-zA-Z0-9_]+$^[-a-zA-Z0-9_]+$Serializer for device links.
Show child attributes
Show child attributes
Compute customer_ready based on status fields.
Return topology paths keyed by facet.
Show child attributes
Show child attributes
Return topology as {facet: {type: label}} using cached path_types/path_labels.
Enables type-aware lookup (e.g. find the "pod" label within "networking") even when the device is a member of a deeper group like "nvlink-domain". No extra queries — both path_types and path_labels are cached JSON fields on TopologyGroup.
Show child attributes
Show child attributes
Extract short device identifier from full name.
Takes the last hyphen-separated segment (e.g. "gpu1255" from "sta1-p-phy-gpu1255"). Falls back to the full name if the segment doesn't contain both letters and digits.
UNI region annotations from the device's active allocation.
Show child attributes
Show child attributes
255^[A-Za-z0-9._-]+$e.g. netbox_tag, network_api, manual
Rack U position. Null for an unpositioned device, one NetBox has in its rack without a U.
^-?\d{0,3}(?:\.\d{0,1})?$Provenance of the current enrollment identity proof.
enrolled- Enrolledlegacy- Legacyunmigrated- Unmigratednone- None
enrolled, legacy, unmigrated, none Key-value annotations. Keys must start with a lowercase letter and contain only lowercase alphanumeric segments joined by hyphens or underscores (e.g. 'org-id', 'gpu_ready').
Show child attributes
Show child attributes
Tags for the resource. Must start with a lowercase letter and contain only lowercase alphanumeric segments joined by hyphens or underscores (e.g. 'gpu-ready', 'needs_review'). Stored deduplicated and sorted.
enroll- enrollverifying- verifyingmanageable- manageableavailable- availableactive- activewait call-back- wait call-backdeploying- deployingdeploy failed- deploy faileddeploy complete- deploy completedeploy hold- deploy holddeleting- deletingdeleted- deletedcleaning- cleaningclean wait- clean waitclean failed- clean failedclean hold- clean holderror- errorrebuild- rebuildinspecting- inspectinginspect failed- inspect failedinspect wait- inspect waitadopting- adoptingadopt failed- adopt failedrescue- rescuerescue failed- rescue failedrescue wait- rescue waitrescuing- rescuingunrescue failed- unrescue failedunrescuing- unrescuingservice- serviceservicing- servicingservice wait- service waitservice failed- service failedservice hold- service holdunknown- unknown
enroll, verifying, manageable, available, active, wait call-back, deploying, deploy failed, deploy complete, deploy hold, deleting, deleted, cleaning, clean wait, clean failed, clean hold, error, rebuild, inspecting, inspect failed, inspect wait, adopting, adopt failed, rescue, rescue failed, rescue wait, rescuing, unrescue failed, unrescuing, service, servicing, service wait, service failed, service hold, unknown ALLOCATED- ALLOCATEDDOWN- DOWNERROR- ERRORFUTURE- FUTUREIDLE- IDLEMIXED- MIXEDUNKNOWN- UNKNOWNBLOCKED- BLOCKEDCLOUD- CLOUDCOMPLETING- COMPLETINGDRAIN- DRAINDYNAMIC_FUTURE- DYNAMIC_FUTUREDYNAMIC_NORM- DYNAMIC_NORMFAIL- FAILINVALID_REG- INVALID_REGMAINTENANCE- MAINTENANCENOT_RESPONDING- NOT_RESPONDINGPLANNED- PLANNEDPOWERED_DOWN- POWERED_DOWNPOWERING_DOWN- POWERING_DOWNPOWERING_UP- POWERING_UPPOWER_DOWN- POWER_DOWNPOWER_DRAIN- POWER_DRAINPOWER_UP- POWER_UPREBOOT_CANCELED- REBOOT_CANCELEDREBOOT_ISSUED- REBOOT_ISSUEDREBOOT_REQUESTED- REBOOT_REQUESTEDRESERVED- RESERVEDRESUME- RESUMEUNDRAIN- UNDRAIN
ALLOCATED, DOWN, ERROR, FUTURE, IDLE, MIXED, UNKNOWN, BLOCKED, CLOUD, COMPLETING, DRAIN, DYNAMIC_FUTURE, DYNAMIC_NORM, FAIL, INVALID_REG, MAINTENANCE, NOT_RESPONDING, PLANNED, POWERED_DOWN, POWERING_DOWN, POWERING_UP, POWER_DOWN, POWER_DRAIN, POWER_UP, REBOOT_CANCELED, REBOOT_ISSUED, REBOOT_REQUESTED, RESERVED, RESUME, UNDRAIN 110 <= x <= 2147483647Show child attributes
Show child attributes
planned- Plannedstaged- Stagedactive- Activefailed- Failedoffline- Offlinerma- RMAreturned- Returneddecommissioning- Decommissioningdecommissioned- Decommissionedinventory- Inventoryunknown- Unknown
planned, staged, active, failed, offline, rma, returned, decommissioning, decommissioned, inventory, unknown unknown- Unknownquarantine- Quarantinevalidation- Validationavailable- Availablein_use- In Usedelegated- Delegatedpending_handover- Pending Handoverdrained- Drainedfailed- Failed
unknown, quarantine, validation, available, in_use, delegated, pending_handover, drained, failed unknown- Unknownhealthy- Healthydegraded- Degradedcritical- Critical
unknown, healthy, degraded, critical Hardware descriptor key _, computed by the enrollment workflow from NetBox and mirrored to NetBox custom_fields.platform_class. Empty until the device first enrols.
128