Skip to main content

ai/h2o/engine/v1/adjusted_dai_profile.proto (version not set)

Download OpenAPI specification:Download

AdjustedDAIProfileService

Returns a specific DAIEngine.

path Parameters
name
required
stringworkspaces/[^/]+/adjustedDAIProfiles/[^/]+

AdjustedDAIProfile resource name.

Responses

Response samples

Content type
application/json
{
  • "adjustedDaiProfile": {
    }
}

Returns a collection of adjustedDAIProfiles within a workspace.

path Parameters
parent
required
stringworkspaces/[^/]+

Workspace resource name.

query Parameters
pageSize
integer <int32>

Maximum number of AdjustedDAIProfiles to return in a response. If unspecified (or set to 0), at most 50 AdjustedDAIProfiles will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.

pageToken
string

Leave unset to receive the initial page. To list any subsequent pages use the value of 'next_page_token' returned from the ListAdjustedDAIProfilesResponse.

Responses

Response samples

Content type
application/json
{
  • "adjustedDaiProfiles": [
    ],
  • "nextPageToken": "string",
  • "totalSize": 0
}

DAIEngineConstraintSetService

Returns the current DAIEngineConstraintSet.

path Parameters
name_1
required
stringworkspaces/[^/]+/daiEngineConstraintSet

DAIEngineConstraintSet resource name. Format: workspaces/{workspace}/daiEngineConstraintSet

Responses

Response samples

Content type
application/json
{
  • "daiEngineConstraintSet": {
    }
}

DAIEngineProfileService

Updates a DAIEngineProfile.

path Parameters
daiEngineProfile.name
required
stringworkspaces/[^/]+/daiEngineProfiles/[^/]+

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

query Parameters
updateMask
required
string

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

Paths are case sensitive (must match exactly).

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

Request Body schema: application/json

Required. DAIEngineProfile resource.

displayName
string

Optional. Human-readable name.

priority
integer <int32>

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
Array of strings

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 or null <int32>

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

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintDuration)

Message representing a constraint on a user-specified duration value.

object (v1ProfileConstraintDuration)

Message representing a constraint on a user-specified duration value.

maxNonInteractionDuration
string or null

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

maxUnusedDuration
string or null

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

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"}.
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
string (DAIEngineProfileConfigEditability)
Default: "CONFIG_EDITABILITY_UNSPECIFIED"
Enum: "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 (Optional. YAML representation of custom PodTemplateSpec. Definition of PodTemplateSpec: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core)

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

yamlGpuTolerations
string (Optional. YAML representation of custom GPU Tolerations. Definition of one Toleration: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#toleration-v1-core)

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"
tritonEnabled
boolean

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

Responses

Request samples

Content type
application/json
{
  • "displayName": "string",
  • "priority": 0,
  • "enabled": true,
  • "assignedOidcRolesEnabled": true,
  • "assignedOidcRoles": [
    ],
  • "maxRunningEngines": 0,
  • "cpuConstraint": {
    },
  • "gpuConstraint": {
    },
  • "memoryBytesConstraint": {
    },
  • "storageBytesConstraint": {
    },
  • "maxIdleDurationConstraint": {
    },
  • "maxRunningDurationConstraint": {
    },
  • "maxNonInteractionDuration": "string",
  • "maxUnusedDuration": "string",
  • "configurationOverride": {
    },
  • "baseConfiguration": {
    },
  • "configEditability": "CONFIG_EDITABILITY_UNSPECIFIED",
  • "yamlPodTemplateSpec": "string",
  • "yamlGpuTolerations": "string",
  • "tritonEnabled": true
}

Response samples

Content type
application/json
{
  • "daiEngineProfile": {
    }
}

Get DAIEngineProfile.

path Parameters
name_2
required
stringworkspaces/[^/]+/daiEngineProfiles/[^/]+

DAIEngineProfile resource name. Format: workspaces/{workspace}/daiEngineProfiles/{dai_engine_profile}

Responses

Response samples

Content type
application/json
{
  • "daiEngineProfile": {
    }
}

Deletes a DAIEngineProfile.

path Parameters
name
required
stringworkspaces/[^/]+/daiEngineProfiles/[^/]+

DAIEngine resource name. Format: workspaces/{workspace}/daiEngineProfiles/{dai_engine_profile}

Responses

Response samples

Content type
application/json
{ }

Returns a collection of DAIEngineProfiles.

path Parameters
parent
required
stringworkspaces/[^/]+

Workspace resource name. Format: workspaces/{workspace}

query Parameters
pageSize
integer <int32>

Maximum number of DAIEngineProfiles to return in a response. If unspecified (or set to 0), at most 50 DAIEngineProfiles will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.

pageToken
string

Leave unset to receive the initial page. To list any subsequent pages use the value of 'next_page_token' returned from the ListDAIEngineProfilesResponse.

Responses

Response samples

Content type
application/json
{
  • "daiEngineProfiles": [
    ],
  • "nextPageToken": "string"
}

Creates a new DAIEngineProfile.

path Parameters
parent
required
stringworkspaces/[^/]+

Workspace resource name. Format: workspaces/{workspace}

query Parameters
daiEngineProfileId
required
string

Specify the DAIEngineProfile ID, which will become a part of the DAIEngineProfile resource name.

It must:

  • contain 1-63 characters
  • contain only lowercase alphanumeric characters or hyphen ('-')
  • start with an alphabetic character
  • end with an alphanumeric character

This matches a regular expression: ^a-z?$

Request Body schema: application/json

The DAIEngineProfile resource to create.

displayName
string

Optional. Human-readable name.

priority
integer <int32>

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
Array of strings

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 or null <int32>

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

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintDuration)

Message representing a constraint on a user-specified duration value.

object (v1ProfileConstraintDuration)

Message representing a constraint on a user-specified duration value.

maxNonInteractionDuration
string or null

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

maxUnusedDuration
string or null

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

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"}.
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
string (DAIEngineProfileConfigEditability)
Default: "CONFIG_EDITABILITY_UNSPECIFIED"
Enum: "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 (Optional. YAML representation of custom PodTemplateSpec. Definition of PodTemplateSpec: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core)

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

yamlGpuTolerations
string (Optional. YAML representation of custom GPU Tolerations. Definition of one Toleration: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#toleration-v1-core)

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"
tritonEnabled
boolean

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

Responses

Request samples

Content type
application/json
{
  • "displayName": "string",
  • "priority": 0,
  • "enabled": true,
  • "assignedOidcRolesEnabled": true,
  • "assignedOidcRoles": [
    ],
  • "maxRunningEngines": 0,
  • "cpuConstraint": {
    },
  • "gpuConstraint": {
    },
  • "memoryBytesConstraint": {
    },
  • "storageBytesConstraint": {
    },
  • "maxIdleDurationConstraint": {
    },
  • "maxRunningDurationConstraint": {
    },
  • "maxNonInteractionDuration": "string",
  • "maxUnusedDuration": "string",
  • "configurationOverride": {
    },
  • "baseConfiguration": {
    },
  • "configEditability": "CONFIG_EDITABILITY_UNSPECIFIED",
  • "yamlPodTemplateSpec": "string",
  • "yamlGpuTolerations": "string",
  • "tritonEnabled": true
}

Response samples

Content type
application/json
{
  • "daiEngineProfile": {
    }
}

DAIEngineService

Updates a DAIEngine.

path Parameters
daiEngine.name
required
stringworkspaces/[^/]+/daiEngines/[^/]+

DAIEngine resource name.

query Parameters
updateMask
required
string

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

Allowed field paths are: {"profile", "cpu", "gpu", "memory_bytes", "config", "annotations", "display_name", "max_idle_duration", "max_running_duration"}. Paths are case sensitive (must match exactly).

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

allowMissing
boolean

When set and the DAIEngine is not found, a new one is created. In this situation, update_mask is ignored, i.e. all fields are applied regardless of any provided update mask; but the update mask must be still present.

validateOnly
boolean

When set, request is validated but no changes are made.

Request Body schema: application/json

DAIEngine resource.

profile
string

Optional. The resource name of the DAIEngineProfile that is assigned to this DAIEngine. Format is workspaces/*/daiEngineProfiles/*.

object (v1DAIEngineProfileInfo)

The original DAIEngineProfile data used by DAIEngine when using the DAIEngineProfile. For more info about each field see the original DAIEngineProfile resource.

state
string (v1DAIEngineState)
Default: "STATE_UNSPECIFIED"
Enum: "STATE_UNSPECIFIED" "STATE_STARTING" "STATE_RUNNING" "STATE_PAUSING" "STATE_PAUSED" "STATE_FAILED" "STATE_DELETING" "STATE_CONNECTING"

All possible DAIEngine states.

  • STATE_UNSPECIFIED: DAIEngine state is unspecified or unknown.
  • STATE_STARTING: DAIEngine is starting.
  • STATE_RUNNING: DAIEngine is running and can be used.
  • STATE_PAUSING: DAIEngine is pausing.
  • STATE_PAUSED: DAIEngine is paused and can be resumed again.
  • STATE_FAILED: DAIEngine has failed and can be resumed again.
  • STATE_DELETING: DAIEngine is being deleted.
  • STATE_CONNECTING: DAIEngine is establishing a connection with the AI Engine Manager.
object

Additional arbitrary metadata associated with the DAIEngine.

Annotations are key/value pairs. The key must:

  • be 63 characters or less
  • begin and end with an alphanumeric character ([a-z0-9A-Z])
  • with dashes (-), underscores (_), dots (.), and alphanumerics between
  • regex used for validation is: ^A-Za-z0-9?$
displayName
string

Human-readable name of the DAIEngine. Must contain at most 63 characters. Does not have to be unique.

version
string or null

Driverless AI version identifier. Version may be specified during engine creation but cannot be changed later. For example: "1.10.1" or "latest".

cpu
integer or null <int32>

The amount of CPU units requested by this DAIEngine.

gpu
integer or null <int32>

The amount of GPU units requested by this DAIEngine.

memoryBytes
string or null <int64>

The amount of memory in bytes requested by this DAIEngine.

storageBytes
string or null <int64>

The amount of storage requested by this DAIEngine.

object

Additional Driverless AI configuration.

Temporary: Some config keys are reserved and their value cannot be changed. Attempting to set or override a reserved key will have no effect, no error will be raised. Entries with reserved keys will not be available in this field (they are hidden).

maxIdleDuration
string or null (Maximum time the DAIEngine can be idle. When exceeded, the DAIEngine will pause. The idle time is reset when any of the following occurs: - incoming RPC request from client - user login or logout - system event like sync message from running or finished experiment - initialization of dataset upload - custom recipe upload)
maxRunningDuration
string or null

Maximum time the DAIEngine can be running. When exceeded, the DAIEngine will pause.

Responses

Request samples

Content type
application/json
{
  • "profile": "string",
  • "profileInfo": {
    },
  • "state": "STATE_UNSPECIFIED",
  • "annotations": {
    },
  • "displayName": "string",
  • "version": "string",
  • "cpu": 0,
  • "gpu": 0,
  • "memoryBytes": "string",
  • "storageBytes": "string",
  • "config": {
    },
  • "maxIdleDuration": "string",
  • "maxRunningDuration": "string"
}

Response samples

Content type
application/json
{
  • "daiEngine": {
    }
}

Download DAIEngine logs.

path Parameters
daiEngine
required
stringworkspaces/[^/]+/daiEngines/[^/]+

DAIEngine resource name. Format: workspaces/{workspace}/daiEngines/{dai_engine}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/daiEngines/DOWNLOAD_LOGS
Request Body schema: application/json
object

Request message for downloading DAIEngines log.

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "logs": {
    }
}

Migrate DAIEngine creator. Admin only.

path Parameters
daiEngine
required
stringworkspaces/[^/]+/daiEngines/[^/]+

DAIEngine resource name. Format: workspaces/{workspace}/daiEngines/{dai_engine}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/daiEngines/MIGRATE_CREATOR
Request Body schema: application/json
newCreator
required
string (New creator value. Name of an entity that becomes the new creator of the DAIEngine. Format: users/397b8c16-f4cb-41dd-a5e9-5e838edb81ab)

Responses

Request samples

Content type
application/json
{
  • "newCreator": "string"
}

Response samples

Content type
application/json
{
  • "daiEngine": {
    }
}

Resize DAIEngine storage.

path Parameters
daiEngine
required
stringworkspaces/[^/]+/daiEngines/[^/]+

DAIEngine resource name. Format: workspaces/{workspace}/daiEngines/{dai_engine}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/daiEngines/RESIZE_STORAGE
Request Body schema: application/json
newStorageBytes
required
string <int64>

New storage size in bytes.

Responses

Request samples

Content type
application/json
{
  • "newStorageBytes": "string"
}

Response samples

Content type
application/json
{
  • "daiEngine": {
    }
}

Upgrade Driverless AI version.

path Parameters
daiEngine
required
stringworkspaces/[^/]+/daiEngines/[^/]+

DAIEngine resource name. Format: workspaces/{workspace}/daiEngines/{dai_engine}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/daiEngines/UPGRADE_VERSION
Request Body schema: application/json
newVersion
required
string

New version value. For example "1.10.1" or "latest" (alias is also accepted).

Responses

Request samples

Content type
application/json
{
  • "newVersion": "string"
}

Response samples

Content type
application/json
{
  • "daiEngine": {
    }
}

Deletes a DAIEngine.

path Parameters
name_1
required
stringworkspaces/[^/]+/daiEngines/[^/]+

DAIEngine resource name. Format: workspaces/{workspace}/daiEngines/{dai_engine}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/daiEngines/DELETE
query Parameters
allowMissing
boolean

When set and the DAIEngine is not found, the request will succeed but no changes are made.

validateOnly
boolean

When set, request is validated but no changes are made.

Responses

Response samples

Content type
application/json
{
  • "daiEngine": {
    }
}

Returns a specific DAIEngine.

path Parameters
name_3
required
stringworkspaces/[^/]+/daiEngines/[^/]+

DAIEngine resource name. Format: workspaces/{workspace}/daiEngines/{dai_engine}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/daiEngines/GET

Responses

Response samples

Content type
application/json
{
  • "daiEngine": {
    }
}

Pauses a DAIEngine.

path Parameters
name
required
stringworkspaces/[^/]+/daiEngines/[^/]+

DAIEngine resource name. Format: workspaces/{workspace}/daiEngines/{dai_engine}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/daiEngines/PAUSE
Request Body schema: application/json
validateOnly
boolean

When set, request is validated but no changes are made.

Responses

Request samples

Content type
application/json
{
  • "validateOnly": true
}

Response samples

Content type
application/json
{
  • "daiEngine": {
    }
}

Resumes an existing DAIEngine.

path Parameters
name
required
stringworkspaces/[^/]+/daiEngines/[^/]+

DAIEngine resource name. Format: workspaces/{workspace}/daiEngines/{dai_engine}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/daiEngines/RESUME
Request Body schema: application/json
validateOnly
boolean

When set, request is validated but no changes are made.

Responses

Request samples

Content type
application/json
{
  • "validateOnly": true
}

Response samples

Content type
application/json
{
  • "daiEngine": {
    }
}

Returns a collection of DAIEngines within a workspace.

path Parameters
parent
required
stringworkspaces/[^/]+

Workspace resource name. Format: workspaces/{workspace}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/daiEngines/LIST
query Parameters
pageSize
integer <int32>

Maximum number of DAIEngines to return in a response. If unspecified (or set to 0), at most 50 DAIEngines will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.

pageToken
string

Leave unset to receive the initial page. To list any subsequent pages use the value of 'next_page_token' returned from the ListDAIEnginesResponse.

orderBy
string

Used to specify the sorting order.

When unset, DAIEngines are ordered by their time of creation in descending order. This is equivalent to "create_time desc".

When specified, the value must be a comma separated list of supported fields. The supported fields are:

  • name
  • version
  • cpu
  • gpu
  • memory_bytes
  • storage_bytes
  • creator
  • create_time
  • update_time
  • delete_time
  • resume_time
  • display_name
  • max_idle_duration
  • max_running_duration
  • uid

The default sorting order is ascending. For example: "name" and "name asc" are equivalent values.

To specify descending order for a field, append a " desc" suffix. For example: "name desc".

Redundant space characters are insignificant. For example these values are all equal:

  • " name, cpu desc"
  • "name, cpu desc"
  • "name , cpu desc "

Undefined (empty) time is interpreted as a zero time (0s since epoch, i.e. 1970-01-01T00:00:00Z).

Undefined (empty) duration is interpreted as a zero duration (0 seconds).

filter
string

Used to filter DAIEngines. When unset, no filtering is applied.

Filtering implements specification https://google.aip.dev/160.

Supported filter fields:

  • name
  • dai_engine_id
  • version (supporting version semantic comparison and version aliases)
  • state
  • cpu
  • gpu
  • memory_bytes
  • storage_bytes
  • creator
  • creator_display_name
  • create_time
  • update_time
  • delete_time
  • resume_time
  • reconciling
  • uid
  • display_name
  • max_idle_duration
  • max_running_duration
  • current_idle_duration
  • current_running_duration

Examples:

  • cpu > 5
  • gpu < 3
  • cpu >= 5 AND gpu <= 3
  • cpu != 5 OR gpu == 3
  • NOT (cpu > 5 OR gpu < 3)
  • -(cpu > 5 OR gpu < 3)
  • NOT (cpu > 5 OR (gpu < 3))
  • (cpu > 5 OR gpu < 3) AND memory_bytes != 1000
  • (cpu > 5 OR gpu < 3) AND (NOT ((((memory_bytes = 1000)))))
  • state = STATE_RUNNING AND create_time > "2012-04-21T11:30:00-04:00"
  • max_running_duration > "1s" AND max_running_duration != "5s"
  • version > "latest" AND version >= "1.10.3"
  • reconciling = true OR reconciling = false (supporting bool literals)
  • dai_engine_id = "*e*" OR display_name = "*e*" (supporting prefix/suffix wildcard * for string fields equality comparison)

Responses

Response samples

Content type
application/json
{
  • "daiEngines": [
    ],
  • "nextPageToken": "string",
  • "totalSize": 0
}

Creates a new DAIEngine within a specified workspace.

path Parameters
parent
required
stringworkspaces/[^/]+

Workspace resource name. Format: workspaces/{workspace}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/daiEngines/CREATE
query Parameters
daiEngineId
required
string

Specify the DAIEngine ID, which will become a part of the DAIEngine resource name.

It must:

  • contain 1-63 characters
  • contain only lowercase alphanumeric characters or hyphen ('-')
  • start with an alphabetic character
  • end with an alphanumeric character

This matches a regular expression: ^a-z?$

validateOnly
boolean

When set, request is only validated but no changes are made.

Request Body schema: application/json

The DAIEngine resource to create. NON_EMPTY_DEFAULT fields that are not set in this request will be set to a default value. Default value is determined by the workspace in which the engine is created. Each workspace has a defined constraint set, which contains the default value for each field.

profile
string

Optional. The resource name of the DAIEngineProfile that is assigned to this DAIEngine. Format is workspaces/*/daiEngineProfiles/*.

object (v1DAIEngineProfileInfo)

The original DAIEngineProfile data used by DAIEngine when using the DAIEngineProfile. For more info about each field see the original DAIEngineProfile resource.

state
string (v1DAIEngineState)
Default: "STATE_UNSPECIFIED"
Enum: "STATE_UNSPECIFIED" "STATE_STARTING" "STATE_RUNNING" "STATE_PAUSING" "STATE_PAUSED" "STATE_FAILED" "STATE_DELETING" "STATE_CONNECTING"

All possible DAIEngine states.

  • STATE_UNSPECIFIED: DAIEngine state is unspecified or unknown.
  • STATE_STARTING: DAIEngine is starting.
  • STATE_RUNNING: DAIEngine is running and can be used.
  • STATE_PAUSING: DAIEngine is pausing.
  • STATE_PAUSED: DAIEngine is paused and can be resumed again.
  • STATE_FAILED: DAIEngine has failed and can be resumed again.
  • STATE_DELETING: DAIEngine is being deleted.
  • STATE_CONNECTING: DAIEngine is establishing a connection with the AI Engine Manager.
object

Additional arbitrary metadata associated with the DAIEngine.

Annotations are key/value pairs. The key must:

  • be 63 characters or less
  • begin and end with an alphanumeric character ([a-z0-9A-Z])
  • with dashes (-), underscores (_), dots (.), and alphanumerics between
  • regex used for validation is: ^A-Za-z0-9?$
displayName
string

Human-readable name of the DAIEngine. Must contain at most 63 characters. Does not have to be unique.

version
string or null

Driverless AI version identifier. Version may be specified during engine creation but cannot be changed later. For example: "1.10.1" or "latest".

cpu
integer or null <int32>

The amount of CPU units requested by this DAIEngine.

gpu
integer or null <int32>

The amount of GPU units requested by this DAIEngine.

memoryBytes
string or null <int64>

The amount of memory in bytes requested by this DAIEngine.

storageBytes
string or null <int64>

The amount of storage requested by this DAIEngine.

object

Additional Driverless AI configuration.

Temporary: Some config keys are reserved and their value cannot be changed. Attempting to set or override a reserved key will have no effect, no error will be raised. Entries with reserved keys will not be available in this field (they are hidden).

maxIdleDuration
string or null (Maximum time the DAIEngine can be idle. When exceeded, the DAIEngine will pause. The idle time is reset when any of the following occurs: - incoming RPC request from client - user login or logout - system event like sync message from running or finished experiment - initialization of dataset upload - custom recipe upload)
maxRunningDuration
string or null

Maximum time the DAIEngine can be running. When exceeded, the DAIEngine will pause.

Responses

Request samples

Content type
application/json
{
  • "profile": "string",
  • "profileInfo": {
    },
  • "state": "STATE_UNSPECIFIED",
  • "annotations": {
    },
  • "displayName": "string",
  • "version": "string",
  • "cpu": 0,
  • "gpu": 0,
  • "memoryBytes": "string",
  • "storageBytes": "string",
  • "config": {
    },
  • "maxIdleDuration": "string",
  • "maxRunningDuration": "string"
}

Response samples

Content type
application/json
{
  • "daiEngine": {
    }
}

DAIProfileService

Returns a collection of DAIProfiles.

query Parameters
pageSize
integer <int32>

Maximum number of DAIProfiles to return in a response. If unspecified (or set to 0), at most 50 DAIProfiles will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.

pageToken
string

Leave unset to receive the initial page. To list any subsequent pages use the value of 'next_page_token' returned from the ListDAIProfilesResponse.

Responses

Response samples

Content type
application/json
{
  • "daiProfiles": [
    ],
  • "nextPageToken": "string",
  • "totalSize": 0
}

Creates a new DAIProfile. (-- api-linter: core::0133::method-signature=disabled aip.dev/not-precedent: Not specifying "parent" because DAIProfile is a top-level resource. --) (-- api-linter: core::0133::http-uri-parent=disabled aip.dev/not-precedent: Not specifying "parent" because DAIProfile is a top-level resource. --)

query Parameters
daiProfileId
required
string

Specify the DAIProfile ID, which will become a part of the DAIProfile resource name.

It must:

  • contain 1-63 characters
  • contain only lowercase alphanumeric characters or hyphen ('-')
  • start with an alphabetic character
  • end with an alphanumeric character

This matches a regular expression: ^a-z?$

Request Body schema: application/json

The DAIProfile resource to create.

displayName
string

Human-readable name of DAIProfile.

cpu
required
integer <int32>

The amount of CPU units.

gpu
required
integer <int32>

The amount of GPU units.

memoryBytes
required
string <int64>

The amount of memory in bytes.

storageBytes
required
string <int64>

The amount of storage in bytes.

Responses

Request samples

Content type
application/json
{
  • "displayName": "string",
  • "cpu": 0,
  • "gpu": 0,
  • "memoryBytes": "string",
  • "storageBytes": "string"
}

Response samples

Content type
application/json
{
  • "daiProfile": {
    }
}

Updates a DAIProfile.

path Parameters
daiProfile.name
required
stringdaiProfiles/[^/]+

DAIProfile resource name.

query Parameters
updateMask
required
string

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

Allowed field paths are: {"display_name", "cpu", "gpu", "memory_bytes", "storage_bytes"}.

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

Request Body schema: application/json

DAIProfile resource.

displayName
string

Human-readable name of DAIProfile.

cpu
required
integer <int32>

The amount of CPU units.

gpu
required
integer <int32>

The amount of GPU units.

memoryBytes
required
string <int64>

The amount of memory in bytes.

storageBytes
required
string <int64>

The amount of storage in bytes.

Responses

Request samples

Content type
application/json
{
  • "displayName": "string",
  • "cpu": 0,
  • "gpu": 0,
  • "memoryBytes": "string",
  • "storageBytes": "string"
}

Response samples

Content type
application/json
{
  • "daiProfile": {
    }
}

Deletes a DAIProfile.

path Parameters
name_2
required
stringdaiProfiles/[^/]+

DAIProfile resource name.

Responses

Response samples

Content type
application/json
{ }

Returns a specific DAIProfile.

path Parameters
name_4
required
stringdaiProfiles/[^/]+

DAIProfile resource name.

Responses

Response samples

Content type
application/json
{
  • "daiProfile": {
    }
}

Change order of a DAIProfile. Changing DAIProfile's order may result in changing order of other DAIProfiles. new_order must be >= 0. When new_order is greater than the last possible order, server will use the last order instead. When new_order is zero, server will use the last order instead.

Example 1:

  • DAIProfiles: {profileA.order=1, profileB.order=2, profileC.order=3}.
  • ReorderDAIProfile(name=profileA,new_order=2)
  • DAIProfiles: {profileB.order=1, profileA.order=2, profileC.order=3}

Example 2 (when new_order greater than the last order, apply last order):

  • DAIProfiles: {profileA.order=1, profileB.order=2, profileC.order=3}.
  • ReorderDAIProfile(name=profileA,new_order=50)
  • DAIProfiles: {profileB.order=1, profileC.order=2, profileA.order=3}

Example 3 (when new_order is zero, apply last order):

  • DAIProfiles: {profileA.order=1, profileB.order=2, profileC.order=3}.
  • ReorderDAIProfile(name=profileA,new_order=0)
  • DAIProfiles: {profileB.order=1, profileC.order=2, profileA.order=3}
path Parameters
name
required
stringdaiProfiles/[^/]+

DAIProfile resource name.

Request Body schema: application/json
newOrder
required
integer <int32>

New order of the DAIProfile. Must be >= 0.

Responses

Request samples

Content type
application/json
{
  • "newOrder": 0
}

Response samples

Content type
application/json
{
  • "daiProfiles": [
    ]
}

DAISetupService

Updates a DAISetup.

path Parameters
daiSetup.name
required
stringworkspaces/[^/]+/daiSetup

DAISetup resource name.

query Parameters
updateMask
required
string

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

Allowed field paths are: {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, yaml_pod_template_spec, yaml_gpu_tolerations, triton_enabled}

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

Request Body schema: application/json

DAISetup resource.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintDuration)

Message representing a constraint on a user-specified duration value.

object (v1ConstraintDuration)

Message representing a constraint on a user-specified duration value.

maxNonInteractionDuration
string or null

Max non-interation duration applied on all DAIEngines in the workspace.

maxUnusedDuration
string or null

Max unused duration applied on all DAIEngines in the workspace.

object

When specified, then it is applied on top of each DAIEngine's configuration_override in the workspace.

It replaces config values for keys that are set and inserts new values for keys that are not set already. Other configuration key-value pairs are preserved.

For example, if DAIEngine's config is set by user as {"foo": "bar", "foo2": "baz"} and DAISetup.configuration_override is {"foo2": "boom", "foo3": "booz"} then the resulting DAIEngine configuration will be {"foo": "bar", "foo2": "boom", "foo3": "booz"}.

yamlPodTemplateSpec
string (YAML representation of custom PodTemplateSpec serialized into bytes. Definition of PodTemplateSpec: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core)

When specified, then it is applied for each DAIEngine in the workspace. 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

yamlGpuTolerations
string (YAML representation of custom GPU Tolerations serialized into bytes. Definition of one Toleration: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#toleration-v1-core)

When specified, then it is applied for each DAIEngine in the workspace. 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"
tritonEnabled
boolean

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

Responses

Request samples

Content type
application/json
{
  • "cpuConstraint": {
    },
  • "gpuConstraint": {
    },
  • "memoryBytesConstraint": {
    },
  • "storageBytesConstraint": {
    },
  • "maxIdleDurationConstraint": {
    },
  • "maxRunningDurationConstraint": {
    },
  • "maxNonInteractionDuration": "string",
  • "maxUnusedDuration": "string",
  • "configurationOverride": {
    },
  • "yamlPodTemplateSpec": "string",
  • "yamlGpuTolerations": "string",
  • "tritonEnabled": true
}

Response samples

Content type
application/json
{
  • "daiSetup": {
    }
}

Returns a DAISetup from a workspace.

path Parameters
name_5
required
stringworkspaces/[^/]+/daiSetup

DAISetup resource name. Format: workspaces/{workspace}/daiSetup

Responses

Response samples

Content type
application/json
{
  • "daiSetup": {
    }
}

DAIVersionService

Returns a collection of DAIEngines within a workspace.

query Parameters
pageSize
integer <int32>

Maximum number of DAIVersions to return in a response. If unspecified (or set to 0), at most 50 DAIVersions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.

pageToken
string

Leave unset to receive the initial page. To list any subsequent pages use the value of 'next_page_token' returned from the ListDAIVersionsResponse.

orderBy
string

Used to specify the sorting order.

When unset, DAIVersions are ordered by their version name in descending order. This is equivalent to "version desc".

When specified, the value must be a comma separated list of supported fields. The supported fields are:

  • version

The default sorting order is ascending. For example: "version" and "version asc" are equivalent values.

To specify descending order for a field, append a " desc" suffix. For example: "version desc".

Redundant space characters are insignificant.

filter
string

Used to filter DAIVersions. When unset, no filtering is applied.

Filtering implements specification https://google.aip.dev/160.

Supported filter fields:

  • version (supporting version semantic comparison and version aliases)
  • deprecated

Examples:

  • version > "latest" AND version >= "1.10.3"
  • deprecated = false

Responses

Response samples

Content type
application/json
{
  • "daiVersions": [
    ],
  • "nextPageToken": "string",
  • "totalSize": 0
}

DefaultDAISetupService

Updates the DefaultDAISetup.

path Parameters
defaultDaiSetup.name
required
stringdefaultDAISetup

Resource name.

query Parameters
updateMask
required
string

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

Allowed field paths are: {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, yaml_pod_template_spec, yaml_gpu_tolerations, triton_enabled}

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

Request Body schema: application/json

DefaultDAISetup resource.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintDuration)

Message representing a constraint on a user-specified duration value.

object (v1ConstraintDuration)

Message representing a constraint on a user-specified duration value.

maxNonInteractionDuration
string or null

Max non-interation duration applied on all DAIEngines in the workspace.

maxUnusedDuration
string or null

Max unused duration applied on all DAIEngines in the workspace.

object

When specified, then it is applied on top of each DAIEngine's configuration_override in the workspace.

It replaces config values for keys that are set and inserts new values for keys that are not set already. Other configuration key-value pairs are preserved.

For example, if DAIEngine's config is set by user as {"foo": "bar", "foo2": "baz"} and DAISetup.configuration_override is {"foo2": "boom", "foo3": "booz"} then the resulting DAIEngine configuration will be {"foo": "bar", "foo2": "boom", "foo3": "booz"}.

yamlPodTemplateSpec
string (YAML representation of custom PodTemplateSpec serialized into bytes. Definition of PodTemplateSpec: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core)

When specified, then it is applied for each DAIEngine in the workspace. 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

yamlGpuTolerations
string (YAML representation of custom GPU Tolerations serialized into bytes. Definition of one Toleration: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#toleration-v1-core)

When specified, then it is applied for each DAIEngine in the workspace. 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"
tritonEnabled
boolean

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

Responses

Request samples

Content type
application/json
{
  • "cpuConstraint": {
    },
  • "gpuConstraint": {
    },
  • "memoryBytesConstraint": {
    },
  • "storageBytesConstraint": {
    },
  • "maxIdleDurationConstraint": {
    },
  • "maxRunningDurationConstraint": {
    },
  • "maxNonInteractionDuration": "string",
  • "maxUnusedDuration": "string",
  • "configurationOverride": {
    },
  • "yamlPodTemplateSpec": "string",
  • "yamlGpuTolerations": "string",
  • "tritonEnabled": true
}

Response samples

Content type
application/json
{
  • "defaultDaiSetup": {
    }
}

Returns the DefaultDAISetup.

path Parameters
name_6
required
stringdefaultDAISetup

DefaultDAISetup resource name. Format: defaultDAISetup

Responses

Response samples

Content type
application/json
{
  • "defaultDaiSetup": {
    }
}

DefaultH2OSetupService

Updates the DefaultH2OSetup.

path Parameters
defaultH2oSetup.name
required
stringdefaultH2OSetup

Resource name.

query Parameters
updateMask
required
string

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

Allowed field paths are: {node_count_constraint, cpu_constraint, gpu_constraint, memory_bytes_constraint, max_idle_duration_constraint, max_running_duration_constraint, yaml_pod_template_spec, yaml_gpu_tolerations}

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

Request Body schema: application/json

DefaultH2OSetup resource.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintDuration)

Message representing a constraint on a user-specified duration value.

object (v1ConstraintDuration)

Message representing a constraint on a user-specified duration value.

yamlPodTemplateSpec
string (YAML representation of custom PodTemplateSpec serialized into bytes. Definition of PodTemplateSpec: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core)

When specified, then it is applied for each H2OEngine in the workspace. PodTemplateSpec describes what will be applied on top of a regular H2O pod before it is created. This template is merged into H2O 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 H2O pod): metadata: annotations: custom-key: custom-value

yamlGpuTolerations
string (YAML representation of custom GPU Tolerations serialized into bytes. Definition of one Toleration: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#toleration-v1-core)

When specified, then it is applied for each H2OEngine in the workspace. GPUTolerations sets H2O's pod.spec.tolerations in case H2OEngine 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 H2O pod):

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

Responses

Request samples

Content type
application/json
{
  • "nodeCountConstraint": {
    },
  • "cpuConstraint": {
    },
  • "gpuConstraint": {
    },
  • "memoryBytesConstraint": {
    },
  • "maxIdleDurationConstraint": {
    },
  • "maxRunningDurationConstraint": {
    },
  • "yamlPodTemplateSpec": "string",
  • "yamlGpuTolerations": "string"
}

Response samples

Content type
application/json
{
  • "defaultH2oSetup": {
    }
}

Returns the DefaultH2OSetup.

path Parameters
name_7
required
stringdefaultH2OSetup

DefaultH2OSetup resource name. Format: defaultH2OSetup

Responses

Response samples

Content type
application/json
{
  • "defaultH2oSetup": {
    }
}

EngineService

Returns a collection of Engines within a workspace.

path Parameters
parent
required
stringworkspaces/[^/]+

Workspace resource name. Format: workspaces/{workspace}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/engines/LIST
query Parameters
pageSize
integer <int32>

Maximum number of Engines to return in a response. If unspecified (or set to 0), at most 50 Engines will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.

pageToken
string

Leave unset to receive the initial page. To list any subsequent pages use the value of 'next_page_token' returned from the ListEnginesResponse.

orderBy
string

Used to specify the sorting order.

When unset, Engines are ordered by their time of creation in descending order. This is equivalent to "create_time desc".

When specified, the value must be a comma separated list of supported fields. The supported fields are: {name, version, cpu, gpu, memory_bytes, storage_bytes, creator, create_time, update_time, delete_time, resume_time, display_name, uid}

The default sorting order is ascending. For example: "name" and "name asc" are equivalent values.

To specify descending order for a field, append a " desc" suffix. For example: "name desc".

Redundant space characters are insignificant. For example these values are all equal:

  • " name, cpu desc"
  • "name, cpu desc"
  • "name , cpu desc "
filter
string

Used to filter Engines. When unset, no filtering is applied.

Filtering implements specification https://google.aip.dev/160.

Supported filter fields:

  • name
  • engine_id
  • version (supporting version semantic comparison, does not support aliases)
  • deprecated_version
  • state
  • cpu
  • gpu
  • memory_bytes
  • storage_bytes
  • creator
  • creator_display_name
  • create_time
  • update_time
  • delete_time
  • resume_time
  • reconciling
  • uid
  • display_name
  • max_idle_duration
  • max_running_duration
  • current_idle_duration
  • current_running_duration

Examples:

  • cpu > 5
  • gpu < 3
  • cpu >= 5 AND gpu <= 3
  • cpu != 5 OR gpu == 3
  • NOT (cpu > 5 OR gpu < 3)
  • -(cpu > 5 OR gpu < 3)
  • NOT (cpu > 5 OR (gpu < 3))
  • (cpu > 5 OR gpu < 3) AND memory_bytes != 1000
  • (cpu > 5 OR gpu < 3) AND (NOT ((((memory_bytes = 1000)))))
  • state = STATE_RUNNING AND create_time > "2012-04-21T11:30:00-04:00"
  • version >= "1.10.3"
  • deprecated_version = false
  • reconciling = true OR reconciling = false
  • engine_id = "*e*" OR display_name = "*e*" (supporting prefix/suffix wildcard * for string fields equality comparison)

Responses

Response samples

Content type
application/json
{
  • "engines": [
    ],
  • "nextPageToken": "string",
  • "totalSize": 0
}

H2OEngineConstraintSetService

Returns the current H2OEngineConstraintSet.

path Parameters
name_8
required
stringworkspaces/[^/]+/h2oEngineConstraintSet

H2OEngineConstraintSet resource name. Format: workspaces/{workspace}/h2oEngineConstraintSet

Responses

Response samples

Content type
application/json
{
  • "h2oEngineConstraintSet": {
    }
}

H2OEngineProfileService

Updates a H2OEngineProfile.

path Parameters
h2oEngineProfile.name
required
stringworkspaces/[^/]+/h2oEngineProfiles/[^/]+

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

query Parameters
updateMask
required
string

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

Allowed field paths are:

  • display_name
  • priority
  • disabled
  • assigned_oidc_roles
  • max_running_engines
  • node_count_constraint
  • cpu_constraint
  • gpu_constraint
  • memory_bytes_constraint
  • max_idle_duration_constraint
  • max_running_duration_constraint
  • yaml_pod_template_spec
  • yaml_gpu_tolerations

Paths are case sensitive (must match exactly).

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

Request Body schema: application/json

Required. H2OEngineProfile resource.

displayName
string

Optional. Human-readable name.

priority
integer <int32>

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

enabled
boolean

Optional. When set to true, the H2OEngineProfile is enabled and can be used in an H2OEngine. When set to false, the H2OEngineProfile is disabled and cannot be used in any H2OEngine.

assignedOidcRolesEnabled
boolean

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

assignedOidcRoles
Array of strings

Optional. List of OIDC roles assigned to this H2OEngineProfile.

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 or null <int32>

Optional. Maximum number of H2OEngines per user that can be running when using this H2OEngineProfile.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintDuration)

Message representing a constraint on a user-specified duration value.

object (v1ProfileConstraintDuration)

Message representing a constraint on a user-specified duration value.

yamlPodTemplateSpec
string (Optional. YAML representation of custom PodTemplateSpec. Definition of PodTemplateSpec: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core)

When specified, then it is applied for each H2OEngine that uses this profile. PodTemplateSpec describes what will be applied on top of a regular H2O pod before it is created. This template is merged into H2O 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 H2O pod): metadata: annotations: custom-key: custom-value

yamlGpuTolerations
string (Optional. YAML representation of custom GPU Tolerations. Definition of one Toleration: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#toleration-v1-core)

When specified, then it is applied for each H2OEngine that uses this profile. GPUTolerations sets H2O's pod.spec.tolerations in case H2OEngine 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 H2O pod):

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

Responses

Request samples

Content type
application/json
{
  • "displayName": "string",
  • "priority": 0,
  • "enabled": true,
  • "assignedOidcRolesEnabled": true,
  • "assignedOidcRoles": [
    ],
  • "maxRunningEngines": 0,
  • "nodeCountConstraint": {
    },
  • "cpuConstraint": {
    },
  • "gpuConstraint": {
    },
  • "memoryBytesConstraint": {
    },
  • "maxIdleDurationConstraint": {
    },
  • "maxRunningDurationConstraint": {
    },
  • "yamlPodTemplateSpec": "string",
  • "yamlGpuTolerations": "string"
}

Response samples

Content type
application/json
{
  • "h2oEngineProfile": {
    }
}

Deletes a H2OEngineProfile.

path Parameters
name_3
required
stringworkspaces/[^/]+/h2oEngineProfiles/[^/]+

H2OEngine resource name. Format: workspaces/{workspace}/h2oEngineProfiles/{h2o_engine_profile}

Responses

Response samples

Content type
application/json
{ }

Get H2OEngineProfile.

path Parameters
name_9
required
stringworkspaces/[^/]+/h2oEngineProfiles/[^/]+

H2OEngineProfile resource name. Format: workspaces/{workspace}/h2oEngineProfiles/{h2o_engine_profile}

Responses

Response samples

Content type
application/json
{
  • "h2oEngineProfile": {
    }
}

Returns a collection of H2OEngineProfiles.

path Parameters
parent
required
stringworkspaces/[^/]+

Workspace resource name. Format: workspaces/{workspace}

query Parameters
pageSize
integer <int32>

Maximum number of H2OEngineProfiles to return in a response. If unspecified (or set to 0), at most 50 H2OEngineProfiles will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.

pageToken
string

Leave unset to receive the initial page. To list any subsequent pages use the value of 'next_page_token' returned from the ListH2OEngineProfilesResponse.

Responses

Response samples

Content type
application/json
{
  • "h2oEngineProfiles": [
    ],
  • "nextPageToken": "string"
}

Creates a new H2OEngineProfile.

path Parameters
parent
required
stringworkspaces/[^/]+

Workspace resource name. Format: workspaces/{workspace}

query Parameters
h2oEngineProfileId
required
string

Specify the H2OEngineProfile ID, which will become a part of the H2OEngineProfile resource name.

It must:

  • contain 1-63 characters
  • contain only lowercase alphanumeric characters or hyphen ('-')
  • start with an alphabetic character
  • end with an alphanumeric character

This matches a regular expression: ^a-z?$

Request Body schema: application/json

The H2OEngineProfile resource to create.

displayName
string

Optional. Human-readable name.

priority
integer <int32>

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

enabled
boolean

Optional. When set to true, the H2OEngineProfile is enabled and can be used in an H2OEngine. When set to false, the H2OEngineProfile is disabled and cannot be used in any H2OEngine.

assignedOidcRolesEnabled
boolean

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

assignedOidcRoles
Array of strings

Optional. List of OIDC roles assigned to this H2OEngineProfile.

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 or null <int32>

Optional. Maximum number of H2OEngines per user that can be running when using this H2OEngineProfile.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ProfileConstraintDuration)

Message representing a constraint on a user-specified duration value.

object (v1ProfileConstraintDuration)

Message representing a constraint on a user-specified duration value.

yamlPodTemplateSpec
string (Optional. YAML representation of custom PodTemplateSpec. Definition of PodTemplateSpec: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core)

When specified, then it is applied for each H2OEngine that uses this profile. PodTemplateSpec describes what will be applied on top of a regular H2O pod before it is created. This template is merged into H2O 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 H2O pod): metadata: annotations: custom-key: custom-value

yamlGpuTolerations
string (Optional. YAML representation of custom GPU Tolerations. Definition of one Toleration: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#toleration-v1-core)

When specified, then it is applied for each H2OEngine that uses this profile. GPUTolerations sets H2O's pod.spec.tolerations in case H2OEngine 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 H2O pod):

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

Responses

Request samples

Content type
application/json
{
  • "displayName": "string",
  • "priority": 0,
  • "enabled": true,
  • "assignedOidcRolesEnabled": true,
  • "assignedOidcRoles": [
    ],
  • "maxRunningEngines": 0,
  • "nodeCountConstraint": {
    },
  • "cpuConstraint": {
    },
  • "gpuConstraint": {
    },
  • "memoryBytesConstraint": {
    },
  • "maxIdleDurationConstraint": {
    },
  • "maxRunningDurationConstraint": {
    },
  • "yamlPodTemplateSpec": "string",
  • "yamlGpuTolerations": "string"
}

Response samples

Content type
application/json
{
  • "h2oEngineProfile": {
    }
}

H2OEngineService

Return recommended engine size based on the dimensions of the compressed dataset. (-- api-linter: core::0136::http-uri-suffix=disabled aip.dev/not-precedent: The linter is bugged. It requires incorrect suffix ("H2o" instead of "H2O") --)

query Parameters
rowsCount
required
string <int64>

Estimated number of rows in the dataset.

columnsCount
required
string <int64>

Estimated number of columns in the dataset.

limits.memoryBytesPerNodeMin
required
string <int64>

Memory bytes per node min constraint.

limits.memoryBytesPerNodeMax
string <int64>

Memory bytes per node max constraint.

limits.nodeCountMin
required
string <int64>

Node count min constraint.

limits.nodeCountMax
string <int64>

Node count max constraint.

Responses

Response samples

Content type
application/json
{
  • "h2oEngineSize": {
    }
}

Return recommended engine size based on the raw size of the expected raw dataset size and given constraints. (-- api-linter: core::0136::http-uri-suffix=disabled aip.dev/not-precedent: The linter is bugged. It requires incorrect suffix ("H2o" instead of "H2O") --)

query Parameters
datasetSizeBytes
required
string <int64>

Estimated size of the dataset in bytes.

limits.memoryBytesPerNodeMin
required
string <int64>

Memory bytes per node min constraint.

limits.memoryBytesPerNodeMax
string <int64>

Memory bytes per node max constraint.

limits.nodeCountMin
required
string <int64>

Node count min constraint.

limits.nodeCountMax
string <int64>

Node count max constraint.

Responses

Response samples

Content type
application/json
{
  • "h2oEngineSize": {
    }
}

Download H2OEngine logs.

path Parameters
h2oEngine
required
stringworkspaces/[^/]+/h2oEngines/[^/]+

H2OEngine resource name. Format: workspaces/{workspace}/h2oEngines/{h2o_engine}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/h2oEngines/DOWNLOAD_LOGS
Request Body schema: application/json
object

Request message for downloading H2OEngines logs.

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "logs": {
    }
}

Returns a specific H2OEngine.

path Parameters
name_10
required
stringworkspaces/[^/]+/h2oEngines/[^/]+

H2OEngine resource name. Format: workspaces/{workspace}/h2oEngines/{h2o_engine}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/h2oEngines/GET

Responses

Response samples

Content type
application/json
{
  • "h2oEngine": {
    }
}

Deletes a H2OEngine.

path Parameters
name_4
required
stringworkspaces/[^/]+/h2oEngines/[^/]+

H2OEngine resource name. Format: workspaces/{workspace}/h2oEngines/{h2o_engine}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/h2oEngines/DELETE
query Parameters
allowMissing
boolean

When set and the H2OEngine is not found, the request will succeed but no changes are made.

validateOnly
boolean

When set, request is validated but no changes are made.

Responses

Response samples

Content type
application/json
{
  • "h2oEngine": {
    }
}

Terminate H2OEngine.

path Parameters
name
required
stringworkspaces/[^/]+/h2oEngines/[^/]+

H2OEngine resource name.

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/h2oEngines/TERMINATE
Request Body schema: application/json
object

Request message for terminating a running H2OEngine.

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "h2oEngine": {
    }
}

Returns a collection of H2OEngines within a workspace.

path Parameters
parent
required
stringworkspaces/[^/]+

Workspace resource name. Format: workspaces/{workspace}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/h2oEngines/LIST
query Parameters
pageSize
integer <int32>

Maximum number of H2OEngines to return in a response. If unspecified (or set to 0), at most 50 H2OEngines will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.

pageToken
string

Leave unset to receive the initial page. To list any subsequent pages use the value of 'next_page_token' returned from the ListH2OEnginesResponse.

orderBy
string

Used to specify the sorting order.

When unset, H2OEngines are ordered by their time of creation in descending order. This is equivalent to "create_time desc".

When specified, the value must be a comma separated list of supported fields. The supported fields are:

  • name
  • version
  • cpu
  • gpu
  • memoryBytes
  • creator
  • createTime
  • updateTime
  • deleteTime
  • displayName
  • maxIdleDuration
  • maxRunningDuration
  • uid
  • nodeCount

The default sorting order is ascending. For example: "name" and "name asc" are equivalent values.

To specify descending order for a field, append a " desc" suffix. For example: "name desc".

Redundant space characters are insignificant. For example these values are all equal:

  • " name, cpu desc"
  • "name, cpu desc"
  • "name , cpu desc "

Undefined (empty) time is interpreted as a zero time (0s since epoch, i.e. 1970-01-01T00:00:00Z).

Undefined (empty) duration is interpreted as a zero duration (0 seconds).

filter
string

Used to filter H2OEngines. When unset, no filtering is applied.

Filtering implements specification https://google.aip.dev/160.

Supported filter fields:

  • name
  • h2o_engine_id
  • version (supporting version semantic comparison and version aliases)
  • state
  • cpu
  • gpu
  • memory_bytes
  • creator
  • creator_display_name
  • create_time
  • update_time
  • delete_time
  • reconciling
  • uid
  • display_name
  • max_idle_duration
  • max_running_duration
  • current_idle_duration
  • current_running_duration
  • node_count

Examples:

  • cpu > 5
  • gpu < 3
  • cpu >= 5 AND gpu <= 3
  • cpu != 5 OR gpu == 3
  • NOT (cpu > 5 OR gpu < 3)
  • -(cpu > 5 OR gpu < 3)
  • NOT (cpu > 5 OR (gpu < 3))
  • (cpu > 5 OR gpu < 3) AND memory_bytes != 1000
  • (cpu > 5 OR gpu < 3) AND (NOT ((((memory_bytes = 1000)))))
  • state = STATE_RUNNING AND create_time > "2012-04-21T11:30:00-04:00"
  • max_running_duration > "1s" AND max_running_duration != "5s"
  • version < "latest" AND version >= "3.38.0.1"
  • reconciling = true OR reconciling = false (supporting bool literals)
  • h2o_engine_id = "*e*" OR display_name = "*e*" (supporting prefix/suffix wildcard * for string fields equality comparison)

Responses

Response samples

Content type
application/json
{
  • "h2oEngines": [
    ],
  • "nextPageToken": "string",
  • "totalSize": 0
}

Creates and starts a new H2OEngine within a specified workspace.

path Parameters
parent
required
stringworkspaces/[^/]+

workspace resource name. Format: workspaces/{workspace}

Authorization may require the following permission on the engine's parent workspace:

  • actions/enginemanager/h2oEngines/CREATE
query Parameters
h2oEngineId
required
string

Specify the H2OEngine ID, which will become a part of the H2OEngine resource name.

It must:

  • contain 1-63 characters
  • contain only lowercase alphanumeric characters or hyphen ('-')
  • start with an alphabetic character
  • end with an alphanumeric character

This matches a regular expression: ^a-z?$

validateOnly
boolean

When set, request is only validated but no changes are made.

Request Body schema: application/json

The H2OEngine resource to create. NON_EMPTY_DEFAULT fields that are not set in this request will be set to a default value. Default value is determined by the workspace in which the engine is created. Each workspace has a defined constraint set, which contains the default value for each field.

profile
string

Optional. The resource name of the H2OEngineProfile that is used by this H2OEngine. Format is workspaces/*/h2oEngineProfiles/*.

state
string (v1H2OEngineState)
Default: "STATE_UNSPECIFIED"
Enum: "STATE_UNSPECIFIED" "STATE_STARTING" "STATE_RUNNING" "STATE_PAUSING" "STATE_PAUSED" "STATE_FAILED" "STATE_DELETING" "STATE_CONNECTING" "STATE_TERMINATING" "STATE_TERMINATED"

All possible H2OEngine states.

  • STATE_UNSPECIFIED: H2OEngine state is unspecified or unknown.
  • STATE_STARTING: H2OEngine is starting.
  • STATE_RUNNING: H2OEngine is running and can be used.
  • STATE_PAUSING: H2OEngine is pausing. Deprecated, use STATE_TERMINATING.
  • STATE_PAUSED: H2OEngine is paused and CANNOT be resumed again. Deprecated, use STATE_TERMINATED.
  • STATE_FAILED: H2OEngine has failed.
  • STATE_DELETING: H2OEngine is being deleted.
  • STATE_CONNECTING: H2OEngine is establishing a connection with the AI Engine Manager.
  • STATE_TERMINATING: H2OEngine is terminating.
  • STATE_TERMINATED: H2OEngine is terminated. This is a final state.
object

Additional arbitrary metadata associated with the H2OEngine.

Annotations are key/value pairs. The key must:

  • be 63 characters or less
  • begin and end with an alphanumeric character ([a-z0-9A-Z])
  • with dashes (-), underscores (_), dots (.), and alphanumerics between
  • regex used for validation is: ^A-Za-z0-9?$
displayName
string

Human-readable name of the H2OEngine. Must contain at most 63 characters. Does not have to be unique.

version
required
string

H2OEngine version identifier. Version must be specified during engine creation but cannot be changed later. For example: "3.38.0.1" or "latest".

cpu
integer or null <int32>

The amount of CPU units per node requested by this H2OEngine.

gpu
integer or null <int32>

The amount of GPU units per node requested by this H2OEngine.

memoryBytes
string or null <int64>

The amount of memory in bytes per node requested by this H2OEngine.

maxIdleDuration
string or null

Maximum time an H2OEngine can be idle. When exceeded, the H2OEngine will terminate.

maxRunningDuration
string or null

Maximum time an H2OEngine can be running. When exceeded, the H2OEngine will terminate.

nodeCount
integer or null <int32>

The number of nodes requested by this H2OEngine.

Responses

Request samples

Content type
application/json
{
  • "profile": "string",
  • "state": "STATE_UNSPECIFIED",
  • "annotations": {
    },
  • "displayName": "string",
  • "version": "string",
  • "cpu": 0,
  • "gpu": 0,
  • "memoryBytes": "string",
  • "maxIdleDuration": "string",
  • "maxRunningDuration": "string",
  • "nodeCount": 0
}

Response samples

Content type
application/json
{
  • "h2oEngine": {
    }
}

Returns a recommended number of nodes and memory within a given workspace constraints for an H2OEngine based on the dimensions of the compressed dataset. (-- api-linter: core::0136::http-uri-suffix=disabled aip.dev/not-precedent: Not declaring URI suffix for this static service custom method without scope. --)

This method is deprecated. Use CalculateH2OEngineSizeCompressedDatasetV2 instead.

path Parameters
workspace
required
stringworkspaces/[^/]+

Workspace resource name. Format: workspaces/{workspace}

query Parameters
rowsCount
required
string <int64>

Estimated number of rows in the dataset.

columnsCount
required
string <int64>

Estimated number of columns in the dataset.

Responses

Response samples

Content type
application/json
{
  • "h2oEngineSize": {
    }
}

Returns a recommended number of nodes and memory within a given workspace constraints for an H2OEngine based on the raw size of the dataset. (-- api-linter: core::0136::http-uri-suffix=disabled aip.dev/not-precedent: Not declaring URI suffix for this static service custom method without scope. --)

This method is deprecated. Use CalculateH2OEngineSizeRawDatasetV2 instead.

path Parameters
workspace
required
stringworkspaces/[^/]+

Workspace resource name. Format: workspaces/{workspace}

query Parameters
datasetSizeBytes
required
string <int64>

Estimated size of the dataset in Bytes.

Responses

Response samples

Content type
application/json
{
  • "h2oEngineSize": {
    }
}

H2OSetupService

Updates a H2OSetup.

path Parameters
h2oSetup.name
required
stringworkspaces/[^/]+/h2oSetup

H2OSetup resource name.

query Parameters
updateMask
required
string

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

Allowed field paths are: {node_count_constraint, cpu_constraint, gpu_constraint, memory_bytes_constraint, max_idle_duration_constraint, max_running_duration_constraint, yaml_pod_template_spec, yaml_gpu_tolerations}

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

Request Body schema: application/json

H2OSetup resource.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintNumeric)

Message representing a constraint on a user-specified numeric value.

object (v1ConstraintDuration)

Message representing a constraint on a user-specified duration value.

object (v1ConstraintDuration)

Message representing a constraint on a user-specified duration value.

yamlPodTemplateSpec
string (YAML representation of custom PodTemplateSpec serialized into bytes. Definition of PodTemplateSpec: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#podtemplatespec-v1-core)

When specified, then it is applied for each H2OEngine in the workspace. PodTemplateSpec describes what will be applied on top of a regular H2O pod before it is created. This template is merged into H2O 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 H2O pod): metadata: annotations: custom-key: custom-value

yamlGpuTolerations
string (YAML representation of custom GPU Tolerations serialized into bytes. Definition of one Toleration: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.27/#toleration-v1-core)

When specified, then it is applied for each H2OEngine in the workspace. GPUTolerations sets H2O's pod.spec.tolerations in case H2OEngine 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 H2O pod):

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

Responses

Request samples

Content type
application/json
{
  • "nodeCountConstraint": {
    },
  • "cpuConstraint": {
    },
  • "gpuConstraint": {
    },
  • "memoryBytesConstraint": {
    },
  • "maxIdleDurationConstraint": {
    },
  • "maxRunningDurationConstraint": {
    },
  • "yamlPodTemplateSpec": "string",
  • "yamlGpuTolerations": "string"
}

Response samples

Content type
application/json
{
  • "h2oSetup": {
    }
}

Returns a H2OSetup from a workspace.

path Parameters
name_11
required
stringworkspaces/[^/]+/h2oSetup

H2OSetup resource name. Format: workspaces/{workspace}/h2oSetup

Responses

Response samples

Content type
application/json
{
  • "h2oSetup": {
    }
}

H2OVersionService

Returns a collection of H2OEngines within a workspace.

query Parameters
pageSize
integer <int32>

Maximum number of H2OVersions to return in a response. If unspecified (or set to 0), at most 50 H2OVersions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.

pageToken
string

Leave unset to receive the initial page. To list any subsequent pages use the value of 'next_page_token' returned from the ListH2OVersionsResponse.

orderBy
string

Used to specify the sorting order.

When unset, H2OVersions are ordered by their version name in descending order. This is equivalent to "version desc".

When specified, the value must be a comma separated list of supported fields. The supported fields are:

  • version

The default sorting order is ascending. For example: "version" and "version asc" are equivalent values.

To specify descending order for a field, append a " desc" suffix. For example: "version desc".

Redundant space characters are insignificant.

filter
string

Used to filter H2OVersions. When unset, no filtering is applied.

Filtering implements specification https://google.aip.dev/160.

Supported filter fields:

  • version (supporting version semantic comparison and version aliases)
  • deprecated

Examples:

  • version > "latest" AND version >= "3.38.0.1"
  • deprecated = false

Responses

Response samples

Content type
application/json
{
  • "h2oVersions": [
    ],
  • "nextPageToken": "string",
  • "totalSize": 0
}

InternalDAIVersionService

Returns a collection of InternalDAIVersions.

query Parameters
pageSize
integer <int32>

Maximum number of InternalDAIVersions to return in a response. If unspecified (or set to 0), at most 50 InternalDAIVersions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.

pageToken
string

Leave unset to receive the initial page. To list any subsequent pages use the value of 'next_page_token' returned from the ListInternalDAIVersionsResponse.

Responses

Response samples

Content type
application/json
{
  • "internalDaiVersions": [
    ],
  • "nextPageToken": "string",
  • "totalSize": 0
}

Creates a new InternalDAIVersion. (-- api-linter: core::0133::http-uri-parent=disabled aip.dev/not-precedent: InternalDAIVersion has no parent (it's a top-level resource) --) (-- api-linter: core::0133::method-signature=disabled aip.dev/not-precedent: InternalDAIVersion has no parent (it's a top-level resource) --)

query Parameters
internalDaiVersionId
required
string

Specify the InternalDAIVersion resource ID, which will become a part of the InternalDAIVersion resource name.

It must:

  • be in semver format (but allowing more segments than only the standard three segments Major.Minor.Patch)
  • contain max 63 characters

Examples: "1.10.3", "1.10.3-alpha", "1.10.3.2", "1.10.3.2-alpha"

Request Body schema: application/json

The InternalDAIVersion resource to create.

deprecated
boolean

Indicates whether DAIVersion is deprecated.

image
required
string

Name of the Docker image used when using this DAIVersion.

imagePullPolicy
string (v1ImagePullPolicy)
Default: "IMAGE_PULL_POLICY_UNSPECIFIED"
Enum: "IMAGE_PULL_POLICY_UNSPECIFIED" "IMAGE_PULL_POLICY_ALWAYS" "IMAGE_PULL_POLICY_NEVER" "IMAGE_PULL_POLICY_IF_NOT_PRESENT"

Policy for downloading an image in K8s.

  • IMAGE_PULL_POLICY_UNSPECIFIED: Unspecified image pull policy.
  • IMAGE_PULL_POLICY_ALWAYS: Every time the container is launched, the container image registry is queried to resolve the name to an image digest.
  • IMAGE_PULL_POLICY_NEVER: Do not try to fetch the image. If the image is already present locally, the container will start. If the image is not present, container startup will fail.
  • IMAGE_PULL_POLICY_IF_NOT_PRESENT: The image is pulled only if it is not already present locally.
imagePullSecrets
Array of strings

List of references to k8s secrets that can be used for pulling an image of this DAIVersion from a private container image registry or repository.

gpuResourceName
string

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

dataDirectoryStorageClass
string

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.

object

Additional arbitrary metadata associated with the DAIVersion.

Annotations are key/value pairs. The key must:

  • be 63 characters or less
  • begin and end with an alphanumeric character ([a-z0-9A-Z])
  • with dashes (-), underscores (_), dots (.), and alphanumerics between
  • regex used for validation is: ^A-Za-z0-9?$

Responses

Request samples

Content type
application/json
{
  • "deprecated": true,
  • "image": "string",
  • "imagePullPolicy": "IMAGE_PULL_POLICY_UNSPECIFIED",
  • "imagePullSecrets": [
    ],
  • "gpuResourceName": "string",
  • "dataDirectoryStorageClass": "string",
  • "annotations": {
    }
}

Response samples

Content type
application/json
{
  • "internalDaiVersion": {
    }
}

Assign new set of aliases to InternalDAIVersion. This will replace existing InternalDAIVersion aliases with the new aliases. If there are other InternalDAIVersions with the same alias that we try to assign, they will be deleted from the other InternalDAIVersions.

Example 1 - assign only alias latest to another InternalDAIVersion:

  • InternalDAIVersions: {daiv1.aliases=["latest", "foo"], daiv2.aliases=["bar", "baz"], daiv3.aliases=["goo"]}
  • AssignAliases(daiv3, aliases=["latest"])
  • InternalDAIVersions: {daiv1.aliases=["foo"], daiv2.aliases=["bar", "baz"], daiv3.aliases=["latest"]} Note that alias "latest" was deleted from daiv1 and alias "goo" was deleted from daiv3.

Example 2 - add alias latest to another InternalDAIVersion:

  • InternalDAIVersions: {daiv1.aliases=["latest", "foo"], daiv2.aliases=["bar", "baz"], daiv3.aliases=["goo"]}
  • AssignAliases(daiv3, aliases=["goo", "latest"])
  • InternalDAIVersions: {daiv1.aliases=["foo"], daiv2.aliases=["bar", "baz"], daiv3.aliases=["goo", "latest"]} Note that alias "latest" was deleted from daiv1 and alias "goo" remained in the daiv3.

Example 3 - assign multiple aliases which affects aliases of multiple InternalDAIVersions:

  • InternalDAIVersions: {daiv1.aliases=["latest", "foo"], daiv2.aliases=["bar", "baz"], daiv3.aliases=["goo"]}
  • AssignAliases(daiv3, aliases=["latest", "bar"])
  • InternalDAIVersions: {daiv1.aliases=["foo"], daiv2.aliases=["baz"], daiv3.aliases=["latest", "bar"]} Note that
  • alias "latest" was deleted from daiv1
  • alias "latest" was added to daiv3
  • alias "bar" was deleted from daiv2
  • alias "goo" was deleted from daiv3

(-- api-linter: core::0136::http-uri-suffix=disabled aip.dev/not-precedent: Google linter incorrectly requires URI suffix "assignInternalDaiVersionAliases" --)

Request Body schema: application/json
internalDaiVersion
required
string

InternalDAIVersion resource name to which assign the new aliases.

aliases
required
Array of strings

New aliases of the InternalH2OVersion.

Responses

Request samples

Content type
application/json
{
  • "internalDaiVersion": "string",
  • "aliases": [
    ]
}

Response samples

Content type
application/json
{
  • "internalDaiVersions": [
    ]
}

Updates a InternalDAIVersion.

path Parameters
internalDaiVersion.name
required
stringinternalDAIVersions/[^/]+

InternalDAIVersion resource name. For example: internalDAIVersions/1.10.1.2

query Parameters
updateMask
required
string

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

Allowed field paths are: {deprecated, image, image_pull_policy, image_pull_secrets, gpu_resource_name, data_directory_storage_class, annotations}.

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

Request Body schema: application/json

InternalDAIVersion resource.

deprecated
boolean

Indicates whether DAIVersion is deprecated.

image
required
string

Name of the Docker image used when using this DAIVersion.

imagePullPolicy
string (v1ImagePullPolicy)
Default: "IMAGE_PULL_POLICY_UNSPECIFIED"
Enum: "IMAGE_PULL_POLICY_UNSPECIFIED" "IMAGE_PULL_POLICY_ALWAYS" "IMAGE_PULL_POLICY_NEVER" "IMAGE_PULL_POLICY_IF_NOT_PRESENT"

Policy for downloading an image in K8s.

  • IMAGE_PULL_POLICY_UNSPECIFIED: Unspecified image pull policy.
  • IMAGE_PULL_POLICY_ALWAYS: Every time the container is launched, the container image registry is queried to resolve the name to an image digest.
  • IMAGE_PULL_POLICY_NEVER: Do not try to fetch the image. If the image is already present locally, the container will start. If the image is not present, container startup will fail.
  • IMAGE_PULL_POLICY_IF_NOT_PRESENT: The image is pulled only if it is not already present locally.
imagePullSecrets
Array of strings

List of references to k8s secrets that can be used for pulling an image of this DAIVersion from a private container image registry or repository.

gpuResourceName
string

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

dataDirectoryStorageClass
string

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.

object

Additional arbitrary metadata associated with the DAIVersion.

Annotations are key/value pairs. The key must:

  • be 63 characters or less
  • begin and end with an alphanumeric character ([a-z0-9A-Z])
  • with dashes (-), underscores (_), dots (.), and alphanumerics between
  • regex used for validation is: ^A-Za-z0-9?$

Responses

Request samples

Content type
application/json
{
  • "deprecated": true,
  • "image": "string",
  • "imagePullPolicy": "IMAGE_PULL_POLICY_UNSPECIFIED",
  • "imagePullSecrets": [
    ],
  • "gpuResourceName": "string",
  • "dataDirectoryStorageClass": "string",
  • "annotations": {
    }
}

Response samples

Content type
application/json
{
  • "internalDaiVersion": {
    }
}

Returns a specific InternalDAIVersion.

path Parameters
name_12
required
stringinternalDAIVersions/[^/]+

InternalDAIVersion resource name.

Responses

Response samples

Content type
application/json
{
  • "internalDaiVersion": {
    }
}

Deletes a InternalDAIVersion.

path Parameters
name_5
required
stringinternalDAIVersions/[^/]+

InternalDAIVersion resource name.

Responses

Response samples

Content type
application/json
{ }

InternalH2OVersionService

Returns a collection of InternalH2OVersions.

query Parameters
pageSize
integer <int32>

Maximum number of InternalH2OVersions to return in a response. If unspecified (or set to 0), at most 50 InternalH2OVersions will be returned. The maximum value is 1000; values above 1000 will be coerced to 1000.

pageToken
string

Leave unset to receive the initial page. To list any subsequent pages use the value of 'next_page_token' returned from the ListInternalH2OVersionsResponse.

Responses

Response samples

Content type
application/json
{
  • "internalH2oVersions": [
    ],
  • "nextPageToken": "string",
  • "totalSize": 0
}

Creates a new InternalH2OVersion. (-- api-linter: core::0133::http-uri-parent=disabled aip.dev/not-precedent: InternalH2OVersion has no parent (it's a top-level resource) --) (-- api-linter: core::0133::method-signature=disabled aip.dev/not-precedent: InternalH2OVersion has no parent (it's a top-level resource) --)

query Parameters
internalH2oVersionId
required
string

Specify the InternalH2OVersion resource ID, which will become a part of the InternalH2OVersion resource name.

It must:

  • be in semver format (but allowing more segments than only the standard three segments Major.Minor.Patch)
  • contain max 63 characters

Examples: "3.42.0.3", "3.42.0.3-alpha", "3.42.0.3.1", "3.42.0.3.1-alpha"

Request Body schema: application/json

The InternalH2OVersion resource to create.

deprecated
boolean

Indicates whether H2OVersion is deprecated.

image
required
string

Name of the Docker image used when using this H2OVersion.

imagePullPolicy
string (v1ImagePullPolicy)
Default: "IMAGE_PULL_POLICY_UNSPECIFIED"
Enum: "IMAGE_PULL_POLICY_UNSPECIFIED" "IMAGE_PULL_POLICY_ALWAYS" "IMAGE_PULL_POLICY_NEVER" "IMAGE_PULL_POLICY_IF_NOT_PRESENT"

Policy for downloading an image in K8s.

  • IMAGE_PULL_POLICY_UNSPECIFIED: Unspecified image pull policy.
  • IMAGE_PULL_POLICY_ALWAYS: Every time the container is launched, the container image registry is queried to resolve the name to an image digest.
  • IMAGE_PULL_POLICY_NEVER: Do not try to fetch the image. If the image is already present locally, the container will start. If the image is not present, container startup will fail.
  • IMAGE_PULL_POLICY_IF_NOT_PRESENT: The image is pulled only if it is not already present locally.
imagePullSecrets
Array of strings

List of references to k8s secrets that can be used for pulling an image of this H2OVersion from a private container image registry or repository.

gpuResourceName
string

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

object

Additional arbitrary metadata associated with the H2OVersion.

Annotations are key/value pairs. The key must:

  • be 63 characters or less
  • begin and end with an alphanumeric character ([a-z0-9A-Z])
  • with dashes (-), underscores (_), dots (.), and alphanumerics between
  • regex used for validation is: ^A-Za-z0-9?$

Responses

Request samples

Content type
application/json
{
  • "deprecated": true,
  • "image": "string",
  • "imagePullPolicy": "IMAGE_PULL_POLICY_UNSPECIFIED",
  • "imagePullSecrets": [
    ],
  • "gpuResourceName": "string",
  • "annotations": {
    }
}

Response samples

Content type
application/json
{
  • "internalH2oVersion": {
    }
}

Same behaviour as in AssignInternalDAIVersionAliases. (-- api-linter: core::0136::http-uri-suffix=disabled aip.dev/not-precedent: Google linter incorrectly requires URI suffix "assignInternalH2oVersionAliases" --)

Request Body schema: application/json
internalH2oVersion
required
string

InternalH2OVersion resource name to which assign the new aliases.

aliases
required
Array of strings

New aliases of the InternalH2OVersion.

Responses

Request samples

Content type
application/json
{
  • "internalH2oVersion": "string",
  • "aliases": [
    ]
}

Response samples

Content type
application/json
{
  • "internalH2oVersions": [
    ]
}

Updates a InternalH2OVersion.

path Parameters
internalH2oVersion.name
required
stringinternalH2OVersions/[^/]+

InternalH2OVersion resource name. For example: internalH2OVersions/3.42.0.3

query Parameters
updateMask
required
string

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

Allowed field paths are: {deprecated, image, image_pull_policy, image_pull_secrets, gpu_resource_name, annotations}.

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

Request Body schema: application/json

InternalH2OVersion resource.

deprecated
boolean

Indicates whether H2OVersion is deprecated.

image
required
string

Name of the Docker image used when using this H2OVersion.

imagePullPolicy
string (v1ImagePullPolicy)
Default: "IMAGE_PULL_POLICY_UNSPECIFIED"
Enum: "IMAGE_PULL_POLICY_UNSPECIFIED" "IMAGE_PULL_POLICY_ALWAYS" "IMAGE_PULL_POLICY_NEVER" "IMAGE_PULL_POLICY_IF_NOT_PRESENT"

Policy for downloading an image in K8s.

  • IMAGE_PULL_POLICY_UNSPECIFIED: Unspecified image pull policy.
  • IMAGE_PULL_POLICY_ALWAYS: Every time the container is launched, the container image registry is queried to resolve the name to an image digest.
  • IMAGE_PULL_POLICY_NEVER: Do not try to fetch the image. If the image is already present locally, the container will start. If the image is not present, container startup will fail.
  • IMAGE_PULL_POLICY_IF_NOT_PRESENT: The image is pulled only if it is not already present locally.
imagePullSecrets
Array of strings

List of references to k8s secrets that can be used for pulling an image of this H2OVersion from a private container image registry or repository.

gpuResourceName
string

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

object

Additional arbitrary metadata associated with the H2OVersion.

Annotations are key/value pairs. The key must:

  • be 63 characters or less
  • begin and end with an alphanumeric character ([a-z0-9A-Z])
  • with dashes (-), underscores (_), dots (.), and alphanumerics between
  • regex used for validation is: ^A-Za-z0-9?$

Responses

Request samples

Content type
application/json
{
  • "deprecated": true,
  • "image": "string",
  • "imagePullPolicy": "IMAGE_PULL_POLICY_UNSPECIFIED",
  • "imagePullSecrets": [
    ],
  • "gpuResourceName": "string",
  • "annotations": {
    }
}

Response samples

Content type
application/json
{
  • "internalH2oVersion": {
    }
}

Returns a specific InternalH2OVersion.

path Parameters
name_13
required
stringinternalH2OVersions/[^/]+

InternalH2OVersion resource name.

Responses

Response samples

Content type
application/json
{
  • "internalH2oVersion": {
    }
}

Deletes a InternalH2OVersion.

path Parameters
name_6
required
stringinternalH2OVersions/[^/]+

InternalH2OVersion resource name.

Responses

Response samples

Content type
application/json
{ }