---
title: "Update Operating System"
method: PATCH
path: "/v2/org/{org}/nico/operating-system/{operatingSystemId}"
tags: ["Operating System"]
---

# Update Operating System

`PATCH /v2/org/{org}/nico/operating-system/{operatingSystemId}`

Update an Operating System by ID

If the Operating System has `infrastructureProviderId` set, then org must have an Infrastructure Provider entity and its ID should match the Operating System Infrastructure Provider ID. User must have authorization role with `PROVIDER_ADMIN` suffix. Provider must own the Operating System.

If the Operating System has `tenantId` set, then org must have a Tenant entity and its ID should match the Operating System Tenant ID. User must have authorization role with `TENANT_ADMIN` suffix. Tenant must own the Operating System.

## Request body

- OperatingSystemUpdateRequest — Request data to update an Operating System. For image-based OS, mutable image attributes (image authentication, root filesystem, image disk) can be updated; imageUrl and imageSha identify the underlying image and are immutable after creation. Only iPXE attributes can be updated for iPXE-based OS. A Templated iPXE Operating System can only be updated when it is associated with exactly one Site.
  - `name` string, nullable — Name of the Operating System
  - `description` string, nullable — Optional description of the Operating System
  - `ipxeScript` string, nullable — iPXE script or URL, only applicable for iPXE-based OS. Cannot be specified if imageUrl is specified
  - `imageUrl` string, uri, nullable — Original URL from which the Operating System image can be retrieved. Immutable after creation: it may be re-sent unchanged, but changing it is rejected. Create a new Operating System to use a different image.
  - `imageSha` string, nullable — SHA hash of the image file. Immutable after creation: it may be re-sent unchanged, but changing it is rejected.
  - `imageAuthType` string, nullable — Authentication type for image URL, if needed, e.g., basic/bearer/token; required if imageAuthToken is specified. Can be updated independently without re-sending imageUrl/imageSha.
  - `imageAuthToken` string, nullable — Auth token to retrieve the image from image URL, required if imageAuthType is specified. Can be updated independently without re-sending imageUrl/imageSha.
  - `imageDisk` string, nullable — Disk path where the image should be mounted, optional
  - `rootFsId` string, nullable — Root filesystem UUID; this or `rootFsLabel` is required for image-based OS
  - `rootFsLabel` string, nullable — Root filesystem label; this or `rootFsId` is required for image-based OS
  - `phoneHomeEnabled` boolean, nullable — Indicates whether the Phone Home service should be enabled or disabled for Operating System
  - `userData` string, nullable — User data for the Operating System
  - `isCloudInit` boolean, nullable — Deprecated and ignored: whether the Operating System is cloud-init based. Value now derived from `userData`.
  - `allowOverride` boolean, nullable — Indicates if the user data can be overridden at Instance creation time
  - `isActive` boolean, nullable — Indicates if the Operating System is active
  - `deactivationNote` string, nullable — Optional deactivation note if OS is inactive
  - `ipxeTemplateId` string, nullable — ID of the iPXE template to use (Templated iPXE only). Mutually exclusive with ipxeScript and imageUrl.
  - `ipxeTemplateParameters` OperatingSystemIpxeParameter[] — Parameters passed to the iPXE template (Templated iPXE only).
    - `name` string, required — Parameter name (used as a variable in the template)
    - `value` string, required — Parameter value
  - `ipxeTemplateArtifacts` OperatingSystemIpxeArtifact[] — Artifacts (kernel, initrd, ISO, ...) for the iPXE OS definition (Templated iPXE only).
    - `name` string, required — Artifact name
    - `url` string, required — Original URL for the artifact
    - `sha` string, nullable — Optional SHA256 checksum
    - `authType` string, nullable — Optional auth type: Basic or Bearer
    - `authToken` string, nullable — Optional auth token. Redacted in API responses.
    - `cacheStrategy` 'CacheAsNeeded' | 'LocalOnly' | 'CachedOnly' | 'RemoteOnly' — How to handle caching for this artifact

## Response `200`

OK

- OperatingSystem — Describes the attributes of the operating system/bootloader that can be used on instances
  - `id` string, uuid — ID of the Operating System
  - `name` string — Name of the Operating System
  - `description` string, nullable — Optional description of the Operating System
  - `infrastructureProviderId` string, uuid, nullable — Specified if a Provider owns the Operating System
  - `tenantId` string, uuid, nullable — Specified if a Tenant owns the Operating System
  - `type` 'iPXE' | 'Image' | 'TemplatedIpxe', nullable — Type of the Operating System
  - `imageUrl` string, uri, nullable — Original URL from which the Operating System image can be retrieved
  - `imageSha` string, nullable — SHA hash of the image file, only present for image-based OS
  - `imageAuthType` string, nullable — Authentication type for image URL, e.g., 'Basic' or 'Bearer'
  - `imageAuthToken` string, nullable — Auth token to retrieve the image from image URL
  - `imageDisk` string, nullable — Disk path where the image should be mounted
  - `rootFsId` string, nullable — Root filesystem UUID, only applicable for image-based Operating System
  - `rootFsLabel` string, nullable — Root filesystem label, only applicable for image-based Operating System
  - `ipxeScript` string, nullable — iPXE script or URL, only applicable for iPXE-based Operating System
  - `ipxeTemplateId` string, nullable — ID of the iPXE template used, only present for Templated iPXE Operating System
  - `ipxeTemplateParameters` OperatingSystemIpxeParameter[] — Parameters passed to the iPXE template (Templated iPXE only)
    - `name` string, required — Parameter name (used as a variable in the template)
    - `value` string, required — Parameter value
  - `ipxeTemplateArtifacts` OperatingSystemIpxeArtifact[] — Artifacts for the iPXE OS definition (Templated iPXE only). authToken is redacted.
    - `name` string, required — Artifact name
    - `url` string, required — Original URL for the artifact
    - `sha` string, nullable — Optional SHA256 checksum
    - `authType` string, nullable — Optional auth type: Basic or Bearer
    - `authToken` string, nullable — Optional auth token. Redacted in API responses.
    - `cacheStrategy` 'CacheAsNeeded' | 'LocalOnly' | 'CachedOnly' | 'RemoteOnly' — How to handle caching for this artifact
  - `userData` string, nullable — User data for the Operating System
  - `isCloudInit` boolean — Whether the Operating System is cloud-init based; true if there is non-empty `userData`, false otherwise.
  - `phoneHomeEnabled` boolean — Indicates whether the Phone Home service should be enabled or disabled for Operating System
  - `isActive` boolean — Indicates if the Operating System is active
  - `deactivationNote` string, nullable — Optional deactivation note if OS is inactive
  - `allowOverride` boolean — Indicates if the user data can be overridden at Instance creation time
  - `siteAssociations` OperatingSystemSiteAssociation[] — Sites the Operating System is synced to
    - `site` SiteSummary — SiteSummary contains a subset of data for Site object, used when nesting in other objects
      - `id` string, uuid — Unique UUID v4 identifier for the Site
      - `name` string — Name of the Site
      - `infrastructureProviderId` string, uuid — ID of the Infrastructure Provider that owns the Site
      - `isSerialConsoleEnabled` boolean — Indicates if Serial Console is enabled for the Site by the Provider
      - `isOnline` boolean — Indicates if the Site is currently reachable from Cloud
      - `capabilities` SiteCapabilities — Boolean flags to indicate features supported by a Site
        - `nativeNetworking` boolean — Whether the Site supports native networking
        - `networkSecurityGroup` boolean — Whether the Site supports Network Security Groups
        - `nvLinkPartition` boolean — Whether the Site supports NVLink partitioning
        - `flow` boolean — Whether the Site supports Flow-based operations
        - `imageBasedOperatingSystem` boolean — Whether the Site supports image-based operating system provisioning
        - `vpcSlaac` boolean — Whether the latest successfully stored Site configuration inventory reports that Core supports VPCs with SLAAC enabled. False also represents a missing Site configuration or an inventory report that omits the capability. This value is managed by Site configuration inventory and cannot be updated through the Site API.
        - `dpsPowerManagement` boolean — Whether this Site accepts non-empty power resource groups and power profiles for DPS power management. When false, omission and explicit clearing remain allowed.
      - `status` 'Pending' | 'Registered' | 'Error' — Status values for Site objects
    - `status` 'Syncing' | 'Synced' | 'Error' | 'Deleting' — Status values for SSH Key Group objects
    - `version` string, nullable — Version of the Key Group on Site
    - `created` string, date-time — Date/time when the Site was created
    - `updated` string, date-time — Date/time when the Site was last updated
  - `status` 'Pending' | 'Provisioning' | 'Syncing' | 'Ready' | 'Deleting' | 'Error' | 'Deactivated' — Status values for Operating System objects
  - `statusHistory` StatusDetail[] — History of status changes over time
    - `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 Operating System was created
  - `updated` string, date-time — Date/time when the Operating System was 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

- **2026-08-24** `9c78a8936b34` — 1 info
  - added the optional property `siteAssociations/items/site/capabilities/dpsPowerManagement` to the response with the `200` status
- **2026-08-20** `a482c2d8f5e2` — 1 info
  - added the optional property `siteAssociations/items/site/capabilities/vpcSlaac` to the response with the `200` status
- **2026-07-29** `c9c451439b06` — 1 warning, 1 info
  - added the new `TemplatedIpxe` enum value to the `type` response property for the response status `200`
  - removed the `Templated iPXE` enum value from the `type` response property for the response status `200`
- **2026-07-23** `af4a60b76e0b` — 1 warning, 6 info
  - added the new `Templated iPXE` enum value to the `type` response property for the response status `200`
  - added the new optional request property `ipxeTemplateArtifacts`
  - added the new optional request property `ipxeTemplateId`
  - added the new optional request property `ipxeTemplateParameters`
  - …3 more
- **2026-07-02** `3f2849e9c157` — 1 info
  - request property `isCloudInit` deprecated

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