---
title: "Update Expected Rack"
method: PATCH
path: "/v2/org/{org}/nico/expected-rack/{id}"
tags: ["Expected Rack"]
---

# Update Expected Rack

`PATCH /v2/org/{org}/nico/expected-rack/{id}`

Update an existing Expected Rack identified by its `id`.

Org must have an Infrastructure Provider entity. User must have authorization role with `PROVIDER_ADMIN` suffix.

Infrastructure Provider must own the Expected Rack.

Alternatively, Tenant Admins with `TargetedInstanceCreation` capability can also update Expected Racks if they have an account with the Site's Infrastructure Provider.

`rackId` is immutable: an update that changes it is rejected with `400` before any database mutation.

## Request body

- ExpectedRackUpdateRequest — Request data to update an existing Expected Rack. For single updates (PATCH /expected-rack/{id}), the `id` field is optional in the body and will be ignored if provided (the `id` from the URL path is used). The `rackId` field is immutable on update — omit it or provide the existing value. Chassis identity and physical location information are conveyed via well-known label keys in `labels`: - `chassis.manufacturer`, `chassis.serial-number`, `chassis.model` - `location.region`, `location.datacenter`, `location.room`, `location.position`
  - `id` string, uuid, nullable — Unique identifier (UUID) of the Expected Rack to update. Optional for single Expected Rack update (must be empty or match the id from the URL path).
  - `rackId` string, nullable — Operator-supplied rack identifier. Immutable on update: omit this field, send `null`, or provide the existing value as a compatibility no-op. A changed value is rejected because Core and Flow use rackId as the identity key for expected racks.
  - `rackProfileId` string, nullable — Optional new Rack Profile identifier. If provided, must be non-empty.
  - `name` string, nullable — Human-readable name of the Expected Rack
  - `description` string, nullable — Human-readable description of the Expected Rack
  - `labels` Labels

## Response `200`

OK

- ExpectedRack — An Expected Rack represents a rack that is expected to be discovered at a Site. The `rackId` is an operator-supplied string identifier (not a UUID) that uniquely identifies the rack within the Site. Each Expected Rack references a Rack Profile that describes the rack's expected layout and capabilities. Chassis identity and physical location information are conveyed via well-known label keys in `labels`: - `chassis.manufacturer`, `chassis.serial-number`, `chassis.model` - `location.region`, `location.datacenter`, `location.room`, `location.position`
  - `id` string, uuid — Unique identifier (UUID) for the Expected Rack
  - `rackId` string — Operator-supplied identifier for the rack (string, not UUID). Unique within a Site.
  - `siteId` string, uuid — ID of the Site the Expected Rack belongs to
  - `rackProfileId` string — Identifier of the Rack Profile this rack conforms to
  - `name` string — Human-readable name of the Expected Rack
  - `description` string — Human-readable description of the Expected Rack
  - `labels` Labels
  - `created` string, date-time — ISO 8601 datetime when the Expected Rack was created
  - `updated` string, date-time — ISO 8601 datetime when the Expected Rack was last updated

## Other responses

- `400` — Error response when request data cannot be validated
- `403` — Error response when user is not authorized to call an endpoint or retrieve/modify objects
- `404` — Error response when requested object is not found

## Changes

- **2026-08-04** `6d8fbce1b882` — 1 info
  - request property `rackId` deprecated

[Change history](https://skmtc.dev/nvidia/apis/nvidia-infra-controller-rest-api/changes/v2/org/:org/nico/expected-rack/:id/patch.md)

---

[API](https://skmtc.dev/nvidia/apis/nvidia-infra-controller-rest-api.md) · [All operations](https://skmtc.dev/nvidia/apis/nvidia-infra-controller-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/nvidia/nvidia-infra-controller-rest-api/revisions/2096eb1db2c1/schema)
