> This page is for Self-Hosted, version v3.0 (default).
> For other versions, use one of these documentation indexes:
> - v3.0 (default): https://docs.nvidia.com/run-ai/self-hosted/v3.0/llms.txt
> - v2.26: https://docs.nvidia.com/run-ai/self-hosted/v2.26/llms.txt
> - v2.25: https://docs.nvidia.com/run-ai/self-hosted/v2.25/llms.txt
> - v2.24: https://docs.nvidia.com/run-ai/self-hosted/v2.24/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/run-ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/run-ai/_mcp/server.

# Get a NVIDIA NIM service. [Experimental]

GET http://localhost:8080/api/v2/workloads/nim-services/{WorkloadV2Id}

Retrieve details of a specific NVIDIA NIM service, by id

Reference: https://docs.nvidia.com/run-ai/self-hosted/reference/rest-api/endpoints/workloads/nvidia-nim/get-nim-service-by-id

## Authentication

- `Authorization` header (bearer token, required) — Bearer authentication

## Request

### Path parameters

- `WorkloadV2Id` (string, required)

## Response

### 200

Successfully retrieved the workload

- `metadata` (WorkloadV2Metadata, required)
- `desiredPhase` (enum, required) — The desired phase of the workload.
  - Allowed values: `Running`, `Stopped`, `Deleted`
- `spec` (NimServiceSpec, required)

## Errors

### 401 Unauthorized Error

Unauthorized

- `code` (integer, required)
- `message` (string, required)
- `details` (string, optional)

### 403 Forbidden Error

Forbidden

- `code` (integer, required)
- `message` (string, required)
- `details` (string, optional)

### 404 Not Found Error

The specified resource was not found

- `code` (integer, required)
- `message` (string, required)
- `details` (string, optional)

### 500 Internal Server Error

unexpected error

- `code` (integer, required)
- `message` (string, required)
- `details` (string, optional)

### 503 Service Unavailable Error

unexpected error

- `code` (integer, required)
- `message` (string, required)
- `details` (string, optional)

## Types

### WorkloadV2Metadata

- `name` (string, required) — The name of the workload.
- `projectId` (string, required) — The id of the project.
- `id` (string, required) — A unique ID of the workload.
- `gvk` (GVK, required) — Specifies the Group, Version, and Kind (GVK) of the Kubernetes resource that defines the workload.
- `projectName` (string, required) — The name of the project
- `clusterId` (string, required) — The id of the cluster.
- `tenantId` (integer, required) — The id of the tenant.
- `departmentId` (string, required) — The id of the department.
- `departmentName` (string, required) — The name of the department
- `createdAt` (datetime, required) — The timestamp for when the workload was created.
- `createdBy` (string, required) — Identifier of the user who created the workload.
- `updatedAt` (datetime, required) — The timestamp for the last time the workload was updated.
- `updatedBy` (string, required) — Identifier of the user who last updated the workload.
- `priority` (string, optional) — Specifies the priority class for the workload, which determines its scheduling behavior. Valid values are: very-low, low, medium-low, medium, medium-high, high, and very-high. Each workload type has a default priority. To view the default priority for each workload type, use the GET /workload-types endpoint. Once you change the priority from the default value defined for that workload type, the preemptibility field is not automatically updated. Make sure to set the desired preemptibility value.
- `category` (string, optional) — Specify the workload category assigned to the workload. Categories are used to classify and monitor different types of workloads within the NVIDIA Run:ai platform.
- `preemptibility` (enum, optional) — Specifies whether the workload can be preempted by higher-priority workloads. Valid values are preemptible, semi-preemptible and non-preemptible. If explicitly set, this value takes precedence. If not set, the system derives the preemptibility from the priorityClassName field, ensuring backward compatibility. Each workload type has a default preemptibility. To view the default preemptibility for each workload type, use the GET /workload-types endpoint.
  - Allowed values: `preemptible`, `semi-preemptible`, `non-preemptible`
- `configuration` (WorkloadV2Configuration, optional) — Specifies the features configuration to apply to a workload.
- `deletedAt` (datetime, optional, nullable) — The timestamp indicating when the workload was deleted.
- `deletedBy` (string, optional, nullable) — Identifier of the user who deleted the workload.

### NimServiceSpec

- `annotations` (list of Annotation, optional) — Set of annotations to populate into the container running the workload.
- `autoscaling` (NimServiceSpecAutoscaling, optional, nullable)
- `category` (string, optional) — Specify the workload category assigned to the workload. Categories are used to classify and monitor different types of workloads within the NVIDIA Run:ai platform.
- `compute` (NimServiceSpecCompute, optional, nullable)
- `environmentVariables` (list of EnvironmentVariable, optional) — Set of environment variables to populate into the container running the workload.
- `image` (string, optional) — Docker image name. For more information, see [Images](https://kubernetes.io/docs/concepts/containers/images). The image name is mandatory for creating a workload.
- `imagePullPolicy` (enum, optional) — Image pull policy. Defaults to `Always` if `:latest` tag is specified, otherwise it is `IfNotPresent`.
  - Allowed values: `Always`, `Never`, `IfNotPresent`
- `imagePullSecrets` (list of ImagePullSecret, optional) — A list of references to Kubernetes secrets in the same namespace used for pulling container images.
- `labels` (list of Label, optional) — Set of labels to populate into the container running the workload.
- `modelStore` (NimServiceSpecModelStore, optional, nullable)
- `multiNode` (NimServiceMultiNode, optional) — Defines whether the NIM service runs as a multi-node deployment. If workers is set to 1 or more, the service runs in multi-node.
- `ngcAuthSecret` (string, optional) — The name of a Kubernetes secret containing the NGC access credentials. The secret must contain a key named NGC_API_KEY with the API key as the value.
- `nodePools` (list of string, optional) — A prioritized list of node pools for the scheduler to run the workload on. The scheduler will always try to use the first node pool before moving to the next one if the first is not available.
- `preemptibility` (enum, optional) — Specifies whether the workload can be preempted by higher-priority workloads. Valid values are preemptible, semi-preemptible and non-preemptible. If explicitly set, this value takes precedence. If not set, the system derives the preemptibility from the priorityClassName field, ensuring backward compatibility. Each workload type has a default preemptibility. To view the default preemptibility for each workload type, use the GET /workload-types endpoint.
  - Allowed values: `preemptible`, `semi-preemptible`, `non-preemptible`
- `priorityClass` (string, optional) — Specifies the priority class for the workload, which determines its scheduling behavior. Valid values are: very-low, low, medium-low, medium, medium-high, high, and very-high. Each workload type has a default priority. To view the default priority for each workload type, use the GET /workload-types endpoint. Once you change the priority from the default value defined for that workload type, the preemptibility field is not automatically updated. Make sure to set the desired preemptibility value.
- `probes` (Probes, optional) — Probes are used to determine if the container is healthy and ready to accept traffic.
- `replicas` (integer, optional, default: 1) — The number of replicas to deploy.
- `security` (NimServiceSpecSecurity, optional, nullable)
- `servingPort` (NimServiceServingPort, optional) — A port for accessing the inference service. Authorization fields (authorizationType, authorizedUsers, authorizedGroups) are supported for cluster version 2.25 and above.
- `tolerations` (list of Toleration, optional) — Set of tolerations to apply to the workload.

### GVK

Specifies the Group, Version, and Kind (GVK) of the Kubernetes resource that defines the workload.

- `version` (string, required) — The API version of the resource within the specified group.
- `kind` (string, required) — The type of Kubernetes resource being referenced.
- `group` (string, optional, nullable) — The API group of the Kubernetes resource. Empty string for core resources like Pod.

### WorkloadV2Configuration

Specifies the features configuration to apply to a workload.

- `mnnvl` (string, optional, nullable)
- `userCredentials` (WorkloadV2UpdateConfigurationUserCredentials, optional) — User credentials to make available to the workload. Each entry references a user-created credential by name. User credentials can only be accessed by the user who created them.

### Annotation

Annotation details to be populated into the container.

- `name` (string, optional, nullable) — The name of the annotation (mandatory)
- `value` (string, optional, nullable) — The value of the annotation.
- `exclude` (boolean, optional, nullable, default: false) — Use 'true' in case the annotation is defined in defaults of the policy, and you wish to exclude it from the workload.

### NimServiceSpecAutoscaling

- `maxReplicas` (integer, optional) — The maximum number of replicas for autoscaling. Defaults to minReplicas. Must be no less than minReplicas.
- `metric` (string, optional) — The metric to use for autoscaling (mandatory).
- `metricThreshold` (integer, optional) — The threshold to use with the specified metric for autoscaling (mandatory).
- `minReplicas` (integer, optional) — The minimum number of replicas for autoscaling. Defaults to 1.
- `scaleWindowSeconds` (integer, optional) — The time window for autoscaling decisions, in seconds. Defaults to 300 seconds.

### NimServiceSpecCompute

- `cpuCoreLimit` (double, optional) — Limitations on the number of CPUs consumed by the workload (0.5, 1, .etc). The system guarantees that this workload will not be able to consume more than this amount of CPUs.
- `cpuCoreRequest` (double, optional) — CPU units to allocate for the created workload (0.5, 1, .etc). The workload will receive at least this amount of CPU. Note that the workload will not be scheduled unless the system can guarantee this amount of CPUs to the workload.
- `cpuMemoryLimit` (string, optional) — Limitations on the CPU memory to allocate for this workload (1G, 20M, .etc). The system guarantees that this workload will not be able to consume more than this amount of memory. The workload will receive an error when trying to allocate more memory than this limit.
- `cpuMemoryRequest` (string, optional) — The amount of CPU memory to allocate for this workload (1G, 20M, .etc). The workload will receive at least this amount of memory. Note that the workload will not be scheduled unless the system can guarantee this amount of memory to the workload
- `gpuDevicesRequest` (integer, optional) — Requested number of GPU devices. Currently if more than one device is requested, it is not possible to provide values for gpuMemory or gpuPortion.
- `gpuMemoryLimit` (string, optional) — Limitation on the memory consumed by the workload, per GPU device. The system guarantees The gpuMemoryLimit must be no less than gpuMemoryRequest.
- `gpuMemoryRequest` (string, optional) — Required if and only if gpuRequestType is memory. States the GPU memory to allocate for the created workload, per GPU device. Note that the workload will not be scheduled unless the system can guarantee this amount of GPU memory to the workload.
- `gpuPortionLimit` (double, optional) — Limitations on the portion consumed by the workload, per GPU device. The system guarantees The gpuPotionLimit must be no less than the gpuPortionRequest.
- `gpuPortionRequest` (double, optional) — Required if and only if gpuRequestType is portion. States the portion of the GPU to allocate for the created workload, per GPU device, between 0 and 1. The default is no allocated GPUs.
- `gpuRequestType` (enum, optional) — Sets the unit type for GPU resources requests. Stated in terms of portion or memory. Sets the unit type for other GPU request fields. If `gpuDevicesRequest > 1`, only `portion` is supported. If `gpuDeviceRequest = 1`, the request type can be stated as `portion` or `memory`.
  - Allowed values: `portion`, `memory`

### EnvironmentVariable

Details of an environment variable which is populated into the container.

- `name` (string, optional, nullable) — The name of the environment variable. (mandatory)
- `value` (string, optional, nullable) — The value of the environment variable. (mutually exclusive with secret, userCredential, configMap and podFieldRef)
- `secret` (EnvironmentVariableSecret, optional) — Details of the secret and key use to populate the environment variable
- `configMap` (EnvironmentVariableConfigMap, optional) — Details of the configMap and key use to populate the environment variable
- `podFieldRef` (EnvironmentVariablePodFieldReference, optional) — Details of the field-reference and key use to populate the environment variable
- `userCredential` (EnvironmentVariableUserCredential, optional) — Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.
- `exclude` (boolean, optional, nullable) — Use 'true' in case the environment variable is defined in defaults of the policy, and you wish to exclude it from the workload.
- `description` (string, optional, nullable) — Description of the environment variable.

### ImagePullSecret

A reference to a secret in the same namespace used to pull container images.

- `name` (string, optional) — The name of the Kubernetes secret containing the image pull credentials.
- `userCredential` (boolean, optional, nullable) — Indicates whether the secret is a user credential. Set to true if the secret was created by the user and is only accessible by them.
- `exclude` (boolean, optional, nullable, default: false) — Use 'true' in case the secret is defined in defaults of the policy, and you wish to exclude it from the workload.

### Label

Label details to be populated into the container.

- `name` (string, optional, nullable) — The name of the label (mandatory)
- `value` (string, optional, nullable) — The value of the label.
- `exclude` (boolean, optional, nullable) — Use 'true' in case the label is defined in defaults of the policy, and you wish to exclude it from the workload.

### NimServiceSpecModelStore

- `nimCache` (NimCache, optional) — The specification of a NIM cache volume.
- `pvc` (NimServicePvcFields, optional)

### NimServiceMultiNode

Defines whether the NIM service runs as a multi-node deployment. If workers is set to 1 or more, the service runs in multi-node.

- `workers` (integer, optional) — Specifies the number of worker nodes to use when running the NIM service in multi-node.

### Probes

Probes are used to determine if the container is healthy and ready to accept traffic.

- `readiness` (Probe, optional)

### NimServiceSpecSecurity

- `runAsGid` (long, optional) — The group id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsGid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.
- `runAsUid` (long, optional) — The user id to run the entrypoint of the container which executes the workspace. Default to the value specified in the environment asset `runAsUid` field (optional). Use only when the source uid/gid of the environment asset is not `fromTheImage`, and `overrideUidGidInWorkspace` is enabled.

### NimServiceServingPort

A port for accessing the inference service. Authorization fields (authorizationType, authorizedUsers, authorizedGroups) are supported for cluster version 2.25 and above.

- `serviceType` (enum, optional, default: ClusterIP) — The type of Kubernetes service to create for the inference deployment. Options include 'ClusterIP' (default), 'NodePort', 'LoadBalancer', and 'ExternalName'.
  - Allowed values: `ClusterIP`, `NodePort`, `LoadBalancer`, `ExternalName`
- `port` (integer, optional) — The port that the container running the inference service exposes (mandatory).
- `grpcPort` (integer, optional) — The GRPC port that the container running the inference service exposes.
- `metricsPort` (integer, optional) — The port where metrics are exposed, required only if it's different than the main port.
- `exposeExternally` (boolean, optional, default: true) — Indicates whether the inference serving endpoint should be accessible outside the cluster. If set to true, the endpoint will be exposed externally. To enable external access, your administrator must configure the cluster as described in the [inference requirements](/run-ai/self-hosted/documentation/installation-and-configuration/system-requirements/networking-setup#standard-inference-wildcard-certificate). section.
- `exposedUrl` (string, optional) — The custom URL to use for the serving port. If empty (default), an autogenerated URL will be used.
- `exposedProtocol` (enum, optional) — The protocol to use for the exposed URL. If grpcPort is set, this defaults to grpc. Otherwise, it defaults to http.
  - Allowed values: `http`, `grpc`
- `authorizationType` (enum, optional) — Specifies who can send requests to the serving endpoint: Possible values: - `public`: No authorization is required. (Default) - `authenticatedUsers`: Any NVIDIA Run:ai authenticated user and service account can send requests. - `authorizedUsers`: Only users listed in the authorizedUsers field can send requests. - `authorizedGroups`: Only members of user groups listed in the authorizedGroups field can send requests.
  - Allowed values: `public`, `authenticatedUsers`, `authorizedUsers`, `authorizedGroups`
- `authorizedUsers` (list of string, optional) — A list of users and service accounts allowed to send requests to the serving endpoint. `Note:` Cannot be used together with authorizedGroups.
- `authorizedGroups` (list of string, optional) — A list of user groups allowed to send requests to the serving endpoint. `Note:` Cannot be used together with authorizedUsers.

### Toleration

Toleration details.

- `name` (string, optional, nullable) — The name of the toleration.
- `operator` (enum, optional) — A key's relationship to the value. Equal uses key and value. Exists is equivalent to wildcard for value, so that a workload can tolerate all taints of a particular category. (mandatory)
  - Allowed values: `Equal`, `Exists`
- `key` (string, optional, nullable) — The taint key that the toleration applies to. (mandatory)
- `value` (string, optional, nullable) — The taint value the toleration matches to. Mandatory if operator is Exists, forbidden otherwise.
- `effect` (enum, optional) — The taint effect to match. (mandatory)
  - Allowed values: `NoSchedule`, `NoExecute`, `PreferNoSchedule`, `Any`
- `seconds` (integer, optional, nullable) — The period of time the toleration tolerates the taint. Valid only if effect is NoExecute. taint.
- `exclude` (boolean, optional, nullable) — Use 'true' in case the label is defined in defaults of the policy, and you wish to exclude it from the workload.

### WorkloadV2UpdateConfigurationUserCredentials

User credentials to make available to the workload. Each entry references a user-created credential by name. User credentials can only be accessed by the user who created them.

- `sources` (list of WorkloadV2UpdateConfigurationUserCredentialSource, optional) — List of user credentials to make available to the workload.

### EnvironmentVariableSecret

Details of the secret and key use to populate the environment variable

- `name` (string, optional, nullable) — The name of the secret resource. (mandatory)
- `key` (string, optional, nullable) — The key in the secret resource. (mandatory)

### EnvironmentVariableConfigMap

Details of the configMap and key use to populate the environment variable

- `name` (string, optional, nullable) — The name of the config-map resource. (mandatory)
- `key` (string, optional, nullable) — The key in the config-map resource. (mandatory)

### EnvironmentVariablePodFieldReference

Details of the field-reference and key use to populate the environment variable

- `path` (string, optional, nullable) — The field path resource. (mandatory)

### EnvironmentVariableUserCredential

Defines a reference to a user-created credential and a specific key within that credential whose value will populate the environment variable. User credentials can only be accessed by the user who created them.

- `name` (string, optional, nullable) — The name of the user credential. (mandatory)
- `key` (string, optional, nullable) — The key in the user credential resource. (mandatory)

### NimCache

The specification of a NIM cache volume.

- `name` (string, optional, nullable) — The NIMCache resource name (mandatory).
- `profile` (string, optional, nullable) — The NIM profile to use (optional).

### NimServicePvcFields

- `existingPvc` (boolean, optional, nullable, default: false) — Verify existing PVC. PVC is assumed to exist when set to `true`. If set to `false`, the PVC will be created, if it does not exist.
- `claimName` (string, optional, nullable) — Name for the PVC. Allow referencing it across workloads. If not provided, a name based on the workload name and scope will be auto-generated.
- `readOnly` (boolean, optional, nullable, default: false) — Permit only read access to PVC.
- `claimInfo` (ClaimInfo, optional) — Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.

### Probe

- `initialDelaySeconds` (integer, optional, nullable) — Number of seconds after the container has started before liveness or readiness probes are initiated.
- `periodSeconds` (integer, optional, nullable) — How often (in seconds) to perform the probe.
- `timeoutSeconds` (integer, optional, nullable) — Number of seconds after which the probe times out.
- `successThreshold` (integer, optional, nullable) — Minimum consecutive successes for the probe to be considered successful after having failed.
- `failureThreshold` (integer, optional, nullable) — When a probe fails, the number of times to try before giving up.
- `handler` (ProbeHandler, optional) — The action taken to determine the health of the container. (mandatory)

### WorkloadV2UpdateConfigurationUserCredentialSource

- `ref` (string, required) — The name of the user credential.

### ClaimInfo

Claim information for the newly created PVC. The information should not be provided when attempting to use existing PVC.

- `size` (string, optional) — Requested size for the PVC. Mandatory when existingPvc is false. Recommended sizes: TB/GB/MB/TIB/GIB/MIB
- `storageClass` (string, optional, nullable) — Storage class name to associate with the PVC. This parameter may be omitted if there is a single storage class in the system, or you are using the default storage class. For more information, see [Storage class](https://kubernetes.io/docs/concepts/storage/storage-classes).
- `accessModes` (PvcAccessModes, optional) — Default access mode(s) applied to newly created PVCs unless explicitly overridden.
- `volumeMode` (enum, optional) — Default volume mode for the PVC. Choose between Filesystem (default) or Block.
  - Allowed values: `Filesystem`, `Block`
- `addedAttrValues` (list of PvcAddedAttrValue, optional) — an optional array of key-values pairs that are written as annotations on the created PVC. the allowed attributes are determined according to the storage class configuration (see k8s-objects-tracker for further info).

### ProbeHandler

The action taken to determine the health of the container. (mandatory)

- `httpGet` (ProbeHandlerHttpGet, optional) — An action based on HTTP Get requests.

### PvcAccessModes

Default access mode(s) applied to newly created PVCs unless explicitly overridden.

- `readWriteOnce` (boolean, optional, nullable, default: true) — Mount the volume as read/write by a single node.
- `readOnlyMany` (boolean, optional, nullable, default: false) — Mount the volume as read-only by many nodes.
- `readWriteMany` (boolean, optional, nullable, default: false) — Mount the volume as read/write by many nodes.

### PvcAddedAttrValue

- `key` (string, required)
- `value` (string, optional)

### ProbeHandlerHttpGet

An action based on HTTP Get requests.

- `path` (string, optional, nullable) — Path to access on the HTTP server, defaults to /.
- `port` (integer, optional, nullable) — Number of the port to access on the container.
- `host` (string, optional, nullable) — Host name to connect to, defaults to the pod IP.
- `scheme` (enum, optional) — Scheme to use for connecting to the host, defaults to HTTP.
  - Allowed values: `HTTP`, `HTTPS`

## Examples

**Response**

```json
{
  "metadata": {
    "name": "my-workload-name",
    "projectId": "1",
    "id": "string",
    "gvk": {
      "version": "v1",
      "kind": "Deployment",
      "group": "apps"
    },
    "projectName": "project-a",
    "clusterId": "71f69d83-ba66-4822-adf5-55ce55efd210",
    "tenantId": 1001,
    "departmentId": "2",
    "departmentName": "default",
    "createdAt": "2024-01-15T10:30:00Z",
    "createdBy": "user@run.ai",
    "updatedAt": "2024-01-15T10:35:00Z",
    "updatedBy": "user@run.ai",
    "priority": "string",
    "category": "string",
    "preemptibility": "preemptible",
    "configuration": {
      "mnnvl": "string",
      "userCredentials": {
        "sources": [
          {
            "ref": "my-hf-token-abc1234567"
          }
        ]
      }
    },
    "deletedAt": "2024-01-15T10:35:00Z",
    "deletedBy": "user@run.ai"
  },
  "desiredPhase": "Running",
  "spec": {
    "annotations": [
      {
        "name": "billing",
        "value": "my-billing-unit",
        "exclude": false
      }
    ],
    "autoscaling": {
      "maxReplicas": 1,
      "metric": "http_requests_total",
      "metricThreshold": 1,
      "minReplicas": 1,
      "scaleWindowSeconds": 1
    },
    "category": "string",
    "compute": {
      "cpuCoreLimit": 2,
      "cpuCoreRequest": 0.5,
      "cpuMemoryLimit": "30M",
      "cpuMemoryRequest": "20M",
      "gpuDevicesRequest": 1,
      "gpuMemoryLimit": "10M",
      "gpuMemoryRequest": "10M",
      "gpuPortionLimit": 0.5,
      "gpuPortionRequest": 0.5,
      "gpuRequestType": "portion"
    },
    "environmentVariables": [
      {
        "name": "HOME",
        "value": "/home/my-folder",
        "secret": {
          "name": "postgress_secret",
          "key": "POSTGRES_PASSWORD"
        },
        "configMap": {
          "name": "my-config-map",
          "key": "MY_POSTGRES_SCHEMA"
        },
        "podFieldRef": {
          "path": "metadata.name"
        },
        "userCredential": {
          "name": "my_postgres_user_and_password",
          "key": "POSTGRES_PASSWORD"
        },
        "exclude": false,
        "description": "Home directory of the user."
      }
    ],
    "image": "python:3.8",
    "imagePullPolicy": "Always",
    "imagePullSecrets": [
      {
        "name": "string",
        "userCredential": true,
        "exclude": false
      }
    ],
    "labels": [
      {
        "name": "stage",
        "value": "initial-research",
        "exclude": false
      }
    ],
    "modelStore": {
      "nimCache": {
        "name": "nim-cache-a",
        "profile": "tensorrt_llm-b200-fp8-tp2-pp1-latency-2901:10de-2"
      },
      "pvc": {
        "existingPvc": false,
        "claimName": "my-claim",
        "readOnly": false,
        "claimInfo": {
          "size": "1G",
          "storageClass": "my-storage-class",
          "accessModes": {
            "readWriteOnce": true,
            "readOnlyMany": false,
            "readWriteMany": false
          },
          "volumeMode": "Filesystem",
          "addedAttrValues": [
            {
              "key": "dnsname",
              "value": "my.dns.com"
            }
          ]
        }
      }
    },
    "multiNode": {
      "workers": 3
    },
    "ngcAuthSecret": "string",
    "nodePools": [
      "my-node-pool-a",
      "my-node-pool-b"
    ],
    "preemptibility": "preemptible",
    "priorityClass": "string",
    "probes": {
      "readiness": {
        "initialDelaySeconds": 1,
        "periodSeconds": 1,
        "timeoutSeconds": 1,
        "successThreshold": 1,
        "failureThreshold": 1,
        "handler": {
          "httpGet": {
            "path": "/",
            "port": 1,
            "host": "example.com",
            "scheme": "HTTP"
          }
        }
      }
    },
    "replicas": 2,
    "security": {
      "runAsGid": 30,
      "runAsUid": 500
    },
    "servingPort": {
      "serviceType": "ClusterIP",
      "port": 8000,
      "grpcPort": 8001,
      "metricsPort": 8002,
      "exposeExternally": true,
      "exposedUrl": "string",
      "exposedProtocol": "http",
      "authorizationType": "public",
      "authorizedUsers": [
        "user.a@example.com",
        "user.b@example.com"
      ],
      "authorizedGroups": [
        "group-a",
        "group-b"
      ]
    },
    "tolerations": [
      {
        "name": "string",
        "operator": "Equal",
        "key": "string",
        "value": "string",
        "effect": "NoSchedule",
        "seconds": 1,
        "exclude": false
      }
    ]
  }
}
```

**SDK Code**

```python
import requests

url = "http://localhost:8080/api/v2/workloads/nim-services/WorkloadV2Id"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'http://localhost:8080/api/v2/workloads/nim-services/WorkloadV2Id';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "http://localhost:8080/api/v2/workloads/nim-services/WorkloadV2Id"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("http://localhost:8080/api/v2/workloads/nim-services/WorkloadV2Id")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("http://localhost:8080/api/v2/workloads/nim-services/WorkloadV2Id")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'http://localhost:8080/api/v2/workloads/nim-services/WorkloadV2Id', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("http://localhost:8080/api/v2/workloads/nim-services/WorkloadV2Id");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "http://localhost:8080/api/v2/workloads/nim-services/WorkloadV2Id")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```