1. Registry
  2. Packages
  3. DataRobot
  4. API Docs
  5. Workload
Viewing docs for DataRobot v0.12.6
published on Wednesday, Oct 7, 2026 by DataRobot, Inc.
datarobot logo
Viewing docs for DataRobot v0.12.6
published on Wednesday, Oct 7, 2026 by DataRobot, Inc.

    A Workload runs a containerized artifact in the cluster and exposes an inference endpoint.

    Changes to artifactId or runtime trigger an in-place workload replacement via the Workload API. The workload ID and endpoint remain stable across artifact and runtime updates.

    When the new version never becomes ready, the platform abandons the rollout: it stops the new replica and the previous version keeps serving. Apply fails in that case, naming the artifact the workload is still on and linking its logs, so a rollout that did not happen is not reported as a successful update.

    Enclave placement

    On clusters with Enclaves enabled, a workload can be confined to an Enclave. Placement is governed by a Use Case: the platform restricts a workload to the Enclaves an administrator has granted to its Use Case, which is why useCaseId is required for any placed workload.

    Asking for an Enclave is opt-in. useCaseId on its own links the workload to the Use Case and nothing more, so it is safe to set on clusters and organizations without Enclaves.

    ConfigurationWhere the workload runs
    neither useCaseId nor any runtime.enclave_* attributeOutside any Enclave
    useCaseId onlyLinked to the Use Case, outside any Enclave. Refused at create (ENCLAVE_TARGETING_REQUIRED) when the Use Case has Enclaves granted, so set a policy there; older platform versions refuse it on any organization with Enclaves
    useCaseId + runtime.enclave_selection_policy = "availability"Any Enclave granted to that Use Case, chosen by the scheduler
    useCaseId + runtime.enclavesPinned to the named Enclave (enclaveSelectionPolicy is sent as manual)
    import * as pulumi from "@pulumi/pulumi";
    import * as datarobot from "@datarobot/pulumi-datarobot";
    
    const agent = new datarobot.Workload("agent", {
        name: "finance-agent",
        artifactId: agentDatarobotArtifact.artifactId,
        useCaseId: finance.id,
        runtime: {
            enclaves: ["finance-enclave"],
            containerGroups: [{
                replicaCount: 1,
                resourceBundles: ["cpu.small"],
            }],
        },
    });
    
    import pulumi
    import pulumi_datarobot as datarobot
    
    agent = datarobot.Workload("agent",
        name="finance-agent",
        artifact_id=agent_datarobot_artifact["artifactId"],
        use_case_id=finance["id"],
        runtime={
            "enclaves": ["finance-enclave"],
            "container_groups": [{
                "replica_count": 1,
                "resource_bundles": ["cpu.small"],
            }],
        })
    
    package main
    
    import (
    	"github.com/datarobot-community/pulumi-datarobot/sdk/go/datarobot"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := datarobot.NewWorkload(ctx, "agent", &datarobot.WorkloadArgs{
    			Name:       pulumi.String("finance-agent"),
    			ArtifactId: pulumi.Any(agentDatarobotArtifact.ArtifactId),
    			UseCaseId:  pulumi.Any(finance.Id),
    			Runtime: &datarobot.WorkloadRuntimeArgs{
    				Enclaves: pulumi.StringArray{
    					pulumi.String("finance-enclave"),
    				},
    				ContainerGroups: datarobot.WorkloadRuntimeContainerGroupArray{
    					&datarobot.WorkloadRuntimeContainerGroupArgs{
    						ReplicaCount: pulumi.Int(1),
    						ResourceBundles: pulumi.StringArray{
    							pulumi.String("cpu.small"),
    						},
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Datarobot = DataRobotPulumi.Datarobot;
    
    return await Deployment.RunAsync(() => 
    {
        var agent = new Datarobot.Workload("agent", new()
        {
            Name = "finance-agent",
            ArtifactId = agentDatarobotArtifact.ArtifactId,
            UseCaseId = finance.Id,
            Runtime = new Datarobot.Inputs.WorkloadRuntimeArgs
            {
                Enclaves = new[]
                {
                    "finance-enclave",
                },
                ContainerGroups = new[]
                {
                    new Datarobot.Inputs.WorkloadRuntimeContainerGroupArgs
                    {
                        ReplicaCount = 1,
                        ResourceBundles = new[]
                        {
                            "cpu.small",
                        },
                    },
                },
            },
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.datarobot.Workload;
    import com.pulumi.datarobot.WorkloadArgs;
    import com.pulumi.datarobot.inputs.WorkloadRuntimeArgs;
    import com.pulumi.datarobot.inputs.WorkloadRuntimeContainerGroupArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var agent = new Workload("agent", WorkloadArgs.builder()
                .name("finance-agent")
                .artifactId(agentDatarobotArtifact.artifactId())
                .useCaseId(finance.id())
                .runtime(WorkloadRuntimeArgs.builder()
                    .enclaves("finance-enclave")
                    .containerGroups(WorkloadRuntimeContainerGroupArgs.builder()
                        .replicaCount(1)
                        .resourceBundles("cpu.small")
                        .build())
                    .build())
                .build());
    
        }
    }
    
    resources:
      agent:
        type: datarobot:Workload
        properties:
          name: finance-agent
          artifactId: ${agentDatarobotArtifact.artifactId}
          useCaseId: ${finance.id}
          runtime:
            enclaves:
              - finance-enclave
            containerGroups:
              - replicaCount: 1
                resourceBundles:
                  - cpu.small
    
    pulumi {
      required_providers {
        datarobot = {
          source = "pulumi/datarobot"
        }
      }
    }
    
    resource "datarobot_workload" "agent" {
      name        = "finance-agent"
      artifact_id = agentDatarobotArtifact.artifactId
      use_case_id = finance.id
      runtime = {
        enclaves = ["finance-enclave"]
        container_groups = [{
          "replicaCount"    = 1
          "resourceBundles" = ["cpu.small"]
        }]
      }
    }
    

    Naming an enclaves entry fills in enclaveSelectionPolicy = "manual" for you, since the platform accepts a pin only with that policy; the derived value stays out of state, so your configuration and your state agree. Setting the policy explicitly is always accepted: availability to let the scheduler choose, manual to pin. manual additionally requires the CAN_OVERRIDE_WORKLOAD_PLACEMENT permission.

    Only one Enclave is accepted today. enclaves is a list because the platform intends to support several later.

    Changing placement

    enclaveSelectionPolicy and enclaves are updated in place, like the rest of runtime. The change goes through PATCH /workloads/{id}/settings, or rides along with POST /workloads/{id}/replacement when artifactId changes in the same apply; the platform rolls a new version out and the workload keeps its ID. Whenever placement changes, the provider writes both enclaveSelectionPolicy and enclaves explicitly (a removed pin as an empty list), because on these endpoints omitting both fields means “keep the current placement” (which is what keeps a replica-only update from unplacing an Enclave workload). What the platform does with the recorded intent is up to the platform. It gates the change the same way it gates a create (Enclaves available, the Use Case granted at least one, the override permission for a pin) and refuses it with a 422 before anything rolls, so a refused change leaves the running workload untouched.

    Moving a workload that runs outside any Enclave onto one does not reliably work in place. The platform accepts the update, but where it cannot place the new version next to the running one it fails the rollout (no recorded placement; cannot co-locate candidate proton), so the apply fails and the workload keeps serving outside the Enclave. Replace the workload instead, for example with pulumi up -replace=datarobot_workload.<name>; set lifecycle { createBeforeDestroy = true } first to keep it serving until the new one runs.

    The endpoint is served from the Enclave the workload runs on, so it is planned as (known after apply) whenever placement changes and re-read after the rollout. It is unchanged when the workload stays on the same Enclave. Whether a move between two Enclaves keeps it is up to the platform and has not been confirmed: no development cluster has more than one Enclave yet.

    A workload that runs on an Enclave cannot leave it in place. The platform keeps a placed workload on an Enclave, so that restarts and rollouts keep its endpoint, and refuses to clear its placement (422 ENCLAVE_POLICY_REQUIRED; older platform versions accept the request and never act on it). The provider refuses the same change at plan time, before anything is applied: while useCaseId stays the same, removing enclaveSelectionPolicy, or removing enclaves without setting a policy, fails the plan with Cannot move a Workload off its Enclave in place. What works instead:

    GoalChangeResult
    Let the scheduler choose among the Use Case’s EnclavesenclaveSelectionPolicy = "availability", no enclavesIn place. A pin is dropped and the workload stays where it runs
    Move to another Enclave the Use Case grantsenclaves = ["<other-enclave>"]In place. The rollout schedules the new version onto that Enclave
    Run outside any EnclaveRemove useCaseId together with the policy and enclavesReplaced: new ID and endpoint
    Run under another Use CaseChange useCaseId and keep the placementIn place. The link moves and the workload stays where it runs

    Replacing the workload while keeping useCaseId is not an alternative: the create refuses a Use Case link without a policy when the Use Case has Enclaves (ENCLAVE_TARGETING_REQUIRED), which it does for a workload placed on one of them, and Terraform destroys first, so nothing would be left.

    Changing useCaseId on its own is also an in-place update: the provider links the workload to the new Use Case, then unlinks it from the old one, and the workload keeps its ID and endpoint. If the workload is already linked to the new Use Case, the provider only unlinks the old one: linking again would make the platform store a second link record, which a later unlink would not fully remove. A workload on an Enclave stays there, since the platform does not move a placed workload when its Use Case changes, and it checks that Enclave against the workload’s Use Cases on every restart and rollout. If the new Use Case does not grant the Enclave, the change applies, but the platform refuses the workload’s next rollout until the Enclave is granted to that Use Case or useCaseId changes back. The workload keeps serving meanwhile.

    Changed together with the placement, useCaseId still replaces the workload, a destroy and create with a new workload ID and a new endpoint. That includes removing it together with the placement to run outside any Enclave. Terraform destroys before it creates, so if the create is then refused (the new Use Case has no Enclave granted, or it has Enclaves and the configuration names no policy) the old workload is already gone. Set lifecycle { createBeforeDestroy = true } on a workload that serves traffic. That works because workload names are not unique: two workloads briefly share the name while the new one comes up. Pulumi creates the replacement before it deletes the original by default, so a failed create there leaves the original running.

    A workload whose policy was removed with provider 0.12.4, before this check existed, has no policy in state and keeps running on its Enclave. Its configuration plans no change, but it cannot be created from scratch while its Use Case has Enclaves, since the create then refuses a Use Case link without a policy. Set enclaveSelectionPolicy = "availability" again to make the configuration describe where it runs; that is an in-place update.

    None of the three is refreshed from the platform:

    • useCaseId is not refreshed. The link lives outside the workload entity, so a link changed outside Terraform is invisible to the plan. Import does read it from the workload’s Use Case links: a workload linked to exactly one Use Case is imported with that ID, so its real useCaseId plans no change, and a configuration that leaves it out plans removing the link, which for a workload on an Enclave is a replacement.
    • A workload linked to several Use Cases is imported with useCaseId empty and a warning that names them, and so is one imported by a provider version that did not read the link. Set it to the one Terraform should manage: the provider records that existing link without linking the workload again, the others stay linked, and it is an in-place update even together with a placement change. If it names a Use Case the workload is not linked to, the provider links it and warns that the other links stay. Until it is set, removing the placement of such a workload is refused at plan.
    • enclaveSelectionPolicy and enclaves are stripped from API responses on clusters without the Enclave entitlement, so the provider keeps your configured values in state rather than reading them back. A placement changed outside Terraform is not detected; enclaves is desired state the platform never rewrites, so that only happens if someone edits the workload by hand.

    After an import, attributes the API returns in another form, or that the configuration leaves to the platform, can still plan a one-time update: memory and gpuMemory come back in bytes, replacementPolicy is not returned, containerGroups and autoscaling left out of the configuration are imported as the platform reports them, and a workload pinned with enclaves alone is imported with the manual policy that the pin implies. All but the last roll the workload out again.

    Apply duration

    Replacement is asynchronous. The provider polls the workload until the rollout completes or errors, which takes as long as the platform needs to start the new version, plus warmupMinutes.

    When artifactId changes on a workload served through the prediction gateway, which is any workload not placed on an Enclave, the provider then waits until requests reach the new version. The platform switches the workload to the new version when it promotes it, but the gateway caches each workload’s route, for five minutes by default, and keeps sending requests to the previous version until the cached route expires. The provider waits until five minutes after the switch, so Apply complete! means requests reach the version you declared, and a test run right after pulumi up exercises it. This adds up to five minutes to such an apply. Nothing is added for an Enclave-placed workload, which is reached directly rather than through the gateway, nor for a change that keeps the artifact (replicas, resource bundles, placement), since both versions run the same code. The provider recognizes an Enclave-placed workload from the placements the platform reports, or from enclaveSelectionPolicy or enclaves in the configuration. keepOldVersionMinutes changes none of this.

    If your cluster’s gateway caches routes for another duration (PREDICTIONS_GATEWAY_TTL_CACHE_SEC), set the environment variable DATAROBOT_WORKLOAD_GATEWAY_ROUTE_TTL to that duration, for example 2m, before running Terraform or Pulumi. Set it to 0 to skip the wait, accepting that requests may reach the previous version for a while after the apply.

    If the apply is interrupted during that wait, the rollout has already succeeded: the provider records it and warns that the previous version may still answer requests until the cached route expires. If the new version stops after it was promoted, the apply fails, and state still records the artifact the workload now runs.

    If apply is interrupted mid-replacement, run pulumi up again — refresh reads the current replacement status and the provider reconciles.

    Create Workload Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Workload(name: string, args: WorkloadArgs, opts?: CustomResourceOptions);
    @overload
    def Workload(resource_name: str,
                 args: WorkloadArgs,
                 opts: Optional[ResourceOptions] = None)
    
    @overload
    def Workload(resource_name: str,
                 opts: Optional[ResourceOptions] = None,
                 artifact_id: Optional[str] = None,
                 runtime: Optional[WorkloadRuntimeArgs] = None,
                 description: Optional[str] = None,
                 importance: Optional[str] = None,
                 name: Optional[str] = None,
                 use_case_id: Optional[str] = None)
    func NewWorkload(ctx *Context, name string, args WorkloadArgs, opts ...ResourceOption) (*Workload, error)
    public Workload(string name, WorkloadArgs args, CustomResourceOptions? opts = null)
    public Workload(String name, WorkloadArgs args)
    public Workload(String name, WorkloadArgs args, CustomResourceOptions options)
    
    type: datarobot:Workload
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "datarobot_workload" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args WorkloadArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args WorkloadArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args WorkloadArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args WorkloadArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args WorkloadArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var workloadResource = new Datarobot.Workload("workloadResource", new()
    {
        ArtifactId = "string",
        Runtime = new Datarobot.Inputs.WorkloadRuntimeArgs
        {
            ContainerGroups = new[]
            {
                new Datarobot.Inputs.WorkloadRuntimeContainerGroupArgs
                {
                    Autoscaling = new Datarobot.Inputs.WorkloadRuntimeContainerGroupAutoscalingArgs
                    {
                        Policies = new[]
                        {
                            new Datarobot.Inputs.WorkloadRuntimeContainerGroupAutoscalingPolicyArgs
                            {
                                ScalingMetric = "string",
                                Target = 0.0,
                            },
                        },
                        Enabled = false,
                        MaxReplicaCount = 0,
                        MinReplicaCount = 0,
                    },
                    BundleSelectionPolicy = "string",
                    Containers = new[]
                    {
                        new Datarobot.Inputs.WorkloadRuntimeContainerGroupContainerArgs
                        {
                            Name = "string",
                            ResourceAllocation = new Datarobot.Inputs.WorkloadRuntimeContainerGroupContainerResourceAllocationArgs
                            {
                                Cpu = 0.0,
                                Gpu = 0.0,
                                GpuMemory = "string",
                                Memory = "string",
                            },
                        },
                    },
                    Name = "string",
                    ReplicaCount = 0,
                    ResourceBundles = new[]
                    {
                        "string",
                    },
                },
            },
            EnclaveSelectionPolicy = "string",
            Enclaves = new[]
            {
                "string",
            },
            ReplacementPolicy = new Datarobot.Inputs.WorkloadRuntimeReplacementPolicyArgs
            {
                KeepOldVersionMinutes = 0,
                WarmupMinutes = 0,
            },
        },
        Description = "string",
        Importance = "string",
        Name = "string",
        UseCaseId = "string",
    });
    
    example, err := datarobot.NewWorkload(ctx, "workloadResource", &datarobot.WorkloadArgs{
    	ArtifactId: pulumi.String("string"),
    	Runtime: &datarobot.WorkloadRuntimeArgs{
    		ContainerGroups: datarobot.WorkloadRuntimeContainerGroupArray{
    			&datarobot.WorkloadRuntimeContainerGroupArgs{
    				Autoscaling: &datarobot.WorkloadRuntimeContainerGroupAutoscalingArgs{
    					Policies: datarobot.WorkloadRuntimeContainerGroupAutoscalingPolicyArray{
    						&datarobot.WorkloadRuntimeContainerGroupAutoscalingPolicyArgs{
    							ScalingMetric: pulumi.String("string"),
    							Target:        pulumi.Float64(0),
    						},
    					},
    					Enabled:         pulumi.Bool(false),
    					MaxReplicaCount: pulumi.Int(0),
    					MinReplicaCount: pulumi.Int(0),
    				},
    				BundleSelectionPolicy: pulumi.String("string"),
    				Containers: datarobot.WorkloadRuntimeContainerGroupContainerArray{
    					&datarobot.WorkloadRuntimeContainerGroupContainerArgs{
    						Name: pulumi.String("string"),
    						ResourceAllocation: &datarobot.WorkloadRuntimeContainerGroupContainerResourceAllocationArgs{
    							Cpu:       pulumi.Float64(0),
    							Gpu:       pulumi.Float64(0),
    							GpuMemory: pulumi.String("string"),
    							Memory:    pulumi.String("string"),
    						},
    					},
    				},
    				Name:         pulumi.String("string"),
    				ReplicaCount: pulumi.Int(0),
    				ResourceBundles: pulumi.StringArray{
    					pulumi.String("string"),
    				},
    			},
    		},
    		EnclaveSelectionPolicy: pulumi.String("string"),
    		Enclaves: pulumi.StringArray{
    			pulumi.String("string"),
    		},
    		ReplacementPolicy: &datarobot.WorkloadRuntimeReplacementPolicyArgs{
    			KeepOldVersionMinutes: pulumi.Int(0),
    			WarmupMinutes:         pulumi.Int(0),
    		},
    	},
    	Description: pulumi.String("string"),
    	Importance:  pulumi.String("string"),
    	Name:        pulumi.String("string"),
    	UseCaseId:   pulumi.String("string"),
    })
    
    resource "datarobot_workload" "workloadResource" {
      lifecycle {
        create_before_destroy = true
      }
      artifact_id = "string"
      runtime = {
        container_groups = [{
          autoscaling = {
            policies = [{
              scaling_metric = "string"
              target         = 0
            }]
            enabled           = false
            max_replica_count = 0
            min_replica_count = 0
          }
          bundle_selection_policy = "string"
          containers = [{
            name = "string"
            resource_allocation = {
              cpu        = 0
              gpu        = 0
              gpu_memory = "string"
              memory     = "string"
            }
          }]
          name             = "string"
          replica_count    = 0
          resource_bundles = ["string"]
        }]
        enclave_selection_policy = "string"
        enclaves                 = ["string"]
        replacement_policy = {
          keep_old_version_minutes = 0
          warmup_minutes           = 0
        }
      }
      description = "string"
      importance  = "string"
      name        = "string"
      use_case_id = "string"
    }
    
    var workloadResource = new Workload("workloadResource", WorkloadArgs.builder()
        .artifactId("string")
        .runtime(WorkloadRuntimeArgs.builder()
            .containerGroups(WorkloadRuntimeContainerGroupArgs.builder()
                .autoscaling(WorkloadRuntimeContainerGroupAutoscalingArgs.builder()
                    .policies(WorkloadRuntimeContainerGroupAutoscalingPolicyArgs.builder()
                        .scalingMetric("string")
                        .target(0.0)
                        .build())
                    .enabled(false)
                    .maxReplicaCount(0)
                    .minReplicaCount(0)
                    .build())
                .bundleSelectionPolicy("string")
                .containers(WorkloadRuntimeContainerGroupContainerArgs.builder()
                    .name("string")
                    .resourceAllocation(WorkloadRuntimeContainerGroupContainerResourceAllocationArgs.builder()
                        .cpu(0.0)
                        .gpu(0.0)
                        .gpuMemory("string")
                        .memory("string")
                        .build())
                    .build())
                .name("string")
                .replicaCount(0)
                .resourceBundles("string")
                .build())
            .enclaveSelectionPolicy("string")
            .enclaves("string")
            .replacementPolicy(WorkloadRuntimeReplacementPolicyArgs.builder()
                .keepOldVersionMinutes(0)
                .warmupMinutes(0)
                .build())
            .build())
        .description("string")
        .importance("string")
        .name("string")
        .useCaseId("string")
        .build());
    
    workload_resource = datarobot.Workload("workloadResource",
        artifact_id="string",
        runtime={
            "container_groups": [{
                "autoscaling": {
                    "policies": [{
                        "scaling_metric": "string",
                        "target": float(0),
                    }],
                    "enabled": False,
                    "max_replica_count": 0,
                    "min_replica_count": 0,
                },
                "bundle_selection_policy": "string",
                "containers": [{
                    "name": "string",
                    "resource_allocation": {
                        "cpu": float(0),
                        "gpu": float(0),
                        "gpu_memory": "string",
                        "memory": "string",
                    },
                }],
                "name": "string",
                "replica_count": 0,
                "resource_bundles": ["string"],
            }],
            "enclave_selection_policy": "string",
            "enclaves": ["string"],
            "replacement_policy": {
                "keep_old_version_minutes": 0,
                "warmup_minutes": 0,
            },
        },
        description="string",
        importance="string",
        name="string",
        use_case_id="string")
    
    const workloadResource = new datarobot.Workload("workloadResource", {
        artifactId: "string",
        runtime: {
            containerGroups: [{
                autoscaling: {
                    policies: [{
                        scalingMetric: "string",
                        target: 0,
                    }],
                    enabled: false,
                    maxReplicaCount: 0,
                    minReplicaCount: 0,
                },
                bundleSelectionPolicy: "string",
                containers: [{
                    name: "string",
                    resourceAllocation: {
                        cpu: 0,
                        gpu: 0,
                        gpuMemory: "string",
                        memory: "string",
                    },
                }],
                name: "string",
                replicaCount: 0,
                resourceBundles: ["string"],
            }],
            enclaveSelectionPolicy: "string",
            enclaves: ["string"],
            replacementPolicy: {
                keepOldVersionMinutes: 0,
                warmupMinutes: 0,
            },
        },
        description: "string",
        importance: "string",
        name: "string",
        useCaseId: "string",
    });
    
    type: datarobot:Workload
    properties:
        artifactId: string
        description: string
        importance: string
        name: string
        runtime:
            containerGroups:
                - autoscaling:
                    enabled: false
                    maxReplicaCount: 0
                    minReplicaCount: 0
                    policies:
                        - scalingMetric: string
                          target: 0
                  bundleSelectionPolicy: string
                  containers:
                    - name: string
                      resourceAllocation:
                        cpu: 0
                        gpu: 0
                        gpuMemory: string
                        memory: string
                  name: string
                  replicaCount: 0
                  resourceBundles:
                    - string
            enclaveSelectionPolicy: string
            enclaves:
                - string
            replacementPolicy:
                keepOldVersionMinutes: 0
                warmupMinutes: 0
        useCaseId: string
    

    Workload Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The Workload resource accepts the following input properties:

    ArtifactId string
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    Runtime DataRobotWorkloadRuntime
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    Description string
    A human-readable description of the Workload.
    Importance string
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    Name string
    The name of the Workload.
    UseCaseId string
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.
    ArtifactId string
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    Runtime WorkloadRuntimeArgs
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    Description string
    A human-readable description of the Workload.
    Importance string
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    Name string
    The name of the Workload.
    UseCaseId string
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.
    artifact_id string
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    runtime object
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    description string
    A human-readable description of the Workload.
    importance string
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    name string
    The name of the Workload.
    use_case_id string
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.
    artifactId String
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    runtime WorkloadRuntime
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    description String
    A human-readable description of the Workload.
    importance String
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    name String
    The name of the Workload.
    useCaseId String
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.
    artifactId string
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    runtime WorkloadRuntime
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    description string
    A human-readable description of the Workload.
    importance string
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    name string
    The name of the Workload.
    useCaseId string
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.
    artifact_id str
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    runtime WorkloadRuntimeArgs
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    description str
    A human-readable description of the Workload.
    importance str
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    name str
    The name of the Workload.
    use_case_id str
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.
    artifactId String
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    runtime Property Map
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    description String
    A human-readable description of the Workload.
    importance String
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    name String
    The name of the Workload.
    useCaseId String
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Workload resource produces the following output properties:

    Endpoint string
    The inference endpoint URL for the Workload.
    Id string
    The provider-assigned unique ID for this managed resource.
    Status string
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    Type string
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    Endpoint string
    The inference endpoint URL for the Workload.
    Id string
    The provider-assigned unique ID for this managed resource.
    Status string
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    Type string
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    endpoint string
    The inference endpoint URL for the Workload.
    id string
    The provider-assigned unique ID for this managed resource.
    status string
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    type string
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    endpoint String
    The inference endpoint URL for the Workload.
    id String
    The provider-assigned unique ID for this managed resource.
    status String
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    type String
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    endpoint string
    The inference endpoint URL for the Workload.
    id string
    The provider-assigned unique ID for this managed resource.
    status string
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    type string
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    endpoint str
    The inference endpoint URL for the Workload.
    id str
    The provider-assigned unique ID for this managed resource.
    status str
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    type str
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    endpoint String
    The inference endpoint URL for the Workload.
    id String
    The provider-assigned unique ID for this managed resource.
    status String
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    type String
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.

    Look up Existing Workload Resource

    Get an existing Workload resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: WorkloadState, opts?: CustomResourceOptions): Workload
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            artifact_id: Optional[str] = None,
            description: Optional[str] = None,
            endpoint: Optional[str] = None,
            importance: Optional[str] = None,
            name: Optional[str] = None,
            runtime: Optional[WorkloadRuntimeArgs] = None,
            status: Optional[str] = None,
            type: Optional[str] = None,
            use_case_id: Optional[str] = None) -> Workload
    func GetWorkload(ctx *Context, name string, id IDInput, state *WorkloadState, opts ...ResourceOption) (*Workload, error)
    public static Workload Get(string name, Input<string> id, WorkloadState? state, CustomResourceOptions? opts = null)
    public static Workload get(String name, Output<String> id, WorkloadState state, CustomResourceOptions options)
    resources:  _:    type: datarobot:Workload    get:      id: ${id}
    import {
      to = datarobot_workload.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    ArtifactId string
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    Description string
    A human-readable description of the Workload.
    Endpoint string
    The inference endpoint URL for the Workload.
    Importance string
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    Name string
    The name of the Workload.
    Runtime DataRobotWorkloadRuntime
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    Status string
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    Type string
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    UseCaseId string
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.
    ArtifactId string
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    Description string
    A human-readable description of the Workload.
    Endpoint string
    The inference endpoint URL for the Workload.
    Importance string
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    Name string
    The name of the Workload.
    Runtime WorkloadRuntimeArgs
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    Status string
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    Type string
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    UseCaseId string
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.
    artifact_id string
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    description string
    A human-readable description of the Workload.
    endpoint string
    The inference endpoint URL for the Workload.
    importance string
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    name string
    The name of the Workload.
    runtime object
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    status string
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    type string
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    use_case_id string
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.
    artifactId String
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    description String
    A human-readable description of the Workload.
    endpoint String
    The inference endpoint URL for the Workload.
    importance String
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    name String
    The name of the Workload.
    runtime WorkloadRuntime
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    status String
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    type String
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    useCaseId String
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.
    artifactId string
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    description string
    A human-readable description of the Workload.
    endpoint string
    The inference endpoint URL for the Workload.
    importance string
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    name string
    The name of the Workload.
    runtime WorkloadRuntime
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    status string
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    type string
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    useCaseId string
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.
    artifact_id str
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    description str
    A human-readable description of the Workload.
    endpoint str
    The inference endpoint URL for the Workload.
    importance str
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    name str
    The name of the Workload.
    runtime WorkloadRuntimeArgs
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    status str
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    type str
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    use_case_id str
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.
    artifactId String
    ID of the Artifact version to deploy. When using datarobot.Artifact, reference datarobot_artifact.<name>.artifact_id (not .id). Changing this value triggers an in-place workload replacement.
    description String
    A human-readable description of the Workload.
    endpoint String
    The inference endpoint URL for the Workload.
    importance String
    Priority level for the Workload: critical, high, moderate, or low. Defaults to low.
    name String
    The name of the Workload.
    runtime Property Map
    Runtime configuration for the Workload. Changes trigger an in-place workload replacement.
    status String
    Current status of the Workload: unknown, submitted, initializing, running, stopping, stopped, or errored.
    type String
    Artifact type mirrored by this workload: service, nim, agent, or mcp. Set from the deployed artifact; not user-configurable.
    useCaseId String
    The Use Case to link this Workload to, which groups it with the Use Case's other assets. Setting it alone has no effect on placement. It is additionally required when runtime.enclave_selection_policy or runtime.enclaves is set, because Enclave placement is restricted to the Enclaves an administrator has granted to this Use Case.

    Supporting Types

    WorkloadRuntime, WorkloadRuntimeArgs

    ContainerGroups List<DataRobotWorkloadRuntimeContainerGroup>
    Per-group runtime configuration.
    EnclaveSelectionPolicy string
    How the scheduler chooses an Enclave: availability to let it pick any Enclave the Workload is eligible for, or manual to pin the Workload to the Enclave named in enclaves. Omit it to run outside any Enclave, which is the default: setting useCaseId on its own does not request one. Both values require useCaseId; manual additionally requires the CAN_OVERRIDE_WORKLOAD_PLACEMENT permission, and is assumed when enclaves names one.
    Enclaves List<string>

    Name of the Enclave to pin this Workload to. Exactly one entry is accepted today; the list shape is forward-compatible with running on several Enclaves. Requires useCaseId, and only applies with enclaveSelectionPolicy = "manual", which is assumed when this is set and no policy is given. The named Enclave must be granted to the Use Case and the caller must hold deploy access to it.

    This is desired state that the platform never rewrites; where the Workload actually runs is reported by the platform, not by this attribute. Changing it updates the running Workload in place through a rolling replacement, keeping its ID; the new pin is recorded on the platform and the endpoint is re-read afterwards. Adding it to a Workload that runs outside any Enclave has the same limitation as adding a policy. Removing it without setting enclaveSelectionPolicy is refused at plan time, like removing the policy.

    ReplacementPolicy DataRobotWorkloadRuntimeReplacementPolicy
    Replacement policy for in-place workload replacement (rolling strategy). Applied when artifactId changes or when replacement policy settings change. Runtime-only changes use PATCH /workloads/{id}/settings, which does not accept custom replacement timing (WAPI uses platform defaults).
    ContainerGroups []WorkloadRuntimeContainerGroup
    Per-group runtime configuration.
    EnclaveSelectionPolicy string
    How the scheduler chooses an Enclave: availability to let it pick any Enclave the Workload is eligible for, or manual to pin the Workload to the Enclave named in enclaves. Omit it to run outside any Enclave, which is the default: setting useCaseId on its own does not request one. Both values require useCaseId; manual additionally requires the CAN_OVERRIDE_WORKLOAD_PLACEMENT permission, and is assumed when enclaves names one.
    Enclaves []string

    Name of the Enclave to pin this Workload to. Exactly one entry is accepted today; the list shape is forward-compatible with running on several Enclaves. Requires useCaseId, and only applies with enclaveSelectionPolicy = "manual", which is assumed when this is set and no policy is given. The named Enclave must be granted to the Use Case and the caller must hold deploy access to it.

    This is desired state that the platform never rewrites; where the Workload actually runs is reported by the platform, not by this attribute. Changing it updates the running Workload in place through a rolling replacement, keeping its ID; the new pin is recorded on the platform and the endpoint is re-read afterwards. Adding it to a Workload that runs outside any Enclave has the same limitation as adding a policy. Removing it without setting enclaveSelectionPolicy is refused at plan time, like removing the policy.

    ReplacementPolicy WorkloadRuntimeReplacementPolicy
    Replacement policy for in-place workload replacement (rolling strategy). Applied when artifactId changes or when replacement policy settings change. Runtime-only changes use PATCH /workloads/{id}/settings, which does not accept custom replacement timing (WAPI uses platform defaults).
    container_groups list(object)
    Per-group runtime configuration.
    enclave_selection_policy string
    How the scheduler chooses an Enclave: availability to let it pick any Enclave the Workload is eligible for, or manual to pin the Workload to the Enclave named in enclaves. Omit it to run outside any Enclave, which is the default: setting useCaseId on its own does not request one. Both values require useCaseId; manual additionally requires the CAN_OVERRIDE_WORKLOAD_PLACEMENT permission, and is assumed when enclaves names one.
    enclaves list(string)

    Name of the Enclave to pin this Workload to. Exactly one entry is accepted today; the list shape is forward-compatible with running on several Enclaves. Requires useCaseId, and only applies with enclaveSelectionPolicy = "manual", which is assumed when this is set and no policy is given. The named Enclave must be granted to the Use Case and the caller must hold deploy access to it.

    This is desired state that the platform never rewrites; where the Workload actually runs is reported by the platform, not by this attribute. Changing it updates the running Workload in place through a rolling replacement, keeping its ID; the new pin is recorded on the platform and the endpoint is re-read afterwards. Adding it to a Workload that runs outside any Enclave has the same limitation as adding a policy. Removing it without setting enclaveSelectionPolicy is refused at plan time, like removing the policy.

    replacement_policy object
    Replacement policy for in-place workload replacement (rolling strategy). Applied when artifactId changes or when replacement policy settings change. Runtime-only changes use PATCH /workloads/{id}/settings, which does not accept custom replacement timing (WAPI uses platform defaults).
    containerGroups List<WorkloadRuntimeContainerGroup>
    Per-group runtime configuration.
    enclaveSelectionPolicy String
    How the scheduler chooses an Enclave: availability to let it pick any Enclave the Workload is eligible for, or manual to pin the Workload to the Enclave named in enclaves. Omit it to run outside any Enclave, which is the default: setting useCaseId on its own does not request one. Both values require useCaseId; manual additionally requires the CAN_OVERRIDE_WORKLOAD_PLACEMENT permission, and is assumed when enclaves names one.
    enclaves List<String>

    Name of the Enclave to pin this Workload to. Exactly one entry is accepted today; the list shape is forward-compatible with running on several Enclaves. Requires useCaseId, and only applies with enclaveSelectionPolicy = "manual", which is assumed when this is set and no policy is given. The named Enclave must be granted to the Use Case and the caller must hold deploy access to it.

    This is desired state that the platform never rewrites; where the Workload actually runs is reported by the platform, not by this attribute. Changing it updates the running Workload in place through a rolling replacement, keeping its ID; the new pin is recorded on the platform and the endpoint is re-read afterwards. Adding it to a Workload that runs outside any Enclave has the same limitation as adding a policy. Removing it without setting enclaveSelectionPolicy is refused at plan time, like removing the policy.

    replacementPolicy WorkloadRuntimeReplacementPolicy
    Replacement policy for in-place workload replacement (rolling strategy). Applied when artifactId changes or when replacement policy settings change. Runtime-only changes use PATCH /workloads/{id}/settings, which does not accept custom replacement timing (WAPI uses platform defaults).
    containerGroups WorkloadRuntimeContainerGroup[]
    Per-group runtime configuration.
    enclaveSelectionPolicy string
    How the scheduler chooses an Enclave: availability to let it pick any Enclave the Workload is eligible for, or manual to pin the Workload to the Enclave named in enclaves. Omit it to run outside any Enclave, which is the default: setting useCaseId on its own does not request one. Both values require useCaseId; manual additionally requires the CAN_OVERRIDE_WORKLOAD_PLACEMENT permission, and is assumed when enclaves names one.
    enclaves string[]

    Name of the Enclave to pin this Workload to. Exactly one entry is accepted today; the list shape is forward-compatible with running on several Enclaves. Requires useCaseId, and only applies with enclaveSelectionPolicy = "manual", which is assumed when this is set and no policy is given. The named Enclave must be granted to the Use Case and the caller must hold deploy access to it.

    This is desired state that the platform never rewrites; where the Workload actually runs is reported by the platform, not by this attribute. Changing it updates the running Workload in place through a rolling replacement, keeping its ID; the new pin is recorded on the platform and the endpoint is re-read afterwards. Adding it to a Workload that runs outside any Enclave has the same limitation as adding a policy. Removing it without setting enclaveSelectionPolicy is refused at plan time, like removing the policy.

    replacementPolicy WorkloadRuntimeReplacementPolicy
    Replacement policy for in-place workload replacement (rolling strategy). Applied when artifactId changes or when replacement policy settings change. Runtime-only changes use PATCH /workloads/{id}/settings, which does not accept custom replacement timing (WAPI uses platform defaults).
    container_groups Sequence[WorkloadRuntimeContainerGroup]
    Per-group runtime configuration.
    enclave_selection_policy str
    How the scheduler chooses an Enclave: availability to let it pick any Enclave the Workload is eligible for, or manual to pin the Workload to the Enclave named in enclaves. Omit it to run outside any Enclave, which is the default: setting useCaseId on its own does not request one. Both values require useCaseId; manual additionally requires the CAN_OVERRIDE_WORKLOAD_PLACEMENT permission, and is assumed when enclaves names one.
    enclaves Sequence[str]

    Name of the Enclave to pin this Workload to. Exactly one entry is accepted today; the list shape is forward-compatible with running on several Enclaves. Requires useCaseId, and only applies with enclaveSelectionPolicy = "manual", which is assumed when this is set and no policy is given. The named Enclave must be granted to the Use Case and the caller must hold deploy access to it.

    This is desired state that the platform never rewrites; where the Workload actually runs is reported by the platform, not by this attribute. Changing it updates the running Workload in place through a rolling replacement, keeping its ID; the new pin is recorded on the platform and the endpoint is re-read afterwards. Adding it to a Workload that runs outside any Enclave has the same limitation as adding a policy. Removing it without setting enclaveSelectionPolicy is refused at plan time, like removing the policy.

    replacement_policy WorkloadRuntimeReplacementPolicy
    Replacement policy for in-place workload replacement (rolling strategy). Applied when artifactId changes or when replacement policy settings change. Runtime-only changes use PATCH /workloads/{id}/settings, which does not accept custom replacement timing (WAPI uses platform defaults).
    containerGroups List<Property Map>
    Per-group runtime configuration.
    enclaveSelectionPolicy String
    How the scheduler chooses an Enclave: availability to let it pick any Enclave the Workload is eligible for, or manual to pin the Workload to the Enclave named in enclaves. Omit it to run outside any Enclave, which is the default: setting useCaseId on its own does not request one. Both values require useCaseId; manual additionally requires the CAN_OVERRIDE_WORKLOAD_PLACEMENT permission, and is assumed when enclaves names one.
    enclaves List<String>

    Name of the Enclave to pin this Workload to. Exactly one entry is accepted today; the list shape is forward-compatible with running on several Enclaves. Requires useCaseId, and only applies with enclaveSelectionPolicy = "manual", which is assumed when this is set and no policy is given. The named Enclave must be granted to the Use Case and the caller must hold deploy access to it.

    This is desired state that the platform never rewrites; where the Workload actually runs is reported by the platform, not by this attribute. Changing it updates the running Workload in place through a rolling replacement, keeping its ID; the new pin is recorded on the platform and the endpoint is re-read afterwards. Adding it to a Workload that runs outside any Enclave has the same limitation as adding a policy. Removing it without setting enclaveSelectionPolicy is refused at plan time, like removing the policy.

    replacementPolicy Property Map
    Replacement policy for in-place workload replacement (rolling strategy). Applied when artifactId changes or when replacement policy settings change. Runtime-only changes use PATCH /workloads/{id}/settings, which does not accept custom replacement timing (WAPI uses platform defaults).

    WorkloadRuntimeContainerGroup, WorkloadRuntimeContainerGroupArgs

    Autoscaling DataRobotWorkloadRuntimeContainerGroupAutoscaling
    Autoscaling configuration. When set, takes precedence over replicaCount.
    BundleSelectionPolicy string
    How to select among resourceBundles. Defaults to availability.
    Containers List<DataRobotWorkloadRuntimeContainerGroupContainer>
    Per-container resource allocation overrides.
    Name string
    Container group name (server-assigned, always default).
    ReplicaCount int
    Number of replicas. Cannot be set alongside autoscaling.enabled=true. Set to 0 to explicitly clear it.
    ResourceBundles List<string>
    Ordered list of resource bundle IDs. One is selected at scheduling time.
    Autoscaling WorkloadRuntimeContainerGroupAutoscaling
    Autoscaling configuration. When set, takes precedence over replicaCount.
    BundleSelectionPolicy string
    How to select among resourceBundles. Defaults to availability.
    Containers []WorkloadRuntimeContainerGroupContainer
    Per-container resource allocation overrides.
    Name string
    Container group name (server-assigned, always default).
    ReplicaCount int
    Number of replicas. Cannot be set alongside autoscaling.enabled=true. Set to 0 to explicitly clear it.
    ResourceBundles []string
    Ordered list of resource bundle IDs. One is selected at scheduling time.
    autoscaling object
    Autoscaling configuration. When set, takes precedence over replicaCount.
    bundle_selection_policy string
    How to select among resourceBundles. Defaults to availability.
    containers list(object)
    Per-container resource allocation overrides.
    name string
    Container group name (server-assigned, always default).
    replica_count number
    Number of replicas. Cannot be set alongside autoscaling.enabled=true. Set to 0 to explicitly clear it.
    resource_bundles list(string)
    Ordered list of resource bundle IDs. One is selected at scheduling time.
    autoscaling WorkloadRuntimeContainerGroupAutoscaling
    Autoscaling configuration. When set, takes precedence over replicaCount.
    bundleSelectionPolicy String
    How to select among resourceBundles. Defaults to availability.
    containers List<WorkloadRuntimeContainerGroupContainer>
    Per-container resource allocation overrides.
    name String
    Container group name (server-assigned, always default).
    replicaCount Integer
    Number of replicas. Cannot be set alongside autoscaling.enabled=true. Set to 0 to explicitly clear it.
    resourceBundles List<String>
    Ordered list of resource bundle IDs. One is selected at scheduling time.
    autoscaling WorkloadRuntimeContainerGroupAutoscaling
    Autoscaling configuration. When set, takes precedence over replicaCount.
    bundleSelectionPolicy string
    How to select among resourceBundles. Defaults to availability.
    containers WorkloadRuntimeContainerGroupContainer[]
    Per-container resource allocation overrides.
    name string
    Container group name (server-assigned, always default).
    replicaCount number
    Number of replicas. Cannot be set alongside autoscaling.enabled=true. Set to 0 to explicitly clear it.
    resourceBundles string[]
    Ordered list of resource bundle IDs. One is selected at scheduling time.
    autoscaling WorkloadRuntimeContainerGroupAutoscaling
    Autoscaling configuration. When set, takes precedence over replicaCount.
    bundle_selection_policy str
    How to select among resourceBundles. Defaults to availability.
    containers Sequence[WorkloadRuntimeContainerGroupContainer]
    Per-container resource allocation overrides.
    name str
    Container group name (server-assigned, always default).
    replica_count int
    Number of replicas. Cannot be set alongside autoscaling.enabled=true. Set to 0 to explicitly clear it.
    resource_bundles Sequence[str]
    Ordered list of resource bundle IDs. One is selected at scheduling time.
    autoscaling Property Map
    Autoscaling configuration. When set, takes precedence over replicaCount.
    bundleSelectionPolicy String
    How to select among resourceBundles. Defaults to availability.
    containers List<Property Map>
    Per-container resource allocation overrides.
    name String
    Container group name (server-assigned, always default).
    replicaCount Number
    Number of replicas. Cannot be set alongside autoscaling.enabled=true. Set to 0 to explicitly clear it.
    resourceBundles List<String>
    Ordered list of resource bundle IDs. One is selected at scheduling time.

    WorkloadRuntimeContainerGroupAutoscaling, WorkloadRuntimeContainerGroupAutoscalingArgs

    Policies List<DataRobotWorkloadRuntimeContainerGroupAutoscalingPolicy>
    Scaling policies that define when and how to scale.
    Enabled bool
    Whether autoscaling is enabled. Defaults to true.
    MaxReplicaCount int
    Maximum number of replicas. Defaults to 1.
    MinReplicaCount int
    Minimum number of replicas. Set to 0 to allow scale-to-zero. Defaults to 0.
    Policies []WorkloadRuntimeContainerGroupAutoscalingPolicy
    Scaling policies that define when and how to scale.
    Enabled bool
    Whether autoscaling is enabled. Defaults to true.
    MaxReplicaCount int
    Maximum number of replicas. Defaults to 1.
    MinReplicaCount int
    Minimum number of replicas. Set to 0 to allow scale-to-zero. Defaults to 0.
    policies list(object)
    Scaling policies that define when and how to scale.
    enabled bool
    Whether autoscaling is enabled. Defaults to true.
    max_replica_count number
    Maximum number of replicas. Defaults to 1.
    min_replica_count number
    Minimum number of replicas. Set to 0 to allow scale-to-zero. Defaults to 0.
    policies List<WorkloadRuntimeContainerGroupAutoscalingPolicy>
    Scaling policies that define when and how to scale.
    enabled Boolean
    Whether autoscaling is enabled. Defaults to true.
    maxReplicaCount Integer
    Maximum number of replicas. Defaults to 1.
    minReplicaCount Integer
    Minimum number of replicas. Set to 0 to allow scale-to-zero. Defaults to 0.
    policies WorkloadRuntimeContainerGroupAutoscalingPolicy[]
    Scaling policies that define when and how to scale.
    enabled boolean
    Whether autoscaling is enabled. Defaults to true.
    maxReplicaCount number
    Maximum number of replicas. Defaults to 1.
    minReplicaCount number
    Minimum number of replicas. Set to 0 to allow scale-to-zero. Defaults to 0.
    policies Sequence[WorkloadRuntimeContainerGroupAutoscalingPolicy]
    Scaling policies that define when and how to scale.
    enabled bool
    Whether autoscaling is enabled. Defaults to true.
    max_replica_count int
    Maximum number of replicas. Defaults to 1.
    min_replica_count int
    Minimum number of replicas. Set to 0 to allow scale-to-zero. Defaults to 0.
    policies List<Property Map>
    Scaling policies that define when and how to scale.
    enabled Boolean
    Whether autoscaling is enabled. Defaults to true.
    maxReplicaCount Number
    Maximum number of replicas. Defaults to 1.
    minReplicaCount Number
    Minimum number of replicas. Set to 0 to allow scale-to-zero. Defaults to 0.

    WorkloadRuntimeContainerGroupAutoscalingPolicy, WorkloadRuntimeContainerGroupAutoscalingPolicyArgs

    ScalingMetric string
    Metric used for scaling decisions: cpuAverageUtilization, httpRequestsConcurrency, gpuCacheUtilization, or gpuRequestQueueDepth. Custom metric names (e.g. vllm:kv_cache_usage_perc) are supported for NIM artifacts only.
    Target double
    Target value for the scaling metric. Must be non-negative.
    ScalingMetric string
    Metric used for scaling decisions: cpuAverageUtilization, httpRequestsConcurrency, gpuCacheUtilization, or gpuRequestQueueDepth. Custom metric names (e.g. vllm:kv_cache_usage_perc) are supported for NIM artifacts only.
    Target float64
    Target value for the scaling metric. Must be non-negative.
    scaling_metric string
    Metric used for scaling decisions: cpuAverageUtilization, httpRequestsConcurrency, gpuCacheUtilization, or gpuRequestQueueDepth. Custom metric names (e.g. vllm:kv_cache_usage_perc) are supported for NIM artifacts only.
    target number
    Target value for the scaling metric. Must be non-negative.
    scalingMetric String
    Metric used for scaling decisions: cpuAverageUtilization, httpRequestsConcurrency, gpuCacheUtilization, or gpuRequestQueueDepth. Custom metric names (e.g. vllm:kv_cache_usage_perc) are supported for NIM artifacts only.
    target Double
    Target value for the scaling metric. Must be non-negative.
    scalingMetric string
    Metric used for scaling decisions: cpuAverageUtilization, httpRequestsConcurrency, gpuCacheUtilization, or gpuRequestQueueDepth. Custom metric names (e.g. vllm:kv_cache_usage_perc) are supported for NIM artifacts only.
    target number
    Target value for the scaling metric. Must be non-negative.
    scaling_metric str
    Metric used for scaling decisions: cpuAverageUtilization, httpRequestsConcurrency, gpuCacheUtilization, or gpuRequestQueueDepth. Custom metric names (e.g. vllm:kv_cache_usage_perc) are supported for NIM artifacts only.
    target float
    Target value for the scaling metric. Must be non-negative.
    scalingMetric String
    Metric used for scaling decisions: cpuAverageUtilization, httpRequestsConcurrency, gpuCacheUtilization, or gpuRequestQueueDepth. Custom metric names (e.g. vllm:kv_cache_usage_perc) are supported for NIM artifacts only.
    target Number
    Target value for the scaling metric. Must be non-negative.

    WorkloadRuntimeContainerGroupContainer, WorkloadRuntimeContainerGroupContainerArgs

    Name string
    Container name. Must match a container declared in the artifact group.
    ResourceAllocation DataRobotWorkloadRuntimeContainerGroupContainerResourceAllocation
    Resource allocation for this container.
    Name string
    Container name. Must match a container declared in the artifact group.
    ResourceAllocation WorkloadRuntimeContainerGroupContainerResourceAllocation
    Resource allocation for this container.
    name string
    Container name. Must match a container declared in the artifact group.
    resource_allocation object
    Resource allocation for this container.
    name String
    Container name. Must match a container declared in the artifact group.
    resourceAllocation WorkloadRuntimeContainerGroupContainerResourceAllocation
    Resource allocation for this container.
    name string
    Container name. Must match a container declared in the artifact group.
    resourceAllocation WorkloadRuntimeContainerGroupContainerResourceAllocation
    Resource allocation for this container.
    name str
    Container name. Must match a container declared in the artifact group.
    resource_allocation WorkloadRuntimeContainerGroupContainerResourceAllocation
    Resource allocation for this container.
    name String
    Container name. Must match a container declared in the artifact group.
    resourceAllocation Property Map
    Resource allocation for this container.

    WorkloadRuntimeContainerGroupContainerResourceAllocation, WorkloadRuntimeContainerGroupContainerResourceAllocationArgs

    Cpu double
    CPU cores allocated to this container.
    Gpu double
    GPUs allocated to this container.
    GpuMemory string
    GPU VRAM allocated. Accepts human-readable strings (e.g. "15GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    Memory string
    RAM allocated. Accepts human-readable strings (e.g. "8GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    Cpu float64
    CPU cores allocated to this container.
    Gpu float64
    GPUs allocated to this container.
    GpuMemory string
    GPU VRAM allocated. Accepts human-readable strings (e.g. "15GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    Memory string
    RAM allocated. Accepts human-readable strings (e.g. "8GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    cpu number
    CPU cores allocated to this container.
    gpu number
    GPUs allocated to this container.
    gpu_memory string
    GPU VRAM allocated. Accepts human-readable strings (e.g. "15GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    memory string
    RAM allocated. Accepts human-readable strings (e.g. "8GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    cpu Double
    CPU cores allocated to this container.
    gpu Double
    GPUs allocated to this container.
    gpuMemory String
    GPU VRAM allocated. Accepts human-readable strings (e.g. "15GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    memory String
    RAM allocated. Accepts human-readable strings (e.g. "8GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    cpu number
    CPU cores allocated to this container.
    gpu number
    GPUs allocated to this container.
    gpuMemory string
    GPU VRAM allocated. Accepts human-readable strings (e.g. "15GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    memory string
    RAM allocated. Accepts human-readable strings (e.g. "8GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    cpu float
    CPU cores allocated to this container.
    gpu float
    GPUs allocated to this container.
    gpu_memory str
    GPU VRAM allocated. Accepts human-readable strings (e.g. "15GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    memory str
    RAM allocated. Accepts human-readable strings (e.g. "8GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    cpu Number
    CPU cores allocated to this container.
    gpu Number
    GPUs allocated to this container.
    gpuMemory String
    GPU VRAM allocated. Accepts human-readable strings (e.g. "15GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.
    memory String
    RAM allocated. Accepts human-readable strings (e.g. "8GB", "512MB", "4096Mi") or raw byte integers. 1000-based suffixes: KB, MB, GB, TB. 1024-based suffixes: Ki/KiB, Mi/MiB, Gi/GiB.

    WorkloadRuntimeReplacementPolicy, WorkloadRuntimeReplacementPolicyArgs

    KeepOldVersionMinutes int
    Duration in minutes to keep the old version during replacement. Maps to WAPI config.keepOldVersionMinutes, which current platform versions accept but do not apply: how long the old version is kept is a cluster setting (300 seconds by default).
    WarmupMinutes int
    Duration in minutes for the warmup phase during replacement. Maps to WAPI config.warmupDurationMinutes.
    KeepOldVersionMinutes int
    Duration in minutes to keep the old version during replacement. Maps to WAPI config.keepOldVersionMinutes, which current platform versions accept but do not apply: how long the old version is kept is a cluster setting (300 seconds by default).
    WarmupMinutes int
    Duration in minutes for the warmup phase during replacement. Maps to WAPI config.warmupDurationMinutes.
    keep_old_version_minutes number
    Duration in minutes to keep the old version during replacement. Maps to WAPI config.keepOldVersionMinutes, which current platform versions accept but do not apply: how long the old version is kept is a cluster setting (300 seconds by default).
    warmup_minutes number
    Duration in minutes for the warmup phase during replacement. Maps to WAPI config.warmupDurationMinutes.
    keepOldVersionMinutes Integer
    Duration in minutes to keep the old version during replacement. Maps to WAPI config.keepOldVersionMinutes, which current platform versions accept but do not apply: how long the old version is kept is a cluster setting (300 seconds by default).
    warmupMinutes Integer
    Duration in minutes for the warmup phase during replacement. Maps to WAPI config.warmupDurationMinutes.
    keepOldVersionMinutes number
    Duration in minutes to keep the old version during replacement. Maps to WAPI config.keepOldVersionMinutes, which current platform versions accept but do not apply: how long the old version is kept is a cluster setting (300 seconds by default).
    warmupMinutes number
    Duration in minutes for the warmup phase during replacement. Maps to WAPI config.warmupDurationMinutes.
    keep_old_version_minutes int
    Duration in minutes to keep the old version during replacement. Maps to WAPI config.keepOldVersionMinutes, which current platform versions accept but do not apply: how long the old version is kept is a cluster setting (300 seconds by default).
    warmup_minutes int
    Duration in minutes for the warmup phase during replacement. Maps to WAPI config.warmupDurationMinutes.
    keepOldVersionMinutes Number
    Duration in minutes to keep the old version during replacement. Maps to WAPI config.keepOldVersionMinutes, which current platform versions accept but do not apply: how long the old version is kept is a cluster setting (300 seconds by default).
    warmupMinutes Number
    Duration in minutes for the warmup phase during replacement. Maps to WAPI config.warmupDurationMinutes.

    Package Details

    Repository
    datarobot datarobot-community/pulumi-datarobot
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the datarobot Terraform Provider.
    datarobot logo
    Viewing docs for DataRobot v0.12.6
    published on Wednesday, Oct 7, 2026 by DataRobot, Inc.

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial