Skip to main content
POST
Create rack

Authorizations

Authorization
string
header
required

The access token received from the authorization server in the OAuth 2.0 flow.

Body

Serializer for Rack model.

name
string
required
Maximum string length: 255
location
string<uuid>
required
annotations
object

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').

tags
string[]

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.

serial_number
string

Rack serial number, sourced from NetBox by the netbox-agent reconciler. The reconciler is the sole automated writer; this field remains writable via the API as an operator-override escape hatch for manual correction (e.g. fixing a value before the next reconciliation cycle). See docs/specs/0007-fleet-1207-rack-serial-sync.md.

Maximum string length: 50
status
enum<string>
  • reserved - Reserved
  • available - Available
  • planned - Planned
  • active - Active
  • deprecated - Deprecated
  • unknown - Unknown
Available options:
reserved,
available,
planned,
active,
deprecated,
unknown

Response

Serializer for Rack model.

id
string<uuid>
required
read-only
location_name
string
required
read-only
site_name
string
required
read-only

Serializer for rack links.

operational_status_counts
object
required

Count of the rack's devices per operational status, every status present and defaulting to zero. Scoped to the rack's FM-managed devices excluding switches, so the Racks page can read these counts without fetching the whole site's operations/racks/standup payload. That endpoint selects the same class of device but scopes by site rather than by rack, so the two differ for a device whose site and rack.location.site have drifted apart. Deliberately narrower than a Site's counts.operational_status, which includes switches.

device_count
integer
required
read-only

Number of devices this rack's hostlists name. Carried explicitly so a caller need not derive it, matching device_count on the jobs list. It is the sum of operational_status_counts for every device holding a known status value; a row left on a retired status would be counted here and in no status bucket.

triage_count
integer
required
read-only

Number of the rack's devices currently in triage. Not derivable from triage_hostlist without expanding it, and a client needs the number to show "all" rather than a count.

device_hostlist
string | null
required
read-only

Compressed hostlist of the rack's devices, over the same population as operational_status_counts. Empty string when the rack holds none. Null when the caller may not read device names — these name individual devices, so they need device:read on top of the rack:read this endpoint requires; the counts are unaffected.

triage_hostlist
string | null
required
read-only

Compressed hostlist of the rack's devices currently in triage, a subset of device_hostlist. Empty string means nothing in the rack is in triage; null means the caller may not read device names, as for device_hostlist.

created_at
string<date-time>
required
read-only
updated_at
string<date-time>
required
read-only
name
string
required
Maximum string length: 255
location
string<uuid>
required
site
string<uuid>
required
read-only
annotations
object

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').

tags
string[]

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.

serial_number
string

Rack serial number, sourced from NetBox by the netbox-agent reconciler. The reconciler is the sole automated writer; this field remains writable via the API as an operator-override escape hatch for manual correction (e.g. fixing a value before the next reconciliation cycle). See docs/specs/0007-fleet-1207-rack-serial-sync.md.

Maximum string length: 50
status
enum<string>
  • reserved - Reserved
  • available - Available
  • planned - Planned
  • active - Active
  • deprecated - Deprecated
  • unknown - Unknown
Available options:
reserved,
available,
planned,
active,
deprecated,
unknown