DAIEngineProfileService

Updates a DAIEngineProfile.

patch/v1/{daiEngineProfile.name}

Request

Path parameters

daiEngineProfile.namestring required

Output only. Resource name. Format: workspaces//daiEngineProfiles/

Query parameters

updateMaskstring required

Required. The list of paths referencing which fields to update. Update mask must be non-empty.

Allowed field paths are:

  • display_name
  • priority
  • enabled
  • assigned_oidc_roles_enabled
  • assigned_oidc_roles
  • max_running_engines
  • cpu_constraint
  • gpu_constraint
  • memory_bytes_constraint
  • storage_bytes_constraint
  • max_idle_duration_constraint
  • max_running_duration_constraint
  • max_non_interaction_duration
  • max_unused_duration
  • configuration_override
  • base_configuration
  • config_editability
  • yaml_pod_template_spec
  • yaml_gpu_tolerations
  • triton_enabled
  • gpu_resource_name
  • data_directory_storage_class

Paths are case sensitive (must match exactly).

To update all allowed fields, specify exactly one path with value "*".

Request body

displayNamestring

Optional. Human-readable name.

priorityinteger

Optional. Priority of the DAIEngineProfile. Lower value means higher priority. Priority is NOT a unique value (any two DAIEngineProfiles can have the same priority value).

enabledboolean

Optional. When set to true, the DAIEngineProfile is enabled and can be used in DAIEngine. When set to false, the DAIEngineProfile is disabled and cannot be used in any DAIEngine.

assignedOidcRolesEnabledboolean

Optional. When set to true, the assigned_oidc_roles field is verified when a user uses this profile.

assignedOidcRolesstring[]

Optional. List of OIDC roles assigned to this DAIEngineProfile.

When profile has assigned some OIDC roles and verification of this list is enabled (assigned_oidc_roles_enabled=true), then this profile can be used only by users who have assigned at least one role from this list.

Example 1: assigned_oidc_roles = ["role1", "role2"]. This profile can be used only by users who have assigned either role1 or role2.

Example 2 (special case): assigned_oidc_roles = []. Empty list means that the profile has not assigned any OIDC role, therefore this profile cannot be used by any user.

maxRunningEnginesinteger nullable

Optional. Maximum number of DAIEngines per user that can be running when using this DAIEngineProfile.

maxNonInteractionDurationstring nullable

Optional. Max non-interation duration applied on all DAIEngines that use this profile.

maxUnusedDurationstring nullable

Optional. Max unused duration applied on all DAIEngines that use this profile.

configurationOverrideobject

Optional. configuration_override is applied on top of all other configurations when creating the final configuration that is passed to the DAI server.

The whole config setup priority is: final_configuration = configuration_override > core_configuration (hardcoded on AIEM server) > DAIEngine.config > base_configuration where higher priority is always applied on top of the lower priority.

Example:

  • AIEM server has hardcoded core_configuration={"key1": "hardcoded-val1", "key2": "hardcoded-val2"}
  • Admin sets DAIEngineProfile with base_configuration={"key3": "base-val3", "key4": "base-val4"}
  • Admin sets DAIEngineProfile with profile config_editability=CONFIG_EDITABILITY_FULL
  • Admin sets DAIEngineProfile with configuration_override={"key1": "override-val1", "key5": "override-val5"}
  • User creates DAIEngine with this profile. User sets DAIEngine.config={"key3": "user-val3", "key6": "user-val6"}

The final configuration is composed as:

  1. Start with base_configuration: {"key3": "base-val3", "key4": "base-val4"}
  2. Apply DAIEngine.config on top: {"key3": "user-val3", "key4": "base-val4", "key6": "user-val6"}
  3. Apply hardcoded core_configuration on top: {"key1": "hardcoded-val1", "key2": "hardcoded-val2", "key3": "user-val3", "key4": "base-val4", "key6": "user-val6"}
  4. Apply configuration_override on top: {"key1": "override-val1", "key2": "hardcoded-val2", "key3":"user-val3", "key4": "base-val4", "key5": "override-val5", "key6": "user-val6"}.
baseConfigurationobject

Optional. base configuration forms the basis of the final configuration that is passed to the DAI server. See configuration_override for the overall configuration setup logic.

configEditability'CONFIG_EDITABILITY_UNSPECIFIED' | 'CONFIG_EDITABILITY_DISABLED' | 'CONFIG_EDITABILITY_BASE_CONFIG_ONLY' | 'CONFIG_EDITABILITY_FULL'

All possible DAIEngine.config editability options.

  • CONFIG_EDITABILITY_UNSPECIFIED: ConfigEditability is unspecified.
  • CONFIG_EDITABILITY_DISABLED: Specifying DAIEngine.config is not allowed.
  • CONFIG_EDITABILITY_BASE_CONFIG_ONLY: Specifying DAIEngine.config is allowed only when it overrides values from base_configuration.
  • CONFIG_EDITABILITY_FULL: Specifying DAIEngine.config is allowed in full.
yamlPodTemplateSpecstring

When specified, then it is applied for each DAIEngine that uses this profile. PodTemplateSpec describes what will be applied on top of a regular DriverlessAI pod before it is created. This template is merged into DriverlessAI default pod using StrategicMergePatch method (it overrides the default pod). More info about StrategicMergePatch: https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/

Example YAML value (custom annotation applied for each DAI pod): metadata: annotations: custom-key: custom-value

An empty string "" means unset (no PodTemplateSpec is applied).

yamlGpuTolerationsstring

When specified, then it is applied for each DAIEngine that uses this profile. GPUTolerations sets DriverlessAI's pod.spec.tolerations in case DAIEngine has GPU > 0. This will override any tolerations defined in yaml_pod_template_spec.PodSpec.Tolerations field.

Example YAML value (two GPU tolerations applied for each DAI pod):

  • key: "dedicated" operator: "Equal" value: "gpu" effect: "NoSchedule"
  • key: "key2" operator: "Equal" value: "value2" effect: "NoSchedule"

An empty string "" means unset: the pod's tolerations are left untouched. An empty list "[]" explicitly clears the pod's tolerations. The literal "null" is not allowed.

tritonEnabledboolean

Optional. True when DAI built-in Triton inference server is enabled, false when it is disabled.

createTimestring date-time

Output only. Time when the DAIEngineProfile was created.

updateTimestring date-time nullable

Output only. Time when the DAIEngineProfile was last updated.

creatorstring

Output only. Name of entity that created the DAIEngineProfile.

updaterstring

Output only. Name of entity that last updated the DAIEngineProfile.

creatorDisplayNamestring

Output only. Human-readable name of entity that created the DAIEngineProfile.

updaterDisplayNamestring

Output only. Human-readable name of entity that last updated the DAIEngineProfile.

gpuResourceNamestring

Non-empty default. K8s GPU resource name. For example: nvidia.com/gpu or amd.com/gpu. When unset, server will choose a default value.

dataDirectoryStorageClassstring

Optional. Name of the storage class used by Driverless AI when using this DAIVersion. When unset, the default storage class of the k8s cluster will be used.

Response

A successful response.

Changes

No recorded changes to this operation across all 1 revision of this API.