---
title: "Update DPU Extension Service"
method: PATCH
path: "/v2/org/{org}/nico/dpu-extension-service/{dpuExtensionServiceId}"
tags: ["DPU Extension Service"]
---

# Update DPU Extension Service

`PATCH /v2/org/{org}/nico/dpu-extension-service/{dpuExtensionServiceId}`

Update a specific DPU Extension Service.

DPU Extension Service must be owned by current Tenant. A new version will be created if data or credentials are modified.

For a `DpfHelmChart` service, `credentials` and `observability` are unsupported, and `data` is accepted only while the service is `Ready` and only when it differs from the current definition.

Org must have a Tenant entity. User must have authorization role with `TENANT_ADMIN` suffix.

## Request body

- DpuExtensionServiceUpdateRequest — Request data to update an existing DPU Extension Service
  - `name` string, nullable — Name for the DPU Extension Service. Must be unique for a given Tenant
  - `description` string, nullable — Optional description for the DPU Extension Service
  - `data` string, nullable — Deployment spec for the DPU Extension Service, limited to 131072 bytes once UTF-8 encoded; characters outside ASCII count as more than one byte. For KubernetesPod this is the same Pod manifest accepted on create. For DpfHelmChart this is the same strict JSON definition accepted on create and updates stable V1 in place.
  - `credentials` DpuExtensionServiceCredentials — Credentials for retrieving resources specified in DPU Extension Service data
    - `registryUrl` string — URL for the registry the credential should be used for
    - `username` string, nullable — Username for the registry. Must be specified if registry URL is specified
    - `password` string, nullable — Password for the registry. Must be specified if registry URL is specified
  - `observability` DpuExtensionServiceObservability — Observability configuration for a DPU Extension Service version
    - `configs` DpuExtensionServiceObservabilityConfig[] — Observability configurations to apply to the service version
      - union — A single observability configuration for a DPU Extension Service version
        - object
          - `name` string, nullable — Optional name of the service or component being monitored
          - `prometheus` DpuExtensionServiceObservabilityPrometheus, required — Prometheus scrape configuration for a DPU Extension Service version
            - `scrapeIntervalSeconds` integer, required — How often Prometheus should scrape the endpoint
            - `endpoint` string, required — Prometheus scrape endpoint
          - `logging` DpuExtensionServiceObservabilityLogging — Logging configuration for a DPU Extension Service version
            - `path` string, required — Path to the log file to collect
        - object
          - `name` string, nullable — Optional name of the service or component being monitored
          - `prometheus` DpuExtensionServiceObservabilityPrometheus — Prometheus scrape configuration for a DPU Extension Service version
            - `scrapeIntervalSeconds` integer, required — How often Prometheus should scrape the endpoint
            - `endpoint` string, required — Prometheus scrape endpoint
          - `logging` DpuExtensionServiceObservabilityLogging, required — Logging configuration for a DPU Extension Service version
            - `path` string, required — Path to the log file to collect

## Response `200`

OK

- DpuExtensionService — DPU Extension Service allows user defined services to run on DPUs of their Instances
  - `id` string, uuid — Unique identifier for the DPU Extension Service
  - `name` string — Name for the DPU Extension Service. Must be unique for a given Tenant
  - `description` string, nullable — Optional description for the DPU Extension Service
  - `serviceType` 'KubernetesPod' | 'DpfHelmChart' — Type of the DPU Extension Service
  - `siteId` string, uuid — ID for the Site the DPU Extension Service belongs to
  - `tenantId` string, uuid — ID for the Tenant the DPU Extension Service belongs to
  - `version` string, nullable — Latest version of the DPU Extension Service
  - `versionInfo` DpuExtensionServiceVersionInfo — Information about a specific version of DPU Extension Service
    - `version` string, nullable — Current version of the DPU Extension Service
    - `data` string — Deployment spec for the DPU Extension Service
    - `hasCredentials` boolean — Indicates whether this version was created with credentials
    - `created` string, date-time — Date/time when this version of the DPU Extension Service was created
    - `observability` DpuExtensionServiceObservability — Observability configuration for a DPU Extension Service version
      - `configs` DpuExtensionServiceObservabilityConfig[] — Observability configurations to apply to the service version
        - union — A single observability configuration for a DPU Extension Service version
          - object
            - `name` string, nullable — Optional name of the service or component being monitored
            - `prometheus` DpuExtensionServiceObservabilityPrometheus, required — Prometheus scrape configuration for a DPU Extension Service version
              - …
            - `logging` DpuExtensionServiceObservabilityLogging — Logging configuration for a DPU Extension Service version
              - …
          - object
            - `name` string, nullable — Optional name of the service or component being monitored
            - `prometheus` DpuExtensionServiceObservabilityPrometheus — Prometheus scrape configuration for a DPU Extension Service version
              - …
            - `logging` DpuExtensionServiceObservabilityLogging, required — Logging configuration for a DPU Extension Service version
              - …
  - `activeVersions` string[] — Latest and past versions of this DPU Extension Service that have not been deleted and are available for deployment
  - `status` 'Pending' | 'Ready' | 'Error' | 'Updating' | 'Deleting' — Status values for DPU Extension Service objects
  - `statusHistory` StatusDetail[] — History of the DPU Extension Service statuses
    - `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 DPU Extension Service was created
  - `updated` string, date-time — Date/time when the DPU Extension Service 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-28** `d4cff952b75b` — 3 warning
  - the `data` request property's maxLength was set to `131072`
  - added the new `DpfHelmChart` enum value to the `serviceType` response property for the response status `200`
  - added the new `Updating` enum value to the `status` response property for the response status `200`
- **2026-08-27** `d26122e47ad7` — 3 warning
  - the `data` request property's maxLength was set to `131072`
  - added the new `DpfHelmChart` enum value to the `serviceType` response property for the response status `200`
  - added the new `Updating` enum value to the `status` response property for the response status `200`

[Change history](https://skmtc.dev/nvidia/apis/nvidia-infra-controller-rest-api/changes/v2/org/:org/nico/dpu-extension-service/:dpuExtensionServiceId/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/9855f73a9b8e/schema)
