Skip to content
Ona Docs

ListWarmPools

prebuilds.list_warm_pools(PrebuildListWarmPoolsParams**kwargs) -> SyncWarmPoolsPage[WarmPool]
POST/gitpod.v1.PrebuildService/ListWarmPools

Lists warm pools with optional filtering.

Use this method to:

  • View all warm pools for a project
  • Monitor warm pool status across environment classes

Examples

  • List warm pools for a project:

    filter:
      projectIds: ["b0e12f6c-4c67-429d-a4a6-d9838b5da047"]
ParametersExpand Collapse
token: Optional[str]
page_size: Optional[int]
maximum100
minimum0
filter: Optional[Filter]

filter contains the filter options for listing warm pools

environment_class_ids: Optional[Sequence[str]]

environment_class_ids filters warm pools to specific environment classes

project_ids: Optional[Sequence[str]]

project_ids filters warm pools to specific projects

ReturnsExpand Collapse
class WarmPool:

WarmPool maintains pre-created environment instances from a prebuild snapshot for near-instant environment startup. One warm pool exists per <project, environment_class> pair.

metadata contains organizational and ownership information

created_at: datetime

created_at is when the warm pool was created

formatdate-time
updated_at: datetime

updated_at is when the warm pool was last updated

formatdate-time
environment_class_id: Optional[str]

environment_class_id is the environment class whose instances are warmed

formatuuid
organization_id: Optional[str]

organization_id is the ID of the organization that owns the warm pool

formatuuid
project_id: Optional[str]

project_id is the ID of the project this warm pool belongs to

formatuuid
runner_id: Optional[str]

runner_id is the runner that manages this warm pool. Derived from the environment class.

formatuuid

spec contains the desired configuration for this warm pool

desired_phase: Optional[WarmPoolPhase]

desired_phase is the intended lifecycle phase for this warm pool. Managed by the API and reconciler.

One of the following:
"WARM_POOL_PHASE_UNSPECIFIED"
"WARM_POOL_PHASE_PENDING"
"WARM_POOL_PHASE_READY"
"WARM_POOL_PHASE_DEGRADED"
"WARM_POOL_PHASE_DELETING"
"WARM_POOL_PHASE_DELETED"
Deprecateddesired_size: Optional[int]

desired_size is the number of warm instances to maintain. Deprecated: Use min_size and max_size instead for dynamic scaling. Existing pools will be migrated to min_size=max_size=desired_size.

formatint32
maximum20
minimum1
max_size: Optional[int]

max_size is the maximum number of warm instances to maintain. The pool will never scale above this value. Must be >= min_size and <= 20.

formatint32
maximum20
minimum1
min_size: Optional[int]

min_size is the minimum number of warm instances to maintain. The pool will never scale below this value. Must be >= 0 and <= max_size. Set to 0 to allow full scale-down.

formatint32
maximum20
snapshot_id: Optional[str]

snapshot_id is the prebuild snapshot to warm up in the pool. Updated by the reconciler when a new prebuild completes for this project and environment class. Empty when no completed prebuild exists yet.

formatuuid
spec_version: Optional[str]

spec_version is incremented each time the spec is updated. Used for optimistic concurrency control.

status contains the current status reported by the runner

phase is the current phase of the warm pool lifecycle

One of the following:
"WARM_POOL_PHASE_UNSPECIFIED"
"WARM_POOL_PHASE_PENDING"
"WARM_POOL_PHASE_READY"
"WARM_POOL_PHASE_DEGRADED"
"WARM_POOL_PHASE_DELETING"
"WARM_POOL_PHASE_DELETED"
desired_size: Optional[int]

desired_size is the current target number of instances the autoscaler has decided on. Unlike running_instances, this value is stable and does not fluctuate as instances are claimed and backfilled.

formatint32
failure_message: Optional[str]

failure_message contains details about why the warm pool is degraded or failed

running_instances: Optional[int]

running_instances is the number of running warm instances in the pool, ready to be claimed for near-instant environment startup.

formatint32
status_version: Optional[str]

status_version is incremented each time the status is updated. Used for optimistic concurrency control.

stopped_instances: Optional[int]

stopped_instances is the number of pre-provisioned but stopped instances in the pool. When a running instance is claimed, stopped instances are used to backfill the running pool faster than provisioning from scratch. Stopped instances only incur storage costs, allowing a larger total pool at lower cost than keeping all instances running.

formatint32
id: Optional[str]

id is the unique identifier for the warm pool

formatuuid

ListWarmPools

import os
from gitpod import Gitpod

client = Gitpod(
    bearer_token=os.environ.get("GITPOD_API_KEY"),  # This is the default and can be omitted
)
page = client.prebuilds.list_warm_pools(
    filter={
        "project_ids": ["b0e12f6c-4c67-429d-a4a6-d9838b5da047"]
    },
)
page = page.warm_pools[0]
print(page.id)
{
  "pagination": {
    "nextToken": "nextToken"
  },
  "warmPools": [
    {
      "metadata": {
        "createdAt": "2019-12-27T18:11:19.117Z",
        "updatedAt": "2019-12-27T18:11:19.117Z",
        "environmentClassId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "organizationId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "projectId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "runnerId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
      },
      "spec": {
        "desiredPhase": "WARM_POOL_PHASE_UNSPECIFIED",
        "desiredSize": 1,
        "maxSize": 1,
        "minSize": 20,
        "snapshotId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "specVersion": "specVersion"
      },
      "status": {
        "phase": "WARM_POOL_PHASE_UNSPECIFIED",
        "desiredSize": 0,
        "failureMessage": "failureMessage",
        "runningInstances": 0,
        "statusVersion": "statusVersion",
        "stoppedInstances": 0
      },
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
    }
  ]
}
Returns Examples
{
  "pagination": {
    "nextToken": "nextToken"
  },
  "warmPools": [
    {
      "metadata": {
        "createdAt": "2019-12-27T18:11:19.117Z",
        "updatedAt": "2019-12-27T18:11:19.117Z",
        "environmentClassId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "organizationId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "projectId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "runnerId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
      },
      "spec": {
        "desiredPhase": "WARM_POOL_PHASE_UNSPECIFIED",
        "desiredSize": 1,
        "maxSize": 1,
        "minSize": 20,
        "snapshotId": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",
        "specVersion": "specVersion"
      },
      "status": {
        "phase": "WARM_POOL_PHASE_UNSPECIFIED",
        "desiredSize": 0,
        "failureMessage": "failureMessage",
        "runningInstances": 0,
        "statusVersion": "statusVersion",
        "stoppedInstances": 0
      },
      "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"
    }
  ]
}