Skip to content
Ona Docs

Prebuilds

PrebuildService manages prebuilds for projects to enable faster environment startup times. Prebuilds create snapshots of environments that can be used to provision new environments quickly.

CancelPrebuild
POST/gitpod.v1.PrebuildService/CancelPrebuild
CreatePrebuild
POST/gitpod.v1.PrebuildService/CreatePrebuild
CreatePrebuildLogsToken
POST/gitpod.v1.PrebuildService/CreatePrebuildLogsToken
CreateWarmPool
POST/gitpod.v1.PrebuildService/CreateWarmPool
DeletePrebuild
POST/gitpod.v1.PrebuildService/DeletePrebuild
DeleteWarmPool
POST/gitpod.v1.PrebuildService/DeleteWarmPool
ListPrebuilds
POST/gitpod.v1.PrebuildService/ListPrebuilds
ListWarmPools
POST/gitpod.v1.PrebuildService/ListWarmPools
GetPrebuild
POST/gitpod.v1.PrebuildService/GetPrebuild
GetWarmPool
POST/gitpod.v1.PrebuildService/GetWarmPool
UpdateWarmPool
POST/gitpod.v1.PrebuildService/UpdateWarmPool
ModelsExpand Collapse
Prebuild object { metadata, spec, status, id }

Prebuild represents a prebuild for a project that creates a snapshot for faster environment startup times.

metadata: PrebuildMetadata { createdAt, creator, updatedAt, 5 more }

metadata contains organizational and ownership information

createdAt: string

created_at is when the prebuild was created

formatdate-time
creator: Subject { id, principal }

creator is the identity of who created the prebuild. For manual prebuilds, this is the user who triggered it. For scheduled prebuilds, this is the configured executor.

id: optional string

id is the UUID of the subject

formatuuid
principal: optional Principal

Principal is the principal of the subject

One of the following:
"PRINCIPAL_UNSPECIFIED"
"PRINCIPAL_ACCOUNT"
"PRINCIPAL_USER"
"PRINCIPAL_RUNNER"
"PRINCIPAL_ENVIRONMENT"
"PRINCIPAL_SERVICE_ACCOUNT"
"PRINCIPAL_RUNNER_MANAGER"
updatedAt: string

updated_at is when the prebuild was last updated

formatdate-time
environmentClassId: optional string

environment_class_id is the environment class used to create this prebuild. While the prebuild is created with a specific environment class, environments with different classes (e.g., smaller or larger instance sizes) can be created from the same prebuild, as long as they run on the same runner. If not specified in create requests, uses the project’s default environment class.

formatuuid
executor: optional Subject { id, principal }

executor is the identity used to run the prebuild. The executor’s SCM credentials are used to clone the repository. If not set, the creator’s identity is used.

id: optional string

id is the UUID of the subject

formatuuid
principal: optional Principal

Principal is the principal of the subject

One of the following:
"PRINCIPAL_UNSPECIFIED"
"PRINCIPAL_ACCOUNT"
"PRINCIPAL_USER"
"PRINCIPAL_RUNNER"
"PRINCIPAL_ENVIRONMENT"
"PRINCIPAL_SERVICE_ACCOUNT"
"PRINCIPAL_RUNNER_MANAGER"
organizationId: optional string

organization_id is the ID of the organization that owns the prebuild

formatuuid
projectId: optional string

project_id is the ID of the project this prebuild was created for

formatuuid
triggeredBy: optional PrebuildTrigger

trigger describes the trigger that created this prebuild.

One of the following:
"PREBUILD_TRIGGER_UNSPECIFIED"
"PREBUILD_TRIGGER_MANUAL"
"PREBUILD_TRIGGER_SCHEDULED"
spec: PrebuildSpec { desiredPhase, specVersion, timeout }

spec contains the configuration used to create this prebuild

desiredPhase: optional PrebuildPhase

desired_phase is the desired phase of the prebuild. Used to signal cancellation or other state changes. This field is managed by the API and reconciler.

One of the following:
"PREBUILD_PHASE_UNSPECIFIED"
"PREBUILD_PHASE_PENDING"
"PREBUILD_PHASE_STARTING"
"PREBUILD_PHASE_RUNNING"
"PREBUILD_PHASE_STOPPING"
"PREBUILD_PHASE_SNAPSHOTTING"
"PREBUILD_PHASE_COMPLETED"
"PREBUILD_PHASE_FAILED"
"PREBUILD_PHASE_CANCELLING"
"PREBUILD_PHASE_CANCELLED"
"PREBUILD_PHASE_DELETING"
"PREBUILD_PHASE_DELETED"
specVersion: optional string

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

timeout: optional string

timeout is the maximum time allowed for the prebuild to complete. Defaults to 60 minutes if not specified. Maximum allowed timeout is 2 hours.

formatregex
status: PrebuildStatus { phase, completionTime, environmentId, 6 more }

status contains the current status and progress of the prebuild

phase is the current phase of the prebuild lifecycle

One of the following:
"PREBUILD_PHASE_UNSPECIFIED"
"PREBUILD_PHASE_PENDING"
"PREBUILD_PHASE_STARTING"
"PREBUILD_PHASE_RUNNING"
"PREBUILD_PHASE_STOPPING"
"PREBUILD_PHASE_SNAPSHOTTING"
"PREBUILD_PHASE_COMPLETED"
"PREBUILD_PHASE_FAILED"
"PREBUILD_PHASE_CANCELLING"
"PREBUILD_PHASE_CANCELLED"
"PREBUILD_PHASE_DELETING"
"PREBUILD_PHASE_DELETED"
completionTime: optional string

completion_time is when the prebuild completed (successfully or with failure)

formatdate-time
environmentId: optional string

environment_id is the ID of the environment used to create this prebuild. This field is set when the prebuild environment is created.

formatuuid
failureMessage: optional string

failure_message contains details about why the prebuild failed

logUrl: optional string

log_url provides access to prebuild logs. During prebuild execution, this references the environment logs. After completion, this may reference archived logs.

formaturi
snapshotCompletionPercentage: optional number

snapshot_completion_percentage is the progress of snapshot creation (0-100). Only populated when phase is SNAPSHOTTING and progress is available from the cloud provider. This value may update infrequently or remain at 0 depending on the provider.

formatint32
maximum100
snapshotSizeBytes: optional string

snapshot_size_bytes is the size of the snapshot in bytes. Only populated when the snapshot is available (phase is COMPLETED).

statusVersion: optional string

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

warningMessage: optional string

warning_message contains warnings from the prebuild environment that indicate something went wrong but the prebuild could still complete. For example, the devcontainer failed to build but the environment is still usable. These warnings will likely affect any environment started from this prebuild.

id: optional string

id is the unique identifier for the prebuild

formatuuid
PrebuildMetadata object { createdAt, creator, updatedAt, 5 more }

PrebuildMetadata contains metadata about the prebuild

createdAt: string

created_at is when the prebuild was created

formatdate-time
creator: Subject { id, principal }

creator is the identity of who created the prebuild. For manual prebuilds, this is the user who triggered it. For scheduled prebuilds, this is the configured executor.

id: optional string

id is the UUID of the subject

formatuuid
principal: optional Principal

Principal is the principal of the subject

One of the following:
"PRINCIPAL_UNSPECIFIED"
"PRINCIPAL_ACCOUNT"
"PRINCIPAL_USER"
"PRINCIPAL_RUNNER"
"PRINCIPAL_ENVIRONMENT"
"PRINCIPAL_SERVICE_ACCOUNT"
"PRINCIPAL_RUNNER_MANAGER"
updatedAt: string

updated_at is when the prebuild was last updated

formatdate-time
environmentClassId: optional string

environment_class_id is the environment class used to create this prebuild. While the prebuild is created with a specific environment class, environments with different classes (e.g., smaller or larger instance sizes) can be created from the same prebuild, as long as they run on the same runner. If not specified in create requests, uses the project’s default environment class.

formatuuid
executor: optional Subject { id, principal }

executor is the identity used to run the prebuild. The executor’s SCM credentials are used to clone the repository. If not set, the creator’s identity is used.

id: optional string

id is the UUID of the subject

formatuuid
principal: optional Principal

Principal is the principal of the subject

One of the following:
"PRINCIPAL_UNSPECIFIED"
"PRINCIPAL_ACCOUNT"
"PRINCIPAL_USER"
"PRINCIPAL_RUNNER"
"PRINCIPAL_ENVIRONMENT"
"PRINCIPAL_SERVICE_ACCOUNT"
"PRINCIPAL_RUNNER_MANAGER"
organizationId: optional string

organization_id is the ID of the organization that owns the prebuild

formatuuid
projectId: optional string

project_id is the ID of the project this prebuild was created for

formatuuid
triggeredBy: optional PrebuildTrigger

trigger describes the trigger that created this prebuild.

One of the following:
"PREBUILD_TRIGGER_UNSPECIFIED"
"PREBUILD_TRIGGER_MANUAL"
"PREBUILD_TRIGGER_SCHEDULED"
PrebuildPhase = "PREBUILD_PHASE_UNSPECIFIED" or "PREBUILD_PHASE_PENDING" or "PREBUILD_PHASE_STARTING" or 9 more

PrebuildPhase represents the lifecycle phase of a prebuild

One of the following:
"PREBUILD_PHASE_UNSPECIFIED"
"PREBUILD_PHASE_PENDING"
"PREBUILD_PHASE_STARTING"
"PREBUILD_PHASE_RUNNING"
"PREBUILD_PHASE_STOPPING"
"PREBUILD_PHASE_SNAPSHOTTING"
"PREBUILD_PHASE_COMPLETED"
"PREBUILD_PHASE_FAILED"
"PREBUILD_PHASE_CANCELLING"
"PREBUILD_PHASE_CANCELLED"
"PREBUILD_PHASE_DELETING"
"PREBUILD_PHASE_DELETED"
PrebuildSpec object { desiredPhase, specVersion, timeout }

PrebuildSpec contains the configuration used to create a prebuild

desiredPhase: optional PrebuildPhase

desired_phase is the desired phase of the prebuild. Used to signal cancellation or other state changes. This field is managed by the API and reconciler.

One of the following:
"PREBUILD_PHASE_UNSPECIFIED"
"PREBUILD_PHASE_PENDING"
"PREBUILD_PHASE_STARTING"
"PREBUILD_PHASE_RUNNING"
"PREBUILD_PHASE_STOPPING"
"PREBUILD_PHASE_SNAPSHOTTING"
"PREBUILD_PHASE_COMPLETED"
"PREBUILD_PHASE_FAILED"
"PREBUILD_PHASE_CANCELLING"
"PREBUILD_PHASE_CANCELLED"
"PREBUILD_PHASE_DELETING"
"PREBUILD_PHASE_DELETED"
specVersion: optional string

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

timeout: optional string

timeout is the maximum time allowed for the prebuild to complete. Defaults to 60 minutes if not specified. Maximum allowed timeout is 2 hours.

formatregex
PrebuildStatus object { phase, completionTime, environmentId, 6 more }

PrebuildStatus contains the current status and progress of a prebuild

phase is the current phase of the prebuild lifecycle

One of the following:
"PREBUILD_PHASE_UNSPECIFIED"
"PREBUILD_PHASE_PENDING"
"PREBUILD_PHASE_STARTING"
"PREBUILD_PHASE_RUNNING"
"PREBUILD_PHASE_STOPPING"
"PREBUILD_PHASE_SNAPSHOTTING"
"PREBUILD_PHASE_COMPLETED"
"PREBUILD_PHASE_FAILED"
"PREBUILD_PHASE_CANCELLING"
"PREBUILD_PHASE_CANCELLED"
"PREBUILD_PHASE_DELETING"
"PREBUILD_PHASE_DELETED"
completionTime: optional string

completion_time is when the prebuild completed (successfully or with failure)

formatdate-time
environmentId: optional string

environment_id is the ID of the environment used to create this prebuild. This field is set when the prebuild environment is created.

formatuuid
failureMessage: optional string

failure_message contains details about why the prebuild failed

logUrl: optional string

log_url provides access to prebuild logs. During prebuild execution, this references the environment logs. After completion, this may reference archived logs.

formaturi
snapshotCompletionPercentage: optional number

snapshot_completion_percentage is the progress of snapshot creation (0-100). Only populated when phase is SNAPSHOTTING and progress is available from the cloud provider. This value may update infrequently or remain at 0 depending on the provider.

formatint32
maximum100
snapshotSizeBytes: optional string

snapshot_size_bytes is the size of the snapshot in bytes. Only populated when the snapshot is available (phase is COMPLETED).

statusVersion: optional string

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

warningMessage: optional string

warning_message contains warnings from the prebuild environment that indicate something went wrong but the prebuild could still complete. For example, the devcontainer failed to build but the environment is still usable. These warnings will likely affect any environment started from this prebuild.

PrebuildTrigger = "PREBUILD_TRIGGER_UNSPECIFIED" or "PREBUILD_TRIGGER_MANUAL" or "PREBUILD_TRIGGER_SCHEDULED"

PrebuildTrigger indicates how the prebuild was triggered

One of the following:
"PREBUILD_TRIGGER_UNSPECIFIED"
"PREBUILD_TRIGGER_MANUAL"
"PREBUILD_TRIGGER_SCHEDULED"
WarmPool object { metadata, spec, status, id }

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: WarmPoolMetadata { createdAt, updatedAt, environmentClassId, 3 more }

metadata contains organizational and ownership information

createdAt: string

created_at is when the warm pool was created

formatdate-time
updatedAt: string

updated_at is when the warm pool was last updated

formatdate-time
environmentClassId: optional string

environment_class_id is the environment class whose instances are warmed

formatuuid
organizationId: optional string

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

formatuuid
projectId: optional string

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

formatuuid
runnerId: optional string

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

formatuuid
spec: WarmPoolSpec { desiredPhase, desiredSize, maxSize, 3 more }

spec contains the desired configuration for this warm pool

desiredPhase: 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"
DeprecateddesiredSize: optional number

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
maxSize: optional number

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
minSize: optional number

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
snapshotId: optional string

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
specVersion: optional string

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

status: WarmPoolStatus { phase, desiredSize, failureMessage, 3 more }

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"
desiredSize: optional number

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
failureMessage: optional string

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

runningInstances: optional number

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

formatint32
statusVersion: optional string

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

stoppedInstances: optional number

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 string

id is the unique identifier for the warm pool

formatuuid
WarmPoolMetadata object { createdAt, updatedAt, environmentClassId, 3 more }

WarmPoolMetadata contains metadata about the warm pool

createdAt: string

created_at is when the warm pool was created

formatdate-time
updatedAt: string

updated_at is when the warm pool was last updated

formatdate-time
environmentClassId: optional string

environment_class_id is the environment class whose instances are warmed

formatuuid
organizationId: optional string

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

formatuuid
projectId: optional string

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

formatuuid
runnerId: optional string

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

formatuuid
WarmPoolPhase = "WARM_POOL_PHASE_UNSPECIFIED" or "WARM_POOL_PHASE_PENDING" or "WARM_POOL_PHASE_READY" or 3 more

WarmPoolPhase represents the lifecycle phase of a warm pool

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"
WarmPoolSpec object { desiredPhase, desiredSize, maxSize, 3 more }

WarmPoolSpec contains the desired configuration for a warm pool

desiredPhase: 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"
DeprecateddesiredSize: optional number

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
maxSize: optional number

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
minSize: optional number

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
snapshotId: optional string

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
specVersion: optional string

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

WarmPoolStatus object { phase, desiredSize, failureMessage, 3 more }

WarmPoolStatus contains the current status of a warm pool as 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"
desiredSize: optional number

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
failureMessage: optional string

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

runningInstances: optional number

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

formatint32
statusVersion: optional string

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

stoppedInstances: optional number

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
PrebuildCancelResponse object { prebuild }
prebuild: Prebuild { metadata, spec, status, id }

Prebuild represents a prebuild for a project that creates a snapshot for faster environment startup times.

metadata: PrebuildMetadata { createdAt, creator, updatedAt, 5 more }

metadata contains organizational and ownership information

createdAt: string

created_at is when the prebuild was created

formatdate-time
creator: Subject { id, principal }

creator is the identity of who created the prebuild. For manual prebuilds, this is the user who triggered it. For scheduled prebuilds, this is the configured executor.

id: optional string

id is the UUID of the subject

formatuuid
principal: optional Principal

Principal is the principal of the subject

One of the following:
"PRINCIPAL_UNSPECIFIED"
"PRINCIPAL_ACCOUNT"
"PRINCIPAL_USER"
"PRINCIPAL_RUNNER"
"PRINCIPAL_ENVIRONMENT"
"PRINCIPAL_SERVICE_ACCOUNT"
"PRINCIPAL_RUNNER_MANAGER"
updatedAt: string

updated_at is when the prebuild was last updated

formatdate-time
environmentClassId: optional string

environment_class_id is the environment class used to create this prebuild. While the prebuild is created with a specific environment class, environments with different classes (e.g., smaller or larger instance sizes) can be created from the same prebuild, as long as they run on the same runner. If not specified in create requests, uses the project’s default environment class.

formatuuid
executor: optional Subject { id, principal }

executor is the identity used to run the prebuild. The executor’s SCM credentials are used to clone the repository. If not set, the creator’s identity is used.

id: optional string

id is the UUID of the subject

formatuuid
principal: optional Principal

Principal is the principal of the subject

One of the following:
"PRINCIPAL_UNSPECIFIED"
"PRINCIPAL_ACCOUNT"
"PRINCIPAL_USER"
"PRINCIPAL_RUNNER"
"PRINCIPAL_ENVIRONMENT"
"PRINCIPAL_SERVICE_ACCOUNT"
"PRINCIPAL_RUNNER_MANAGER"
organizationId: optional string

organization_id is the ID of the organization that owns the prebuild

formatuuid
projectId: optional string

project_id is the ID of the project this prebuild was created for

formatuuid
triggeredBy: optional PrebuildTrigger

trigger describes the trigger that created this prebuild.

One of the following:
"PREBUILD_TRIGGER_UNSPECIFIED"
"PREBUILD_TRIGGER_MANUAL"
"PREBUILD_TRIGGER_SCHEDULED"
spec: PrebuildSpec { desiredPhase, specVersion, timeout }

spec contains the configuration used to create this prebuild

desiredPhase: optional PrebuildPhase

desired_phase is the desired phase of the prebuild. Used to signal cancellation or other state changes. This field is managed by the API and reconciler.

One of the following:
"PREBUILD_PHASE_UNSPECIFIED"
"PREBUILD_PHASE_PENDING"
"PREBUILD_PHASE_STARTING"
"PREBUILD_PHASE_RUNNING"
"PREBUILD_PHASE_STOPPING"
"PREBUILD_PHASE_SNAPSHOTTING"
"PREBUILD_PHASE_COMPLETED"
"PREBUILD_PHASE_FAILED"
"PREBUILD_PHASE_CANCELLING"
"PREBUILD_PHASE_CANCELLED"
"PREBUILD_PHASE_DELETING"
"PREBUILD_PHASE_DELETED"
specVersion: optional string

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

timeout: optional string

timeout is the maximum time allowed for the prebuild to complete. Defaults to 60 minutes if not specified. Maximum allowed timeout is 2 hours.

formatregex
status: PrebuildStatus { phase, completionTime, environmentId, 6 more }

status contains the current status and progress of the prebuild

phase is the current phase of the prebuild lifecycle

One of the following:
"PREBUILD_PHASE_UNSPECIFIED"
"PREBUILD_PHASE_PENDING"
"PREBUILD_PHASE_STARTING"
"PREBUILD_PHASE_RUNNING"
"PREBUILD_PHASE_STOPPING"
"PREBUILD_PHASE_SNAPSHOTTING"
"PREBUILD_PHASE_COMPLETED"
"PREBUILD_PHASE_FAILED"
"PREBUILD_PHASE_CANCELLING"
"PREBUILD_PHASE_CANCELLED"
"PREBUILD_PHASE_DELETING"
"PREBUILD_PHASE_DELETED"
completionTime: optional string

completion_time is when the prebuild completed (successfully or with failure)

formatdate-time
environmentId: optional string

environment_id is the ID of the environment used to create this prebuild. This field is set when the prebuild environment is created.

formatuuid
failureMessage: optional string

failure_message contains details about why the prebuild failed

logUrl: optional string

log_url provides access to prebuild logs. During prebuild execution, this references the environment logs. After completion, this may reference archived logs.

formaturi
snapshotCompletionPercentage: optional number

snapshot_completion_percentage is the progress of snapshot creation (0-100). Only populated when phase is SNAPSHOTTING and progress is available from the cloud provider. This value may update infrequently or remain at 0 depending on the provider.

formatint32
maximum100
snapshotSizeBytes: optional string

snapshot_size_bytes is the size of the snapshot in bytes. Only populated when the snapshot is available (phase is COMPLETED).

statusVersion: optional string

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

warningMessage: optional string

warning_message contains warnings from the prebuild environment that indicate something went wrong but the prebuild could still complete. For example, the devcontainer failed to build but the environment is still usable. These warnings will likely affect any environment started from this prebuild.

id: optional string

id is the unique identifier for the prebuild

formatuuid
PrebuildCreateResponse object { prebuild }
prebuild: Prebuild { metadata, spec, status, id }

Prebuild represents a prebuild for a project that creates a snapshot for faster environment startup times.

metadata: PrebuildMetadata { createdAt, creator, updatedAt, 5 more }

metadata contains organizational and ownership information

createdAt: string

created_at is when the prebuild was created

formatdate-time
creator: Subject { id, principal }

creator is the identity of who created the prebuild. For manual prebuilds, this is the user who triggered it. For scheduled prebuilds, this is the configured executor.

id: optional string

id is the UUID of the subject

formatuuid
principal: optional Principal

Principal is the principal of the subject

One of the following:
"PRINCIPAL_UNSPECIFIED"
"PRINCIPAL_ACCOUNT"
"PRINCIPAL_USER"
"PRINCIPAL_RUNNER"
"PRINCIPAL_ENVIRONMENT"
"PRINCIPAL_SERVICE_ACCOUNT"
"PRINCIPAL_RUNNER_MANAGER"
updatedAt: string

updated_at is when the prebuild was last updated

formatdate-time
environmentClassId: optional string

environment_class_id is the environment class used to create this prebuild. While the prebuild is created with a specific environment class, environments with different classes (e.g., smaller or larger instance sizes) can be created from the same prebuild, as long as they run on the same runner. If not specified in create requests, uses the project’s default environment class.

formatuuid
executor: optional Subject { id, principal }

executor is the identity used to run the prebuild. The executor’s SCM credentials are used to clone the repository. If not set, the creator’s identity is used.

id: optional string

id is the UUID of the subject

formatuuid
principal: optional Principal

Principal is the principal of the subject

One of the following:
"PRINCIPAL_UNSPECIFIED"
"PRINCIPAL_ACCOUNT"
"PRINCIPAL_USER"
"PRINCIPAL_RUNNER"
"PRINCIPAL_ENVIRONMENT"
"PRINCIPAL_SERVICE_ACCOUNT"
"PRINCIPAL_RUNNER_MANAGER"
organizationId: optional string

organization_id is the ID of the organization that owns the prebuild

formatuuid
projectId: optional string

project_id is the ID of the project this prebuild was created for

formatuuid
triggeredBy: optional PrebuildTrigger

trigger describes the trigger that created this prebuild.

One of the following:
"PREBUILD_TRIGGER_UNSPECIFIED"
"PREBUILD_TRIGGER_MANUAL"
"PREBUILD_TRIGGER_SCHEDULED"
spec: PrebuildSpec { desiredPhase, specVersion, timeout }

spec contains the configuration used to create this prebuild

desiredPhase: optional PrebuildPhase

desired_phase is the desired phase of the prebuild. Used to signal cancellation or other state changes. This field is managed by the API and reconciler.

One of the following:
"PREBUILD_PHASE_UNSPECIFIED"
"PREBUILD_PHASE_PENDING"
"PREBUILD_PHASE_STARTING"
"PREBUILD_PHASE_RUNNING"
"PREBUILD_PHASE_STOPPING"
"PREBUILD_PHASE_SNAPSHOTTING"
"PREBUILD_PHASE_COMPLETED"
"PREBUILD_PHASE_FAILED"
"PREBUILD_PHASE_CANCELLING"
"PREBUILD_PHASE_CANCELLED"
"PREBUILD_PHASE_DELETING"
"PREBUILD_PHASE_DELETED"
specVersion: optional string

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

timeout: optional string

timeout is the maximum time allowed for the prebuild to complete. Defaults to 60 minutes if not specified. Maximum allowed timeout is 2 hours.

formatregex
status: PrebuildStatus { phase, completionTime, environmentId, 6 more }

status contains the current status and progress of the prebuild

phase is the current phase of the prebuild lifecycle

One of the following:
"PREBUILD_PHASE_UNSPECIFIED"
"PREBUILD_PHASE_PENDING"
"PREBUILD_PHASE_STARTING"
"PREBUILD_PHASE_RUNNING"
"PREBUILD_PHASE_STOPPING"
"PREBUILD_PHASE_SNAPSHOTTING"
"PREBUILD_PHASE_COMPLETED"
"PREBUILD_PHASE_FAILED"
"PREBUILD_PHASE_CANCELLING"
"PREBUILD_PHASE_CANCELLED"
"PREBUILD_PHASE_DELETING"
"PREBUILD_PHASE_DELETED"
completionTime: optional string

completion_time is when the prebuild completed (successfully or with failure)

formatdate-time
environmentId: optional string

environment_id is the ID of the environment used to create this prebuild. This field is set when the prebuild environment is created.

formatuuid
failureMessage: optional string

failure_message contains details about why the prebuild failed

logUrl: optional string

log_url provides access to prebuild logs. During prebuild execution, this references the environment logs. After completion, this may reference archived logs.

formaturi
snapshotCompletionPercentage: optional number

snapshot_completion_percentage is the progress of snapshot creation (0-100). Only populated when phase is SNAPSHOTTING and progress is available from the cloud provider. This value may update infrequently or remain at 0 depending on the provider.

formatint32
maximum100
snapshotSizeBytes: optional string

snapshot_size_bytes is the size of the snapshot in bytes. Only populated when the snapshot is available (phase is COMPLETED).

statusVersion: optional string

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

warningMessage: optional string

warning_message contains warnings from the prebuild environment that indicate something went wrong but the prebuild could still complete. For example, the devcontainer failed to build but the environment is still usable. These warnings will likely affect any environment started from this prebuild.

id: optional string

id is the unique identifier for the prebuild

formatuuid
PrebuildCreateLogsTokenResponse object { accessToken }
accessToken: string

access_token is the token that can be used to access the logs of the prebuild

PrebuildCreateWarmPoolResponse object { warmPool }
warmPool: WarmPool { metadata, spec, status, id }

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: WarmPoolMetadata { createdAt, updatedAt, environmentClassId, 3 more }

metadata contains organizational and ownership information

createdAt: string

created_at is when the warm pool was created

formatdate-time
updatedAt: string

updated_at is when the warm pool was last updated

formatdate-time
environmentClassId: optional string

environment_class_id is the environment class whose instances are warmed

formatuuid
organizationId: optional string

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

formatuuid
projectId: optional string

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

formatuuid
runnerId: optional string

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

formatuuid
spec: WarmPoolSpec { desiredPhase, desiredSize, maxSize, 3 more }

spec contains the desired configuration for this warm pool

desiredPhase: 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"
DeprecateddesiredSize: optional number

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
maxSize: optional number

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
minSize: optional number

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
snapshotId: optional string

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
specVersion: optional string

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

status: WarmPoolStatus { phase, desiredSize, failureMessage, 3 more }

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"
desiredSize: optional number

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
failureMessage: optional string

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

runningInstances: optional number

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

formatint32
statusVersion: optional string

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

stoppedInstances: optional number

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 string

id is the unique identifier for the warm pool

formatuuid
PrebuildDeleteResponse = unknown
PrebuildDeleteWarmPoolResponse = unknown
PrebuildRetrieveResponse object { prebuild }
prebuild: Prebuild { metadata, spec, status, id }

Prebuild represents a prebuild for a project that creates a snapshot for faster environment startup times.

metadata: PrebuildMetadata { createdAt, creator, updatedAt, 5 more }

metadata contains organizational and ownership information

createdAt: string

created_at is when the prebuild was created

formatdate-time
creator: Subject { id, principal }

creator is the identity of who created the prebuild. For manual prebuilds, this is the user who triggered it. For scheduled prebuilds, this is the configured executor.

id: optional string

id is the UUID of the subject

formatuuid
principal: optional Principal

Principal is the principal of the subject

One of the following:
"PRINCIPAL_UNSPECIFIED"
"PRINCIPAL_ACCOUNT"
"PRINCIPAL_USER"
"PRINCIPAL_RUNNER"
"PRINCIPAL_ENVIRONMENT"
"PRINCIPAL_SERVICE_ACCOUNT"
"PRINCIPAL_RUNNER_MANAGER"
updatedAt: string

updated_at is when the prebuild was last updated

formatdate-time
environmentClassId: optional string

environment_class_id is the environment class used to create this prebuild. While the prebuild is created with a specific environment class, environments with different classes (e.g., smaller or larger instance sizes) can be created from the same prebuild, as long as they run on the same runner. If not specified in create requests, uses the project’s default environment class.

formatuuid
executor: optional Subject { id, principal }

executor is the identity used to run the prebuild. The executor’s SCM credentials are used to clone the repository. If not set, the creator’s identity is used.

id: optional string

id is the UUID of the subject

formatuuid
principal: optional Principal

Principal is the principal of the subject

One of the following:
"PRINCIPAL_UNSPECIFIED"
"PRINCIPAL_ACCOUNT"
"PRINCIPAL_USER"
"PRINCIPAL_RUNNER"
"PRINCIPAL_ENVIRONMENT"
"PRINCIPAL_SERVICE_ACCOUNT"
"PRINCIPAL_RUNNER_MANAGER"
organizationId: optional string

organization_id is the ID of the organization that owns the prebuild

formatuuid
projectId: optional string

project_id is the ID of the project this prebuild was created for

formatuuid
triggeredBy: optional PrebuildTrigger

trigger describes the trigger that created this prebuild.

One of the following:
"PREBUILD_TRIGGER_UNSPECIFIED"
"PREBUILD_TRIGGER_MANUAL"
"PREBUILD_TRIGGER_SCHEDULED"
spec: PrebuildSpec { desiredPhase, specVersion, timeout }

spec contains the configuration used to create this prebuild

desiredPhase: optional PrebuildPhase

desired_phase is the desired phase of the prebuild. Used to signal cancellation or other state changes. This field is managed by the API and reconciler.

One of the following:
"PREBUILD_PHASE_UNSPECIFIED"
"PREBUILD_PHASE_PENDING"
"PREBUILD_PHASE_STARTING"
"PREBUILD_PHASE_RUNNING"
"PREBUILD_PHASE_STOPPING"
"PREBUILD_PHASE_SNAPSHOTTING"
"PREBUILD_PHASE_COMPLETED"
"PREBUILD_PHASE_FAILED"
"PREBUILD_PHASE_CANCELLING"
"PREBUILD_PHASE_CANCELLED"
"PREBUILD_PHASE_DELETING"
"PREBUILD_PHASE_DELETED"
specVersion: optional string

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

timeout: optional string

timeout is the maximum time allowed for the prebuild to complete. Defaults to 60 minutes if not specified. Maximum allowed timeout is 2 hours.

formatregex
status: PrebuildStatus { phase, completionTime, environmentId, 6 more }

status contains the current status and progress of the prebuild

phase is the current phase of the prebuild lifecycle

One of the following:
"PREBUILD_PHASE_UNSPECIFIED"
"PREBUILD_PHASE_PENDING"
"PREBUILD_PHASE_STARTING"
"PREBUILD_PHASE_RUNNING"
"PREBUILD_PHASE_STOPPING"
"PREBUILD_PHASE_SNAPSHOTTING"
"PREBUILD_PHASE_COMPLETED"
"PREBUILD_PHASE_FAILED"
"PREBUILD_PHASE_CANCELLING"
"PREBUILD_PHASE_CANCELLED"
"PREBUILD_PHASE_DELETING"
"PREBUILD_PHASE_DELETED"
completionTime: optional string

completion_time is when the prebuild completed (successfully or with failure)

formatdate-time
environmentId: optional string

environment_id is the ID of the environment used to create this prebuild. This field is set when the prebuild environment is created.

formatuuid
failureMessage: optional string

failure_message contains details about why the prebuild failed

logUrl: optional string

log_url provides access to prebuild logs. During prebuild execution, this references the environment logs. After completion, this may reference archived logs.

formaturi
snapshotCompletionPercentage: optional number

snapshot_completion_percentage is the progress of snapshot creation (0-100). Only populated when phase is SNAPSHOTTING and progress is available from the cloud provider. This value may update infrequently or remain at 0 depending on the provider.

formatint32
maximum100
snapshotSizeBytes: optional string

snapshot_size_bytes is the size of the snapshot in bytes. Only populated when the snapshot is available (phase is COMPLETED).

statusVersion: optional string

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

warningMessage: optional string

warning_message contains warnings from the prebuild environment that indicate something went wrong but the prebuild could still complete. For example, the devcontainer failed to build but the environment is still usable. These warnings will likely affect any environment started from this prebuild.

id: optional string

id is the unique identifier for the prebuild

formatuuid
PrebuildRetrieveWarmPoolResponse object { warmPool }
warmPool: WarmPool { metadata, spec, status, id }

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: WarmPoolMetadata { createdAt, updatedAt, environmentClassId, 3 more }

metadata contains organizational and ownership information

createdAt: string

created_at is when the warm pool was created

formatdate-time
updatedAt: string

updated_at is when the warm pool was last updated

formatdate-time
environmentClassId: optional string

environment_class_id is the environment class whose instances are warmed

formatuuid
organizationId: optional string

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

formatuuid
projectId: optional string

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

formatuuid
runnerId: optional string

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

formatuuid
spec: WarmPoolSpec { desiredPhase, desiredSize, maxSize, 3 more }

spec contains the desired configuration for this warm pool

desiredPhase: 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"
DeprecateddesiredSize: optional number

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
maxSize: optional number

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
minSize: optional number

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
snapshotId: optional string

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
specVersion: optional string

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

status: WarmPoolStatus { phase, desiredSize, failureMessage, 3 more }

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"
desiredSize: optional number

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
failureMessage: optional string

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

runningInstances: optional number

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

formatint32
statusVersion: optional string

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

stoppedInstances: optional number

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 string

id is the unique identifier for the warm pool

formatuuid
PrebuildUpdateWarmPoolResponse object { warmPool }
warmPool: WarmPool { metadata, spec, status, id }

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: WarmPoolMetadata { createdAt, updatedAt, environmentClassId, 3 more }

metadata contains organizational and ownership information

createdAt: string

created_at is when the warm pool was created

formatdate-time
updatedAt: string

updated_at is when the warm pool was last updated

formatdate-time
environmentClassId: optional string

environment_class_id is the environment class whose instances are warmed

formatuuid
organizationId: optional string

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

formatuuid
projectId: optional string

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

formatuuid
runnerId: optional string

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

formatuuid
spec: WarmPoolSpec { desiredPhase, desiredSize, maxSize, 3 more }

spec contains the desired configuration for this warm pool

desiredPhase: 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"
DeprecateddesiredSize: optional number

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
maxSize: optional number

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
minSize: optional number

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
snapshotId: optional string

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
specVersion: optional string

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

status: WarmPoolStatus { phase, desiredSize, failureMessage, 3 more }

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"
desiredSize: optional number

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
failureMessage: optional string

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

runningInstances: optional number

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

formatint32
statusVersion: optional string

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

stoppedInstances: optional number

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 string

id is the unique identifier for the warm pool

formatuuid