---
title: "Updates a DAIEngineProfile."
method: PATCH
path: "/v1/{daiEngineProfile.name}"
tags: ["DAIEngineProfileService"]
---

# Updates a DAIEngineProfile.

`PATCH /v1/{daiEngineProfile.name}`

## Request

- Base URL: `https://docs.h2o.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.h2o.ai/v1/{daiEngineProfile.name}`
- Auth: none declared
- TypeScript: <https://skmtc.dev/h2o/apis/ai-h2o-engine-sandbox-v1-filesystem-proto/docs/v1/:daiEngineProfile.name/patch.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `daiEngineProfile.name` string, required

## Query parameters

- `updateMask` string, required

## Request body

- object: Authorization may require the following permission on the profile's parent workspace: * actions/enginemanager/daiEngineProfiles/UPDATE
  - `displayName` string: Optional. Human-readable name.
  - `priority` integer: 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).
  - `enabled` boolean: 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.
  - `assignedOidcRolesEnabled` boolean: Optional. When set to true, the assigned_oidc_roles field is verified when a user uses this profile.
  - `assignedOidcRoles` string[]: 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.
  - `maxRunningEngines` integer, nullable: Optional. Maximum number of DAIEngines per user that can be running when using this DAIEngineProfile.
  - `cpuConstraint` V1ProfileConstraintNumeric: Message representing a constraint on a user-specified numeric value.
    - `min` string, int64: Minimum (inclusive) allowed value.
    - `max` string, int64, nullable: Maximum (inclusive) allowed value. Unset is treated as unlimited.
    - `default` string, int64: Default value. It is used as an initial value or when the value is unset by the user.
    - `cumulativeMax` string, int64, nullable: Maximum cumulative value allowed. Unset is treated as unlimited.
  - `gpuConstraint` V1ProfileConstraintNumeric: Message representing a constraint on a user-specified numeric value.
    - `min` string, int64: Minimum (inclusive) allowed value.
    - `max` string, int64, nullable: Maximum (inclusive) allowed value. Unset is treated as unlimited.
    - `default` string, int64: Default value. It is used as an initial value or when the value is unset by the user.
    - `cumulativeMax` string, int64, nullable: Maximum cumulative value allowed. Unset is treated as unlimited.
  - `memoryBytesConstraint` V1ProfileConstraintNumeric: Message representing a constraint on a user-specified numeric value.
    - `min` string, int64: Minimum (inclusive) allowed value.
    - `max` string, int64, nullable: Maximum (inclusive) allowed value. Unset is treated as unlimited.
    - `default` string, int64: Default value. It is used as an initial value or when the value is unset by the user.
    - `cumulativeMax` string, int64, nullable: Maximum cumulative value allowed. Unset is treated as unlimited.
  - `storageBytesConstraint` V1ProfileConstraintNumeric: Message representing a constraint on a user-specified numeric value.
    - `min` string, int64: Minimum (inclusive) allowed value.
    - `max` string, int64, nullable: Maximum (inclusive) allowed value. Unset is treated as unlimited.
    - `default` string, int64: Default value. It is used as an initial value or when the value is unset by the user.
    - `cumulativeMax` string, int64, nullable: Maximum cumulative value allowed. Unset is treated as unlimited.
  - `maxIdleDurationConstraint` V1ProfileConstraintDuration: Message representing a constraint on a user-specified duration value.
    - `min` string: Minimum (inclusive) allowed value.
    - `max` string, nullable: Maximum (inclusive) allowed value. Unset is treated as unlimited.
    - `default` string: Default value. It is used as an initial value or when the value is unset by the user.
  - `maxRunningDurationConstraint` V1ProfileConstraintDuration: Message representing a constraint on a user-specified duration value.
    - `min` string: Minimum (inclusive) allowed value.
    - `max` string, nullable: Maximum (inclusive) allowed value. Unset is treated as unlimited.
    - `default` string: Default value. It is used as an initial value or when the value is unset by the user.
  - `maxNonInteractionDuration` string, nullable: Optional. Max non-interation duration applied on all DAIEngines that use this profile.
  - `maxUnusedDuration` string, nullable: Optional. Max unused duration applied on all DAIEngines that use this profile.
  - `configurationOverride` object: 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"}.
  - `baseConfiguration` object: 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.
  - `yamlPodTemplateSpec` string: 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).
  - `yamlGpuTolerations` string: 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.
  - `tritonEnabled` boolean: Optional. True when DAI built-in Triton inference server is enabled, false when it is disabled.
  - `createTime` string, date-time: Output only. Time when the DAIEngineProfile was created.
  - `updateTime` string, date-time, nullable: Output only. Time when the DAIEngineProfile was last updated.
  - `creator` string: Output only. Name of entity that created the DAIEngineProfile.
  - `updater` string: Output only. Name of entity that last updated the DAIEngineProfile.
  - `creatorDisplayName` string: Output only. Human-readable name of entity that created the DAIEngineProfile.
  - `updaterDisplayName` string: Output only. Human-readable name of entity that last updated the DAIEngineProfile.
  - `gpuResourceName` string: Non-empty default. K8s GPU resource name. For example: `nvidia.com/gpu` or `amd.com/gpu`. When unset, server will choose a default value.
  - `dataDirectoryStorageClass` string: 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 `200`

A successful response.

- V1UpdateDAIEngineProfileResponse: Response for Update method.
  - `daiEngineProfile` V1DAIEngineProfile: DAIEngineProfile represents a set of values that are used for DAIEngine.
    - `name` string
    - `displayName` string: Optional. Human-readable name.
    - `priority` integer: 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).
    - `enabled` boolean: 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.
    - `assignedOidcRolesEnabled` boolean: Optional. When set to true, the assigned_oidc_roles field is verified when a user uses this profile.
    - `assignedOidcRoles` string[]: 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.
    - `maxRunningEngines` integer, nullable: Optional. Maximum number of DAIEngines per user that can be running when using this DAIEngineProfile.
    - `cpuConstraint` V1ProfileConstraintNumeric: Message representing a constraint on a user-specified numeric value.
      - `min` string, int64: Minimum (inclusive) allowed value.
      - `max` string, int64, nullable: Maximum (inclusive) allowed value. Unset is treated as unlimited.
      - `default` string, int64: Default value. It is used as an initial value or when the value is unset by the user.
      - `cumulativeMax` string, int64, nullable: Maximum cumulative value allowed. Unset is treated as unlimited.
    - `gpuConstraint` V1ProfileConstraintNumeric: Message representing a constraint on a user-specified numeric value.
      - `min` string, int64: Minimum (inclusive) allowed value.
      - `max` string, int64, nullable: Maximum (inclusive) allowed value. Unset is treated as unlimited.
      - `default` string, int64: Default value. It is used as an initial value or when the value is unset by the user.
      - `cumulativeMax` string, int64, nullable: Maximum cumulative value allowed. Unset is treated as unlimited.
    - `memoryBytesConstraint` V1ProfileConstraintNumeric: Message representing a constraint on a user-specified numeric value.
      - `min` string, int64: Minimum (inclusive) allowed value.
      - `max` string, int64, nullable: Maximum (inclusive) allowed value. Unset is treated as unlimited.
      - `default` string, int64: Default value. It is used as an initial value or when the value is unset by the user.
      - `cumulativeMax` string, int64, nullable: Maximum cumulative value allowed. Unset is treated as unlimited.
    - `storageBytesConstraint` V1ProfileConstraintNumeric: Message representing a constraint on a user-specified numeric value.
      - `min` string, int64: Minimum (inclusive) allowed value.
      - `max` string, int64, nullable: Maximum (inclusive) allowed value. Unset is treated as unlimited.
      - `default` string, int64: Default value. It is used as an initial value or when the value is unset by the user.
      - `cumulativeMax` string, int64, nullable: Maximum cumulative value allowed. Unset is treated as unlimited.
    - `maxIdleDurationConstraint` V1ProfileConstraintDuration: Message representing a constraint on a user-specified duration value.
      - `min` string: Minimum (inclusive) allowed value.
      - `max` string, nullable: Maximum (inclusive) allowed value. Unset is treated as unlimited.
      - `default` string: Default value. It is used as an initial value or when the value is unset by the user.
    - `maxRunningDurationConstraint` V1ProfileConstraintDuration: Message representing a constraint on a user-specified duration value.
      - `min` string: Minimum (inclusive) allowed value.
      - `max` string, nullable: Maximum (inclusive) allowed value. Unset is treated as unlimited.
      - `default` string: Default value. It is used as an initial value or when the value is unset by the user.
    - `maxNonInteractionDuration` string, nullable: Optional. Max non-interation duration applied on all DAIEngines that use this profile.
    - `maxUnusedDuration` string, nullable: Optional. Max unused duration applied on all DAIEngines that use this profile.
    - `configurationOverride` object: 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"}.
    - `baseConfiguration` object: 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.
    - `yamlPodTemplateSpec` string: 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).
    - `yamlGpuTolerations` string: 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.
    - `tritonEnabled` boolean: Optional. True when DAI built-in Triton inference server is enabled, false when it is disabled.
    - `createTime` string, date-time: Output only. Time when the DAIEngineProfile was created.
    - `updateTime` string, date-time, nullable: Output only. Time when the DAIEngineProfile was last updated.
    - `creator` string: Output only. Name of entity that created the DAIEngineProfile.
    - `updater` string: Output only. Name of entity that last updated the DAIEngineProfile.
    - `creatorDisplayName` string: Output only. Human-readable name of entity that created the DAIEngineProfile.
    - `updaterDisplayName` string: Output only. Human-readable name of entity that last updated the DAIEngineProfile.
    - `gpuResourceName` string: Non-empty default. K8s GPU resource name. For example: `nvidia.com/gpu` or `amd.com/gpu`. When unset, server will choose a default value.
    - `dataDirectoryStorageClass` string: 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.

## Other responses

- `default`: An unexpected error response.

---

[API](https://skmtc.dev/h2o/apis/ai-h2o-engine-sandbox-v1-filesystem-proto.md) - [All operations](https://skmtc.dev/h2o/apis/ai-h2o-engine-sandbox-v1-filesystem-proto/llms.txt) - [OpenAPI document](https://skmtc.dev/h2o/apis/ai-h2o-engine-sandbox-v1-filesystem-proto/revisions/297cfadc1d39?raw)
