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

# Update Machine

`PATCH /v2/org/{org}/nico/machine/{machineId}`

Update a Machine

Instance Type attribute updates, maintenance attribute updates and labels updates must be specified in separate requests. They cannot be processed at the same time.

Some attributes can only be updated by Provider, while others can be updated by Provider or a privileged Tenant.

For Infrastructure Providers: Org must have an Infrastructure Provider entity and own the Site that the Machine belongs to. User must have authorization role with `PROVIDER_ADMIN` suffix.

For Tenants: Org must have a Tenant with `TargetedInstanceCreation` capability enabled and Tenant Account with Machine's Provider. User must have authorization role with `TENANT_ADMIN` suffix.

## Request body

- MachineUpdateRequest — Request data to update Machine. Instance Type attribute updates, maintenance attribute updates, labels updates, and in-pool online repair (enter or exit) must be specified in separate requests. They cannot be processed at the same time.
  - `instanceTypeId` string, uuid, nullable — Update the Instance Type of the Machine. Cannot be specified when clearing Instance Type. Can only be updated by Provider.
  - `clearInstanceType` boolean, nullable — Set to true to clear the existing Instance Type. Cannot be specified if Instance Type ID is specified. Can only be set by Provider.
  - `setMaintenanceMode` boolean, nullable — Set to `true` to enable maintenance mode and to `false` to disable maintenance mode. Can be set by Provider or privileged Tenant.
  - `maintenanceMessage` string, nullable — Optional message describing the reason for moving Machine into maintenance mode. Can be updated by Provider or privileged Tenant.
  - `labels` Labels
  - `onlineRepair` MachineOnlineRepair — Enable or disable online repair of a Machine. Online repair facilitates repairing a Machine without the Tenant having to release the Machine by deleting the Instance. When `enabled` is true, `policy` and `acknowledgments` are required inside this object, and `healthIssue` is required at the top level of the MachineUpdateRequest. When `enabled` is false, none of those fields may be set.
    - `enabled` boolean, required — When true, initiates the online repair process by sending a merge-mode health override with source: `request-online-repair` and sets the associated Instance status to Repairing. When false, exits online repair by clearing the merge-mode health override and returns the Instance to Ready status. Cannot be combined with instance type, maintenance, or label updates in the same request.
    - `policy` MachineOnlineRepairPolicy
      - `allowAutoInstanceDeletionOnFailure` boolean, required — When true, escalation to offline breakfix (permanent delete / deallocate) is allowed if online repair cannot be completed.
    - `acknowledgments` MachineOnlineRepairAcknowledgments
      - `acceptDataCorruptionRisk` true, required — Tenant confirms data may be corrupted during repair.
      - `acceptRepairTeamAccess` true, required — Tenant confirms the dedicated repair team will have access to the instance.
      - `acceptInstanceDeletionRisk` true, required — Tenant confirms risk of instance deletion if escalation to offline breakfix occurs.
  - `healthIssue` MachineHealthIssue
    - `category` 'Hardware' | 'Network' | 'Performance' | 'Storage' | 'Software' | 'Other', required — High-level category for the tenant-reported issue.
    - `summary` string, nullable, required — Brief description of the issue for operators.
    - `details` string, nullable, required — Diagnostic information, logs, ticket numbers, etc.

## Response `200`

OK

- Machine — Machine is the baremetal server that sits in the datacenter
  - `id` string — Unique ID of Machine
  - `infrastructureProviderId` string, uuid — ID of the Provider that owns the Machine
  - `siteId` string, uuid — ID of the Site the Machine belongs to
  - `instanceTypeId` string, uuid, nullable — ID of the Instance Type, if assigned
  - `instanceId` string, uuid, nullable — ID of the Instance if this Machine is assigned to one
  - `tenantId` string, uuid, nullable — ID of the Tenant that owns the Instance if the Machine is assigned to one
  - `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
  - `serialNumber` string, nullable — Serial number of the Machine, only visible to Provider
  - `machineCapabilities` MachineCapability[] — List of capabilities of the machine
    - `type` 'CPU' | 'Memory' | 'Storage' | 'Network' | 'GPU' | 'InfiniBand' | 'DPU' — Type of the Capability
    - `name` string — Name of the Capability component
    - `frequency` string, nullable — Frequency of the Capability component, if available
    - `cores` integer, nullable — Number of Cores in the Capability component, if applicable
    - `threads` integer, nullable — Number of Threads in the Capability component, if applicable
    - `capacity` string, nullable — Capacity of the Capability component, if applicable
    - `vendor` string, nullable — Vendor of the Capability component, if available
    - `hardwareRevision` string, nullable — Hardware revision of the Capability component, if available
    - `inactiveDevices` integer[] — A list of inactive devices
    - `count` integer, nullable — Count of the Capability component
    - `deviceType` string, nullable — Device Type of the Capability component, if available
  - `machineInterfaces` MachineInterface[] — List of admin interfaces of the machine
    - `id` string, uuid — Unique UUID v4 identifier for the Machine Interface
    - `machineId` string — ID of the Machine
    - `controllerInterfaceId` string, uuid, nullable — ID of the interface in Site Controller
    - `controllerSegmentId` string, uuid, nullable — ID of the network segment in Site Controller
    - `attachedDpuMachineID` string, nullable — ID of the DPU attached to this interface in the Site Controller
    - `subnetId` string, uuid, nullable — ID of the Subnet
    - `hostname` string, hostname, nullable — Hostname of the Machine Interface
    - `isPrimary` boolean — Boolean which indicates if the Machine Interface is primary
    - `macAddress` string, nullable — Mac address of the Machine Interface
    - `ipAddresses` string[] — Array of IP addresses
    - `created` string, date-time — Date/time when the Machine Interface was created
    - `updated` string, date-time — Date/time when the Machine Interface was last updated
  - `associatedDpuMachineIds` string[] — IDs of the DPU Machines attached to this host Machine
  - `placementInRack` PlacementInRack — Physical placement of a Machine within its Rack
    - `slotNumber` integer, nullable — Rack slot the Machine occupies
    - `trayIndex` integer, nullable — Index of the Machine's tray within its slot
  - `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
  - `scoutVersion` string, nullable — Scout version reported by the Machine, if known
  - `health` MachineHealth — Describes results of various Machine health probes and alerts
    - `source` string — Describes how the health report was generated
    - `observedAt` string, nullable — Date/time when health report was generated
    - `successes` MachineHealthProbeSuccess[] — Results from successful health probes for the Machine
      - `id` string, required — Health probe identifier
      - `target` string, nullable — Specific component targeted by health probe
    - `alerts` MachineHealthProbeAlert[] — Results from failed health probes for the Machine
      - `id` string, required — Health probe identifier
      - `target` string, nullable — Specific component targeted by health probe
      - `inAlertSince` string, date-time, nullable — Date/time since the alert has been in effect
      - `message` string, required — Details of the failed health probe result
      - `tenantMessage` string, nullable — Information provided by Tenant, if any
      - `classifications` string[] — Classifications for this alert, category or impact
  - `metadata` MachineMetadata — Describes metadata for various Machine components
    - `dmiData` MachineDMIData — Describes DMI data of a Machine
      - `boardName` string, nullable — DMI board name reported by the Machine
      - `boardSerial` string, nullable — DMI board serial number reported by the Machine
      - `boardVersion` string, nullable — DMI board version reported by the Machine
      - `biosDate` string, nullable — DMI BIOS release date reported by the Machine
      - `biosVersion` string, nullable — DMI BIOS version reported by the Machine
      - `productName` string, nullable — DMI product name reported by the Machine
      - `productSerial` string, nullable — DMI product serial number reported by the Machine
      - `chassisSerial` string, nullable — DMI chassis serial number reported by the Machine
      - `sysVendor` string, nullable — DMI system vendor reported by the Machine
    - `bmcInfo` MachineBMCInfo — Describes BMC information of a Machine
      - `ip` string, ipv4, nullable — IP address of the Machine BMC
      - `mac` string, nullable — MAC address of the Machine BMC
      - `version` string, nullable — Version reported by the Machine BMC
      - `firmwareRevision` string, nullable — Firmware revision reported by the Machine BMC
    - `gpus` MachineGPUInfo[] — GPU inventory reported for the Machine
      - `name` string, nullable — Name of the Machine's GPU
      - `serial` string, nullable — Serial number of the Machine's GPU
      - `driverVersion` string, nullable — Version of the Machine's GPU driver
      - `vbiosVersion` string, nullable — Bios version of the Machine's GPU
      - `inforomVersion` string, nullable — Info rom version of the Machine's GPU
      - `totalMemory` string, nullable — Total memory of the Machine's GPU
      - `frequency` string, nullable — Frequency of the Machine's GPU
      - `pciBusId` string, nullable — PCI BusId of the Machine's GPU
    - `networkInterfaces` MachineNetworkInterface[] — List of Ethernet interfaces of the machine
      - `macAddress` string, nullable — Name of the Machine's NetworkInterface
      - `vendor` string, nullable — Serial number of the Machine's NetworkInterface
      - `device` string, nullable — Device number of the Machine's NetworkInterface
      - `path` string, nullable — Bios path of the Machine's NetworkInterface
      - `numaNode` integer — Info of numa node Machine's NetworkInterface
      - `description` string, nullable — Description the Machine's NetworkInterface
      - `slot` string, nullable — Slot number of the Machine's NetworkInterface
    - `infinibandInterfaces` MachineInfiniBandInterface[] — List of InfiniBand interfaces of the machine
      - `guid` string, nullable — Guid of the Machine's InfiniBandInterface
      - `vendor` string, nullable — Serial number of the Machine's InfiniBandInterface
      - `device` string, nullable — Device number of the Machine's InfiniBandInterface
      - `path` string, nullable — Bios path of the Machine's InfiniBandInterface
      - `numaNode` integer — Info of numa node Machine's InfiniBandInterface
      - `description` string, nullable — Description the Machine's InfiniBandInterface
      - `slot` string, nullable — Slot number of the Machine's InfiniBandInterface
    - `lifecycleState` MachineLifecycleState — Describes the current Machine lifecycle state and its SLA status
      - `value` string, required — Current lifecycle state value of the Machine
      - `isAboveSLA` boolean, required — Whether the Machine has been in the current state longer than the defined SLA
      - `updated` string, date-time, nullable — Date/time when the lifecycle state was updated to the current value
      - `slaSeconds` integer, required — Defined SLA for the current lifecycle state in seconds
  - `labels` Labels
  - `status` 'Initializing' | 'Ready' | 'Reset' | 'Maintenance' | 'InUse' | 'Error' | 'Decommissioning' | 'Decommissioned' | 'Unknown' — Status values for Machine objects
  - `isUsableByTenant` boolean — Indicates whether the machine is usable by or currently in use by a tenant.
  - `statusHistory` StatusDetail[] — Chronological status history for the Machine
    - `status` string — State of the associated entity at a particular time
    - `message` string, nullable — Description of the state and cause/remedy in case of error
    - `created` string, date-time — Date/time when the associated entity assumed the status
    - `updated` string, date-time — Date/time when the associated entity was last observed with this status
  - `created` string, date-time — Date/time when the Machine was created
  - `updated` string, date-time — Date/time when the 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

## Changes

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

- **2026-07-27** `9ef64baae658` — 1 info
  - added the optional property `scoutVersion` to the response with the `200` status
- **2026-07-01** `6c8dcd576e4b` — 1 breaking, 3 info
  - the `health/alerts/items/inAlertSince` response's property type/format changed from `string, null`/`` to `string, null`/`date-time` for status `200`
  - the response property `health/alerts/items/id` became required for the status `200`
  - the response property `health/alerts/items/message` became required for the status `200`
  - the response property `health/successes/items/id` became required for the status `200`
- **2026-06-29** `7e87e84ae9f9` — 2 info
  - added the optional property `associatedDpuMachineIds` to the response with the `200` status
  - added the optional property `placementInRack` to the response with the `200` status
- **2026-06-11** `bc7cf73fe604` — 3 info
  - added the optional property `machineCapabilities/items/hardwareRevision` to the response with the `200` status
  - added the optional property `metadata/dmiData/productName` to the response with the `200` status
  - added the optional property `metadata/dmiData/sysVendor` to the response with the `200` status
- …earlier changes not shown

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