---
title: "Update Expected Machine"
method: PATCH
path: "/v2/org/{org}/nico/expected-machine/{expectedMachineId}"
tags: ["Expected Machine"]
---

# Update Expected Machine

`PATCH /v2/org/{org}/nico/expected-machine/{expectedMachineId}`

Update an existing Expected Machine by ID.

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

Infrastructure Provider must own the Expected Machine.

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

## Request body

- ExpectedMachineUpdateRequest — Request data to update an existing Expected Machine. Note: BMC credentials (username/password) are only accepted during creation and updates but are not returned in responses. For single updates (PATCH /expected-machine/{id}), the id field is optional in body and will be ignored if provided (the ID from the URL path is used). For batch updates (PATCH /expected-machine/batch), the id field is required to identify which Expected Machine to update.
  - `id` string, uuid, nullable — ID of the Expected Machine to update. Optional for individual Expected Machine update (ignored if provided, ID from URL path is used). Required for batch update operations.
  - `bmcMacAddress` string, nullable — The Expected Machine's BMC MAC address is immutable after creation. Omit this field, or provide another case/separator spelling of the current MAC as a compatibility no-op.
  - `defaultBmcUsername` string, nullable — Username for accessing the Expected Machine's BMC
  - `defaultBmcPassword` string, nullable — Password for accessing the Expected Machine's BMC
  - `chassisSerialNumber` string, nullable — Serial number of the Expected Machine's chassis
  - `fallbackDPUSerialNumbers` string[], nullable — Serial numbers of the Expected Machine's fallback DPUs (Data Processing Units)
  - `skuId` string, nullable — Optional ID of the SKU to associate with this Expected Machine
  - `rackId` string, nullable — Optional rack identifier for this component
  - `bmcIpAddress` string, nullable — Optional BMC IP address (IPv4 or IPv6). A non-empty address sets the value and pre-allocates a reserved IP for the BMC. An empty string clears the value. Omission or null preserves the current value.
  - `name` string, nullable — Display name for this component
  - `manufacturer` string, nullable — Manufacturer of this component
  - `model` string, nullable — Model of this component
  - `description` string, nullable — Description of this component
  - `slotId` integer, nullable — Slot ID within the rack
  - `trayIdx` integer, nullable — Tray index within the rack
  - `hostId` integer, nullable — Host ID within the tray
  - `isDpfEnabled` boolean, nullable — When true, this host is eligible for DPF-based provisioning.
  - `labels` Labels
  - `hostLifecycleProfile` HostLifecycleProfile — Per-host lifecycle settings that affect how NICo progresses a host through its state machine.
    - `disableLockdown` boolean, nullable — When true, the server is not locked down during host lifecycle management. When omitted, the existing value is preserved.

## Response `200`

OK

- ExpectedMachine — An Expected Machine represents a physical machine that is expected to be discovered at a site, with hardware identifiers and metadata. Note: BMC credentials (username/password) are only accepted during creation and updates but are not returned in responses.
  - `id` string, uuid — Unique identifier for the Expected Machine
  - `siteId` string, uuid — ID of the site the Expected Machine belongs to
  - `bmcMacAddress` string — MAC address of the Expected Machine's BMC (Baseboard Management Controller)
  - `chassisSerialNumber` string — Serial number of the Expected Machine's chassis
  - `fallbackDPUSerialNumbers` string[] — Serial numbers of the Expected Machine's fallback DPUs (Data Processing Units)
  - `skuId` string, nullable — Optional ID of the SKU associated with this Expected Machine
  - `sku` Sku — A SKU (Stock Keeping Unit) represents a unique hardware configuration discovered at a site. SKUs are automatically derived from machine hardware characteristics and used to group similar machines.
    - `id` string — Unique identifier for the SKU
    - `siteId` string, uuid — ID of the Site this SKU belongs to
    - `description` string — Human-readable SKU description
    - `schemaVersion` integer — Core SKU schema version when available
    - `deviceType` string, nullable — Optional device type identifier (e.g. "gpu", "cpu", "storage")
    - `associatedMachineIds` string[] — List of machine IDs associated with this SKU
    - `components` SkuComponents — Hardware components that make up a SKU
      - `cpus` SkuCpu[] — CPU components
        - `vendor` string — Vendor of the CPU
        - `model` string — Model of the CPU
        - `threadCount` integer — Number of threads for the CPU
        - `count` integer — Number of CPUs present
      - `gpus` SkuGpu[] — GPU components
        - `vendor` string — Vendor of the GPU
        - `model` string — Model of the GPU
        - `totalMemory` string — Total memory of the GPU (e.g. "80GB HBM3")
        - `count` integer — Number of GPUs present
      - `memory` SkuMemory[] — Memory components
        - `capacityMb` integer — Capacity in megabytes
        - `memoryType` string — Type of memory (e.g. "DDR4", "DDR5")
        - `count` integer — Number of memory modules present
      - `storage` SkuStorage[] — Storage components
        - `vendor` string — Storage vendor used for schema version 4 matching. Read-only in REST mutation requests and preserved in responses for legacy SKUs. Schema version 5 does not use this field.
        - `model` string — Informational storage model. Starting with the 2.1 release, NICo does not use this field for storage matching or validation.
        - `capacityMb` integer — Storage capacity in megabytes used for schema version 4 matching. Read-only in REST mutation requests and preserved in responses for legacy SKUs. Schema version 5 uses minSizeMiB and maxSizeMiB instead.
        - `count` integer — Number of storage devices present
        - `minSizeMiB` integer, nullable — Inclusive minimum size in MiB for each storage device. Null or omission means no lower bound. Used for SKU schema version 5 and later.
        - `maxSizeMiB` integer, nullable — Inclusive maximum size in MiB for each storage device. Null or omission means no upper bound. Used for SKU schema version 5 and later.
        - `pciPatterns` string[] — Regular expressions matched against storage sysfs PCI paths. An empty or omitted list disables PCI location matching. Used for SKU schema version 5 and later.
      - `chassis` SkuChassis — Chassis component in a SKU
        - `vendor` string — Vendor of the chassis
        - `model` string — Model of the chassis
        - `architecture` string — Architecture of the chassis
      - `ethernetDevices` SkuEthernetDevice[] — Read-only Ethernet device components reported by Core. Omit this property from REST mutation requests; null and an empty array are accepted for compatibility, while a non-empty array is rejected with HTTP 400.
        - `vendor` string — Vendor of the ethernet device
        - `model` string — Model of the ethernet device
        - `count` integer — Number of ethernet devices present
        - `isConnected` boolean — Whether the ethernet device is connected
      - `infinibandDevices` SkuInfinibandDevice[] — Infiniband device components
        - `vendor` string — Vendor of the infiniband device
        - `model` string — Model of the infiniband device
        - `count` integer — Number of infiniband devices present
        - `inactiveDevices` integer[] — Zero-based indexes of inactive devices
      - `tpm` SkuTpm[] — TPM components
        - `vendor` string — Vendor of the TPM
        - `version` string — Version of the TPM
    - `created` string, date-time — ISO 8601 datetime when the SKU was created, using the Site-reported timestamp when available
  - `machineId` string, nullable — Optional ID of the Machine associated with this Expected Machine
  - `machine` MachineSummary — Describes a subset of core attributes for a Machine
    - `id` string — Unique ID of Machine
    - `controllerMachineId` string — ID of the Machine at Site, now same as the primary ID
    - `controllerMachineType` string, nullable — Denotes architecture (x86 vs ARM) of the Machine
    - `hwSkuDeviceType` string, nullable — SKU derived device type of the machine, e.g. cpu, gpu, cache, storage, etc.
    - `vendor` string, nullable — Name of the vendor of the Machine
    - `productName` string, nullable — Product name of the Machine
    - `maintenanceMessage` string, nullable — If the Machine is in maintenance mode, this message will typically describe the reason and how long it is expected to be in maintenance
    - `status` 'Initializing' | 'Ready' | 'Reset' | 'Maintenance' | 'InUse' | 'Error' | 'Decommissioning' | 'Decommissioned' | 'Unknown' — Status values for Machine objects
  - `rackId` string, nullable — Optional rack identifier for this component
  - `bmcIpAddress` string, nullable — Optional BMC IP address (IPv4 or IPv6). When set, pre-allocates a reserved IP for the BMC.
  - `name` string, nullable — Display name for this component
  - `manufacturer` string, nullable — Manufacturer of this component
  - `model` string, nullable — Model of this component
  - `description` string, nullable — Description of this component
  - `slotId` integer, nullable — Slot ID within the rack
  - `trayIdx` integer, nullable — Tray index within the rack
  - `hostId` integer, nullable — Host ID within the tray
  - `isDpfEnabled` boolean — When true, this host is eligible for DPF-based provisioning.
  - `labels` Labels
  - `hostLifecycleProfile` HostLifecycleProfile — Per-host lifecycle settings that affect how NICo progresses a host through its state machine.
    - `disableLockdown` boolean, nullable — When true, the server is not locked down during host lifecycle management. When omitted, the existing value is preserved.
  - `created` string, date-time — ISO 8601 datetime when the Expected Machine was created
  - `updated` string, date-time — ISO 8601 datetime when the Expected Machine 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

> 90 revisions in range; 23 could not be searched.

- **2026-08-08** `69e00804e732` — 3 breaking
  - the `chassisSerialNumber` request property's maxLength was decreased to `32`
  - the `defaultBmcPassword` request property's maxLength was decreased to `20`
  - the `defaultBmcUsername` request property's maxLength was decreased to `16`
- **2026-07-31** `7d155f726f88` — 10 info
  - added the optional property `sku/components/chassis/architecture` to the response with the `200` status
  - added the optional property `sku/components/ethernetDevices/items/isConnected` to the response with the `200` status
  - added the optional property `sku/components/infinibandDevices/items/inactiveDevices` to the response with the `200` status
  - added the optional property `sku/components/storage/items/maxSizeMiB` to the response with the `200` status
  - …6 more
- **2026-07-29** `f3447c80000e` — 1 info
  - request property `bmcMacAddress` deprecated
- **2026-06-30** `1511d195147a` — 2 info
  - added the new optional request property `hostLifecycleProfile`
  - added the optional property `hostLifecycleProfile` to the response with the `200` status
- **2026-06-30** `a82da22d7956` — 2 info
  - added the new optional request property `isDpfEnabled`
  - added the optional property `isDpfEnabled` to the response with the `200` status

[Full history](https://skmtc.dev/nvidia/apis/nvidia-infra-controller-rest-api/changes/v2/org/:org/nico/expected-machine/:expectedMachineId/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)
