Skip to content
Ona Docs

Environments

CreateEnvironment
environments.create(EnvironmentCreateParams**kwargs) -> EnvironmentCreateResponse
POST/gitpod.v1.EnvironmentService/CreateEnvironment
CreateEnvironmentAccessToken
environments.create_environment_token(EnvironmentCreateEnvironmentTokenParams**kwargs) -> EnvironmentCreateEnvironmentTokenResponse
POST/gitpod.v1.EnvironmentService/CreateEnvironmentAccessToken
CreateEnvironmentFromProject
environments.create_from_project(EnvironmentCreateFromProjectParams**kwargs) -> EnvironmentCreateFromProjectResponse
POST/gitpod.v1.EnvironmentService/CreateEnvironmentFromProject
CreateEnvironmentLogsToken
environments.create_logs_token(EnvironmentCreateLogsTokenParams**kwargs) -> EnvironmentCreateLogsTokenResponse
POST/gitpod.v1.EnvironmentService/CreateEnvironmentLogsToken
DeleteEnvironment
environments.delete(EnvironmentDeleteParams**kwargs) -> object
POST/gitpod.v1.EnvironmentService/DeleteEnvironment
ListEnvironments
environments.list(EnvironmentListParams**kwargs) -> SyncEnvironmentsPage[Environment]
POST/gitpod.v1.EnvironmentService/ListEnvironments
MarkEnvironmentActive
environments.mark_active(EnvironmentMarkActiveParams**kwargs) -> object
POST/gitpod.v1.EnvironmentService/MarkEnvironmentActive
GetEnvironment
environments.retrieve(EnvironmentRetrieveParams**kwargs) -> EnvironmentRetrieveResponse
POST/gitpod.v1.EnvironmentService/GetEnvironment
StartEnvironment
environments.start(EnvironmentStartParams**kwargs) -> object
POST/gitpod.v1.EnvironmentService/StartEnvironment
StopEnvironment
environments.stop(EnvironmentStopParams**kwargs) -> object
POST/gitpod.v1.EnvironmentService/StopEnvironment
UnarchiveEnvironment
environments.unarchive(EnvironmentUnarchiveParams**kwargs) -> object
POST/gitpod.v1.EnvironmentService/UnarchiveEnvironment
UpdateEnvironment
environments.update(EnvironmentUpdateParams**kwargs) -> object
POST/gitpod.v1.EnvironmentService/UpdateEnvironment
ModelsExpand Collapse
Literal["ADMISSION_LEVEL_UNSPECIFIED", "ADMISSION_LEVEL_OWNER_ONLY", "ADMISSION_LEVEL_EVERYONE", 2 more]

Admission level describes who can access an environment instance and its ports.

One of the following:
"ADMISSION_LEVEL_UNSPECIFIED"
"ADMISSION_LEVEL_OWNER_ONLY"
"ADMISSION_LEVEL_EVERYONE"
"ADMISSION_LEVEL_ORGANIZATION"
"ADMISSION_LEVEL_CREATOR_ONLY"
Literal["BPF_DEBUG_LEVEL_UNSPECIFIED", "BPF_DEBUG_LEVEL_INFO", "BPF_DEBUG_LEVEL_VERBOSE"]

BPFDebugLevel controls the verbosity of BPF trace_pipe output (bpf_printk). Applies to all BPF-based agents (veto exec, future agents).

One of the following:
"BPF_DEBUG_LEVEL_UNSPECIFIED"
"BPF_DEBUG_LEVEL_INFO"
"BPF_DEBUG_LEVEL_VERBOSE"
class Environment:

+resource get environment

id: str

ID is a unique identifier of this environment. No other environment with the same name must be managed by this environment manager

metadata: Optional[EnvironmentMetadata]

Metadata is data associated with this environment that’s required for other parts of Gitpod to function

annotations: Optional[Dict[str, str]]

annotations are key/value pairs that gets attached to the environment. +internal - not yet implemented

archived_at: Optional[datetime]

Time when the Environment was archived. If not set, the environment is not archived.

formatdate-time
created_at: Optional[datetime]

Time when the Environment was created.

formatdate-time
creator: Optional[Subject]

creator is the identity of the creator of the environment

id: Optional[str]

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"
last_started_at: Optional[datetime]

Time when the Environment was last started (i.e. CreateEnvironment or StartEnvironment were called).

formatdate-time
lockdown_at: Optional[datetime]

lockdown_at is the time at which the environment becomes locked down due to the organization’s maximum environment lifetime policy. Nil when no lifetime policy applies.

formatdate-time
name: Optional[str]

name is the name of the environment as specified by the user

maxLength80
organization_id: Optional[str]

organization_id is the ID of the organization that contains the environment

formatuuid
original_context_url: Optional[str]

original_context_url is the normalized URL from which the environment was created

prebuild_id: Optional[str]

prebuild_id is the ID of the prebuild this environment was created from. Only set if the environment was created from a prebuild.

formatuuid
project_id: Optional[str]

If the Environment was started from a project, the project_id will reference the project.

role: Optional[EnvironmentRole]

role is the role of the environment

One of the following:
"ENVIRONMENT_ROLE_UNSPECIFIED"
"ENVIRONMENT_ROLE_DEFAULT"
"ENVIRONMENT_ROLE_PREBUILD"
"ENVIRONMENT_ROLE_WORKFLOW"
runner_id: Optional[str]

Runner is the ID of the runner that runs this environment.

spec: Optional[EnvironmentSpec]

Spec is the configuration of the environment that’s required for the runner to start the environment

admission: Optional[AdmissionLevel]

admission controlls who can access the environment and its ports.

One of the following:
"ADMISSION_LEVEL_UNSPECIFIED"
"ADMISSION_LEVEL_OWNER_ONLY"
"ADMISSION_LEVEL_EVERYONE"
"ADMISSION_LEVEL_ORGANIZATION"
"ADMISSION_LEVEL_CREATOR_ONLY"
automations_file: Optional[AutomationsFile]

automations_file is the automations file spec of the environment

automations_file_path: Optional[str]

automations_file_path is the path to the automations file that is applied in the environment, relative to the repo root. path must not be absolute (start with a /):

this.matches('^$|^[^/].*')
session: Optional[str]
trigger_filter: Optional[List[AutomationTrigger]]

trigger_filter specifies which automation triggers should execute. When set, only automations matching these triggers will run. If empty/unset, all triggers are evaluated normally.

before_snapshot: Optional[bool]
manual: Optional[bool]
post_devcontainer_start: Optional[bool]
post_environment_start: Optional[bool]
post_machine_start: Optional[bool]
prebuild: Optional[bool]
content: Optional[Content]

content is the content spec of the environment

git_email: Optional[str]

The Git email address

git_username: Optional[str]

The Git username

initializer: Optional[EnvironmentInitializer]

initializer configures how the environment is to be initialized

specs: Optional[List[Spec]]
context_url: Optional[SpecContextURL]
url: Optional[str]

url is the URL from which the environment is created

formaturi
git: Optional[SpecGit]
checkout_location: Optional[str]

a path relative to the environment root in which the code will be checked out to

clone_target: Optional[str]

the value for the clone target mode - use depends on the target mode

remote_uri: Optional[str]

remote_uri is the Git remote origin

target_mode: Optional[Literal["CLONE_TARGET_MODE_UNSPECIFIED", "CLONE_TARGET_MODE_REMOTE_HEAD", "CLONE_TARGET_MODE_REMOTE_COMMIT", 3 more]]

the target mode determines what gets checked out

One of the following:
"CLONE_TARGET_MODE_UNSPECIFIED"
"CLONE_TARGET_MODE_REMOTE_HEAD"
"CLONE_TARGET_MODE_REMOTE_COMMIT"
"CLONE_TARGET_MODE_REMOTE_BRANCH"
"CLONE_TARGET_MODE_LOCAL_BRANCH"
"CLONE_TARGET_MODE_REMOTE_TAG"
upstream_remote_uri: Optional[str]

upstream_Remote_uri is the fork upstream of a repository

session: Optional[str]
desired_phase: Optional[EnvironmentPhase]

Phase is the desired phase of the environment

One of the following:
"ENVIRONMENT_PHASE_UNSPECIFIED"
"ENVIRONMENT_PHASE_CREATING"
"ENVIRONMENT_PHASE_STARTING"
"ENVIRONMENT_PHASE_RUNNING"
"ENVIRONMENT_PHASE_UPDATING"
"ENVIRONMENT_PHASE_STOPPING"
"ENVIRONMENT_PHASE_STOPPED"
"ENVIRONMENT_PHASE_DELETING"
"ENVIRONMENT_PHASE_DELETED"
devcontainer: Optional[Devcontainer]

devcontainer is the devcontainer spec of the environment

default_devcontainer_image: Optional[str]

default_devcontainer_image is the default image that is used to start the devcontainer if no devcontainer config file is found

devcontainer_file_path: Optional[str]

devcontainer_file_path is the path to the devcontainer file relative to the repo root path must not be absolute (start with a /):

this.matches('^$|^[^/].*')
dotfiles: Optional[DevcontainerDotfiles]

Experimental: dotfiles is the dotfiles configuration of the devcontainer

repository: str

URL of a dotfiles Git repository (e.g. https://github.com/owner/repository)

formaturi
lifecycle_stage: Optional[Literal["LIFECYCLE_STAGE_UNSPECIFIED", "LIFECYCLE_STAGE_FULL", "LIFECYCLE_STAGE_PREBUILD"]]

lifecycle_stage controls which devcontainer lifecycle commands are executed. Defaults to FULL if not specified.

One of the following:
"LIFECYCLE_STAGE_UNSPECIFIED"
"LIFECYCLE_STAGE_FULL"
"LIFECYCLE_STAGE_PREBUILD"
session: Optional[str]
kernel_controls_config: Optional[KernelControlsConfig]

kernel_controls_config configures kernel-level controls for this environment

veto: Optional[Veto]

veto controls blocking mechanisms

exec: Optional[Exec]

exec controls executable blocking

action: Optional[KernelControlsAction]

action specifies what action kernel-level controls take on policy violations

One of the following:
"KERNEL_CONTROLS_ACTION_UNSPECIFIED"
"KERNEL_CONTROLS_ACTION_BLOCK"
"KERNEL_CONTROLS_ACTION_AUDIT"
denylist: Optional[List[str]]

denylist is the list of executable paths or names to block

enabled: Optional[bool]

enabled controls whether executable blocking is active

machine: Optional[Machine]

machine is the machine spec of the environment

class_: Optional[str]

Class denotes the class of the environment we ought to start

session: Optional[str]
ports: Optional[List[Port]]

ports is the set of ports which ought to be exposed to your network

admission: Optional[AdmissionLevel]

policy of this port

One of the following:
"ADMISSION_LEVEL_UNSPECIFIED"
"ADMISSION_LEVEL_OWNER_ONLY"
"ADMISSION_LEVEL_EVERYONE"
"ADMISSION_LEVEL_ORGANIZATION"
"ADMISSION_LEVEL_CREATOR_ONLY"
name: Optional[str]

name of this port

maxLength100
minLength1
port: Optional[int]

port number

formatint32
maximum65535
minimum1024
protocol: Optional[Literal["PROTOCOL_UNSPECIFIED", "PROTOCOL_HTTP", "PROTOCOL_HTTPS"]]

protocol for communication (Gateway proxy → user environment service). this setting only affects the protocol used between Gateway and user environment services.

One of the following:
"PROTOCOL_UNSPECIFIED"
"PROTOCOL_HTTP"
"PROTOCOL_HTTPS"
secrets: Optional[List[Secret]]

secrets are confidential data that is mounted into the environment

id: Optional[str]

id is the unique identifier of the secret.

api_only: Optional[bool]

api_only indicates the secret is only available via API/CLI. These secrets are resolved but NOT automatically injected into services or devcontainers.

container_registry_basic_auth_host: Optional[str]

container_registry_basic_auth_host is the hostname of the container registry that supports basic auth

credential_proxy: Optional[SecretCredentialProxy]

credential_proxy configures transparent credential injection via the credential proxy. When set, the credential proxy intercepts HTTPS traffic to the target hosts and replaces the dummy secret value with the real value in the specified HTTP header. The real secret value is never exposed in the environment. This field is orthogonal to mount — a secret can be both mounted (e.g. as a git credential) and proxied at the same time.

format: Optional[Literal["FORMAT_UNSPECIFIED", "FORMAT_PLAIN", "FORMAT_BASE64"]]

format describes how the secret value is encoded. The proxy uses this to decode the value before injecting it into the header.

One of the following:
"FORMAT_UNSPECIFIED"
"FORMAT_PLAIN"
"FORMAT_BASE64"
header: Optional[str]

header is the HTTP header name to inject (e.g. “Authorization”).

target_hosts: Optional[List[str]]

target_hosts lists the hostnames to intercept (for example “github.com” or “*.github.com”). Wildcards are subdomain-only and do not match the apex domain.

environment_variable: Optional[str]
file_path: Optional[str]

file_path is the path inside the devcontainer where the secret is mounted

git_credential_host: Optional[str]
name: Optional[str]

name is the human readable description of the secret

scope: Optional[Literal["SCOPE_UNSPECIFIED", "SCOPE_ORGANIZATION", "SCOPE_PROJECT", 3 more]]

scope indicates where this secret originated from. Used to filter secrets during build (only org and project secrets are injected).

One of the following:
"SCOPE_UNSPECIFIED"
"SCOPE_ORGANIZATION"
"SCOPE_PROJECT"
"SCOPE_USER"
"SCOPE_SERVICE_ACCOUNT"
"SCOPE_RUNNER"
session: Optional[str]

session indicated the current session of the secret. When the session does not change, secrets are not reloaded in the environment.

source: Optional[str]

source is the source of the secret, for now control-plane or runner

source_ref: Optional[str]

source_ref into the source, in case of control-plane this is uuid of the secret

spec_version: Optional[str]

version of the spec. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.spec_version < b.spec_version then a was the spec before b.

ssh_public_keys: Optional[List[SSHPublicKey]]

ssh_public_keys are the public keys used to ssh into the environment

id: Optional[str]

id is the unique identifier of the public key

value: Optional[str]

value is the actual public key in the public key file format

timeout: Optional[Timeout]

Timeout configures the environment timeout

disconnected: Optional[str]

inacitivity is the maximum time of disconnection before the environment is stopped or paused. Minimum duration is 30 minutes. Set to 0 to disable. value must be 0s (disabled) or at least 1800s (30 minutes):

this == duration('0s') || this >= duration('1800s')
formatregex
workflow_action_id: Optional[str]

workflow_action_id is an optional reference to the workflow execution action that created this environment. Used for tracking and event correlation.

formatuuid
status: Optional[EnvironmentStatus]

Status is the current status of the environment

activity_signal: Optional[EnvironmentActivitySignal]

activity_signal is the last activity signal for the environment.

source: Optional[str]

source of the activity signal, such as “VS Code”, “SSH”, or “Automations”. It should be a human-readable string that describes the source of the activity signal.

maxLength80
minLength3
timestamp: Optional[datetime]

timestamp of when the activity was observed by the source. Only reported every 5 minutes. Zero value means no activity was observed.

formatdate-time
automations_file: Optional[AutomationsFile]

automations_file contains the status of the automations file.

automations_file_path: Optional[str]

automations_file_path is the path to the automations file relative to the repo root.

automations_file_presence: Optional[Literal["PRESENCE_UNSPECIFIED", "PRESENCE_ABSENT", "PRESENCE_DISCOVERED", "PRESENCE_SPECIFIED"]]

automations_file_presence indicates how an automations file is present in the environment.

One of the following:
"PRESENCE_UNSPECIFIED"
"PRESENCE_ABSENT"
"PRESENCE_DISCOVERED"
"PRESENCE_SPECIFIED"
failure_message: Optional[str]

failure_message contains the reason the automations file failed to be applied. This is only set if the phase is FAILED.

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the automations file.

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
session: Optional[str]

session is the automations file session that is currently applied in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when no triggers are defined in the automations file.

content: Optional[Content]

content contains the status of the environment content.

content_location_in_machine: Optional[str]

content_location_in_machine is the location of the content in the machine

failure_message: Optional[str]

failure_message contains the reason the content initialization failed.

git: Optional[ContentGit]

git is the Git working copy status of the environment. Note: this is a best-effort field and more often than not will not be present. Its absence does not indicate the absence of a working copy.

branch: Optional[str]

branch is branch we’re currently on

changed_files: Optional[List[ContentGitChangedFile]]

changed_files is an array of changed files in the environment, possibly truncated

change_type: Optional[Literal["CHANGE_TYPE_UNSPECIFIED", "CHANGE_TYPE_ADDED", "CHANGE_TYPE_MODIFIED", 5 more]]

ChangeType is the type of change that happened to the file

One of the following:
"CHANGE_TYPE_UNSPECIFIED"
"CHANGE_TYPE_ADDED"
"CHANGE_TYPE_MODIFIED"
"CHANGE_TYPE_DELETED"
"CHANGE_TYPE_RENAMED"
"CHANGE_TYPE_COPIED"
"CHANGE_TYPE_UPDATED_BUT_UNMERGED"
"CHANGE_TYPE_UNTRACKED"
old_path: Optional[str]

old_path is the previous path of the file before a rename or copy. Only set when change_type is RENAMED or COPIED.

maxLength255
path: Optional[str]

path is the path of the file

maxLength255
clone_url: Optional[str]

clone_url is the repository url as you would pass it to “git clone”. Only HTTPS clone URLs are supported.

latest_commit: Optional[str]

latest_commit is the most recent commit on the current branch

total_changed_files: Optional[int]
formatint32
total_unpushed_commits: Optional[int]

the total number of unpushed changes

formatint32
unpushed_commits: Optional[List[str]]

unpushed_commits is an array of unpushed changes in the environment, possibly truncated

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the environment content

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
session: Optional[str]

session is the session that is currently active in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the content is present but not in the expected state.

devcontainer: Optional[Devcontainer]

devcontainer contains the status of the devcontainer.

container_id: Optional[str]

container_id is the ID of the container.

container_name: Optional[str]

container_name is the name of the container that is used to connect to the devcontainer

devcontainerconfig_in_sync: Optional[bool]

devcontainerconfig_in_sync indicates if the devcontainer is up to date w.r.t. the devcontainer config file.

devcontainer_file_path: Optional[str]

devcontainer_file_path is the path to the devcontainer file relative to the repo root

devcontainer_file_presence: Optional[Literal["PRESENCE_UNSPECIFIED", "PRESENCE_GENERATED", "PRESENCE_DISCOVERED", "PRESENCE_SPECIFIED"]]

devcontainer_file_presence indicates how the devcontainer file is present in the repo.

One of the following:
"PRESENCE_UNSPECIFIED"
"PRESENCE_GENERATED"
"PRESENCE_DISCOVERED"
"PRESENCE_SPECIFIED"
failure_message: Optional[str]

failure_message contains the reason the devcontainer failed to operate.

phase: Optional[Literal["PHASE_UNSPECIFIED", "PHASE_CREATING", "PHASE_RUNNING", 2 more]]

phase is the current phase of the devcontainer

One of the following:
"PHASE_UNSPECIFIED"
"PHASE_CREATING"
"PHASE_RUNNING"
"PHASE_STOPPED"
"PHASE_FAILED"
remote_user: Optional[str]

remote_user is the user that is used to connect to the devcontainer

remote_workspace_folder: Optional[str]

remote_workspace_folder is the folder that is used to connect to the devcontainer

secrets_in_sync: Optional[bool]

secrets_in_sync indicates if the secrets are up to date w.r.t. the running devcontainer.

session: Optional[str]

session is the session that is currently active in the devcontainer.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the devcontainer is present but not in the expected state.

environment_urls: Optional[EnvironmentURLs]

environment_url contains the URL at which the environment can be accessed. This field is only set if the environment is running.

logs: Optional[str]

logs is the URL at which the environment logs can be accessed.

ops: Optional[str]

ops is the URL at which the environment ops service can be accessed.

ports: Optional[List[EnvironmentURLsPort]]
port: Optional[int]

port is the port number of the environment port

formatint32
maximum65535
minimum1024
url: Optional[str]

url is the URL at which the environment port can be accessed

ssh: Optional[EnvironmentURLsSSH]

SSH is the URL at which the environment can be accessed via SSH.

url: Optional[str]
support_bundle: Optional[str]

support_bundle is the URL at which the environment support bundle can be accessed.

failure_message: Optional[List[str]]

failure_message summarises why the environment failed to operate. If this is non-empty the environment has failed to operate and will likely transition to a stopped state.

machine: Optional[Machine]

machine contains the status of the environment machine

failure_message: Optional[str]

failure_message contains the reason the machine failed to operate.

phase: Optional[Literal["PHASE_UNSPECIFIED", "PHASE_CREATING", "PHASE_STARTING", 5 more]]

phase is the current phase of the environment machine

One of the following:
"PHASE_UNSPECIFIED"
"PHASE_CREATING"
"PHASE_STARTING"
"PHASE_RUNNING"
"PHASE_STOPPING"
"PHASE_STOPPED"
"PHASE_DELETING"
"PHASE_DELETED"
session: Optional[str]

session is the session that is currently active in the machine.

timeout: Optional[str]

timeout contains the reason the environment has timed out. If this field is empty, the environment has not timed out.

versions: Optional[MachineVersions]

versions contains the versions of components in the machine.

ami_id: Optional[str]
supervisor_commit: Optional[str]
supervisor_version: Optional[str]
warning_message: Optional[str]

warning_message contains warnings, e.g. when the machine is present but not in the expected state.

phase: Optional[EnvironmentPhase]

the phase of an environment is a simple, high-level summary of where the environment is in its lifecycle

One of the following:
"ENVIRONMENT_PHASE_UNSPECIFIED"
"ENVIRONMENT_PHASE_CREATING"
"ENVIRONMENT_PHASE_STARTING"
"ENVIRONMENT_PHASE_RUNNING"
"ENVIRONMENT_PHASE_UPDATING"
"ENVIRONMENT_PHASE_STOPPING"
"ENVIRONMENT_PHASE_STOPPED"
"ENVIRONMENT_PHASE_DELETING"
"ENVIRONMENT_PHASE_DELETED"
runner_ack: Optional[RunnerAck]

runner_ack contains the acknowledgement from the runner that is has received the environment spec.

message: Optional[str]
spec_version: Optional[str]
status_code: Optional[Literal["STATUS_CODE_UNSPECIFIED", "STATUS_CODE_OK", "STATUS_CODE_INVALID_RESOURCE", "STATUS_CODE_FAILED_PRECONDITION"]]
One of the following:
"STATUS_CODE_UNSPECIFIED"
"STATUS_CODE_OK"
"STATUS_CODE_INVALID_RESOURCE"
"STATUS_CODE_FAILED_PRECONDITION"
secrets: Optional[List[Secret]]

secrets contains the status of the environment secrets

id: Optional[str]

id is the unique identifier of the secret.

failure_message: Optional[str]

failure_message contains the reason the secret failed to be materialize.

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]
One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
secret_name: Optional[str]
session: Optional[str]

session is the session that is currently active in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the secret is present but not in the expected state.

ssh_public_keys: Optional[List[SSHPublicKey]]

ssh_public_keys contains the status of the environment ssh public keys

id: Optional[str]

id is the unique identifier of the public key

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the public key

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
status_version: Optional[str]

version of the status update. Environment instances themselves are unversioned, but their status has different versions. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.status_version < b.status_version then a was the status before b.

warning_message: Optional[List[str]]

warning_message contains warnings, e.g. when the environment is present but not in the expected state.

class EnvironmentActivitySignal:

EnvironmentActivitySignal used to signal activity for an environment.

source: Optional[str]

source of the activity signal, such as “VS Code”, “SSH”, or “Automations”. It should be a human-readable string that describes the source of the activity signal.

maxLength80
minLength3
timestamp: Optional[datetime]

timestamp of when the activity was observed by the source. Only reported every 5 minutes. Zero value means no activity was observed.

formatdate-time
class EnvironmentMetadata:

EnvironmentMetadata is data associated with an environment that’s required for other parts of the system to function

annotations: Optional[Dict[str, str]]

annotations are key/value pairs that gets attached to the environment. +internal - not yet implemented

archived_at: Optional[datetime]

Time when the Environment was archived. If not set, the environment is not archived.

formatdate-time
created_at: Optional[datetime]

Time when the Environment was created.

formatdate-time
creator: Optional[Subject]

creator is the identity of the creator of the environment

id: Optional[str]

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"
last_started_at: Optional[datetime]

Time when the Environment was last started (i.e. CreateEnvironment or StartEnvironment were called).

formatdate-time
lockdown_at: Optional[datetime]

lockdown_at is the time at which the environment becomes locked down due to the organization’s maximum environment lifetime policy. Nil when no lifetime policy applies.

formatdate-time
name: Optional[str]

name is the name of the environment as specified by the user

maxLength80
organization_id: Optional[str]

organization_id is the ID of the organization that contains the environment

formatuuid
original_context_url: Optional[str]

original_context_url is the normalized URL from which the environment was created

prebuild_id: Optional[str]

prebuild_id is the ID of the prebuild this environment was created from. Only set if the environment was created from a prebuild.

formatuuid
project_id: Optional[str]

If the Environment was started from a project, the project_id will reference the project.

role: Optional[EnvironmentRole]

role is the role of the environment

One of the following:
"ENVIRONMENT_ROLE_UNSPECIFIED"
"ENVIRONMENT_ROLE_DEFAULT"
"ENVIRONMENT_ROLE_PREBUILD"
"ENVIRONMENT_ROLE_WORKFLOW"
runner_id: Optional[str]

Runner is the ID of the runner that runs this environment.

Literal["ENVIRONMENT_PHASE_UNSPECIFIED", "ENVIRONMENT_PHASE_CREATING", "ENVIRONMENT_PHASE_STARTING", 6 more]
One of the following:
"ENVIRONMENT_PHASE_UNSPECIFIED"
"ENVIRONMENT_PHASE_CREATING"
"ENVIRONMENT_PHASE_STARTING"
"ENVIRONMENT_PHASE_RUNNING"
"ENVIRONMENT_PHASE_UPDATING"
"ENVIRONMENT_PHASE_STOPPING"
"ENVIRONMENT_PHASE_STOPPED"
"ENVIRONMENT_PHASE_DELETING"
"ENVIRONMENT_PHASE_DELETED"
Literal["ENVIRONMENT_ROLE_UNSPECIFIED", "ENVIRONMENT_ROLE_DEFAULT", "ENVIRONMENT_ROLE_PREBUILD", "ENVIRONMENT_ROLE_WORKFLOW"]

EnvironmentRole represents the role of an environment

One of the following:
"ENVIRONMENT_ROLE_UNSPECIFIED"
"ENVIRONMENT_ROLE_DEFAULT"
"ENVIRONMENT_ROLE_PREBUILD"
"ENVIRONMENT_ROLE_WORKFLOW"
class EnvironmentSpec:

EnvironmentSpec specifies the configuration of an environment for an environment start

admission: Optional[AdmissionLevel]

admission controlls who can access the environment and its ports.

One of the following:
"ADMISSION_LEVEL_UNSPECIFIED"
"ADMISSION_LEVEL_OWNER_ONLY"
"ADMISSION_LEVEL_EVERYONE"
"ADMISSION_LEVEL_ORGANIZATION"
"ADMISSION_LEVEL_CREATOR_ONLY"
automations_file: Optional[AutomationsFile]

automations_file is the automations file spec of the environment

automations_file_path: Optional[str]

automations_file_path is the path to the automations file that is applied in the environment, relative to the repo root. path must not be absolute (start with a /):

this.matches('^$|^[^/].*')
session: Optional[str]
trigger_filter: Optional[List[AutomationTrigger]]

trigger_filter specifies which automation triggers should execute. When set, only automations matching these triggers will run. If empty/unset, all triggers are evaluated normally.

before_snapshot: Optional[bool]
manual: Optional[bool]
post_devcontainer_start: Optional[bool]
post_environment_start: Optional[bool]
post_machine_start: Optional[bool]
prebuild: Optional[bool]
content: Optional[Content]

content is the content spec of the environment

git_email: Optional[str]

The Git email address

git_username: Optional[str]

The Git username

initializer: Optional[EnvironmentInitializer]

initializer configures how the environment is to be initialized

specs: Optional[List[Spec]]
context_url: Optional[SpecContextURL]
url: Optional[str]

url is the URL from which the environment is created

formaturi
git: Optional[SpecGit]
checkout_location: Optional[str]

a path relative to the environment root in which the code will be checked out to

clone_target: Optional[str]

the value for the clone target mode - use depends on the target mode

remote_uri: Optional[str]

remote_uri is the Git remote origin

target_mode: Optional[Literal["CLONE_TARGET_MODE_UNSPECIFIED", "CLONE_TARGET_MODE_REMOTE_HEAD", "CLONE_TARGET_MODE_REMOTE_COMMIT", 3 more]]

the target mode determines what gets checked out

One of the following:
"CLONE_TARGET_MODE_UNSPECIFIED"
"CLONE_TARGET_MODE_REMOTE_HEAD"
"CLONE_TARGET_MODE_REMOTE_COMMIT"
"CLONE_TARGET_MODE_REMOTE_BRANCH"
"CLONE_TARGET_MODE_LOCAL_BRANCH"
"CLONE_TARGET_MODE_REMOTE_TAG"
upstream_remote_uri: Optional[str]

upstream_Remote_uri is the fork upstream of a repository

session: Optional[str]
desired_phase: Optional[EnvironmentPhase]

Phase is the desired phase of the environment

One of the following:
"ENVIRONMENT_PHASE_UNSPECIFIED"
"ENVIRONMENT_PHASE_CREATING"
"ENVIRONMENT_PHASE_STARTING"
"ENVIRONMENT_PHASE_RUNNING"
"ENVIRONMENT_PHASE_UPDATING"
"ENVIRONMENT_PHASE_STOPPING"
"ENVIRONMENT_PHASE_STOPPED"
"ENVIRONMENT_PHASE_DELETING"
"ENVIRONMENT_PHASE_DELETED"
devcontainer: Optional[Devcontainer]

devcontainer is the devcontainer spec of the environment

default_devcontainer_image: Optional[str]

default_devcontainer_image is the default image that is used to start the devcontainer if no devcontainer config file is found

devcontainer_file_path: Optional[str]

devcontainer_file_path is the path to the devcontainer file relative to the repo root path must not be absolute (start with a /):

this.matches('^$|^[^/].*')
dotfiles: Optional[DevcontainerDotfiles]

Experimental: dotfiles is the dotfiles configuration of the devcontainer

repository: str

URL of a dotfiles Git repository (e.g. https://github.com/owner/repository)

formaturi
lifecycle_stage: Optional[Literal["LIFECYCLE_STAGE_UNSPECIFIED", "LIFECYCLE_STAGE_FULL", "LIFECYCLE_STAGE_PREBUILD"]]

lifecycle_stage controls which devcontainer lifecycle commands are executed. Defaults to FULL if not specified.

One of the following:
"LIFECYCLE_STAGE_UNSPECIFIED"
"LIFECYCLE_STAGE_FULL"
"LIFECYCLE_STAGE_PREBUILD"
session: Optional[str]
kernel_controls_config: Optional[KernelControlsConfig]

kernel_controls_config configures kernel-level controls for this environment

veto: Optional[Veto]

veto controls blocking mechanisms

exec: Optional[Exec]

exec controls executable blocking

action: Optional[KernelControlsAction]

action specifies what action kernel-level controls take on policy violations

One of the following:
"KERNEL_CONTROLS_ACTION_UNSPECIFIED"
"KERNEL_CONTROLS_ACTION_BLOCK"
"KERNEL_CONTROLS_ACTION_AUDIT"
denylist: Optional[List[str]]

denylist is the list of executable paths or names to block

enabled: Optional[bool]

enabled controls whether executable blocking is active

machine: Optional[Machine]

machine is the machine spec of the environment

class_: Optional[str]

Class denotes the class of the environment we ought to start

session: Optional[str]
ports: Optional[List[Port]]

ports is the set of ports which ought to be exposed to your network

admission: Optional[AdmissionLevel]

policy of this port

One of the following:
"ADMISSION_LEVEL_UNSPECIFIED"
"ADMISSION_LEVEL_OWNER_ONLY"
"ADMISSION_LEVEL_EVERYONE"
"ADMISSION_LEVEL_ORGANIZATION"
"ADMISSION_LEVEL_CREATOR_ONLY"
name: Optional[str]

name of this port

maxLength100
minLength1
port: Optional[int]

port number

formatint32
maximum65535
minimum1024
protocol: Optional[Literal["PROTOCOL_UNSPECIFIED", "PROTOCOL_HTTP", "PROTOCOL_HTTPS"]]

protocol for communication (Gateway proxy → user environment service). this setting only affects the protocol used between Gateway and user environment services.

One of the following:
"PROTOCOL_UNSPECIFIED"
"PROTOCOL_HTTP"
"PROTOCOL_HTTPS"
secrets: Optional[List[Secret]]

secrets are confidential data that is mounted into the environment

id: Optional[str]

id is the unique identifier of the secret.

api_only: Optional[bool]

api_only indicates the secret is only available via API/CLI. These secrets are resolved but NOT automatically injected into services or devcontainers.

container_registry_basic_auth_host: Optional[str]

container_registry_basic_auth_host is the hostname of the container registry that supports basic auth

credential_proxy: Optional[SecretCredentialProxy]

credential_proxy configures transparent credential injection via the credential proxy. When set, the credential proxy intercepts HTTPS traffic to the target hosts and replaces the dummy secret value with the real value in the specified HTTP header. The real secret value is never exposed in the environment. This field is orthogonal to mount — a secret can be both mounted (e.g. as a git credential) and proxied at the same time.

format: Optional[Literal["FORMAT_UNSPECIFIED", "FORMAT_PLAIN", "FORMAT_BASE64"]]

format describes how the secret value is encoded. The proxy uses this to decode the value before injecting it into the header.

One of the following:
"FORMAT_UNSPECIFIED"
"FORMAT_PLAIN"
"FORMAT_BASE64"
header: Optional[str]

header is the HTTP header name to inject (e.g. “Authorization”).

target_hosts: Optional[List[str]]

target_hosts lists the hostnames to intercept (for example “github.com” or “*.github.com”). Wildcards are subdomain-only and do not match the apex domain.

environment_variable: Optional[str]
file_path: Optional[str]

file_path is the path inside the devcontainer where the secret is mounted

git_credential_host: Optional[str]
name: Optional[str]

name is the human readable description of the secret

scope: Optional[Literal["SCOPE_UNSPECIFIED", "SCOPE_ORGANIZATION", "SCOPE_PROJECT", 3 more]]

scope indicates where this secret originated from. Used to filter secrets during build (only org and project secrets are injected).

One of the following:
"SCOPE_UNSPECIFIED"
"SCOPE_ORGANIZATION"
"SCOPE_PROJECT"
"SCOPE_USER"
"SCOPE_SERVICE_ACCOUNT"
"SCOPE_RUNNER"
session: Optional[str]

session indicated the current session of the secret. When the session does not change, secrets are not reloaded in the environment.

source: Optional[str]

source is the source of the secret, for now control-plane or runner

source_ref: Optional[str]

source_ref into the source, in case of control-plane this is uuid of the secret

spec_version: Optional[str]

version of the spec. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.spec_version < b.spec_version then a was the spec before b.

ssh_public_keys: Optional[List[SSHPublicKey]]

ssh_public_keys are the public keys used to ssh into the environment

id: Optional[str]

id is the unique identifier of the public key

value: Optional[str]

value is the actual public key in the public key file format

timeout: Optional[Timeout]

Timeout configures the environment timeout

disconnected: Optional[str]

inacitivity is the maximum time of disconnection before the environment is stopped or paused. Minimum duration is 30 minutes. Set to 0 to disable. value must be 0s (disabled) or at least 1800s (30 minutes):

this == duration('0s') || this >= duration('1800s')
formatregex
workflow_action_id: Optional[str]

workflow_action_id is an optional reference to the workflow execution action that created this environment. Used for tracking and event correlation.

formatuuid
class EnvironmentStatus:

EnvironmentStatus describes an environment status

activity_signal: Optional[EnvironmentActivitySignal]

activity_signal is the last activity signal for the environment.

source: Optional[str]

source of the activity signal, such as “VS Code”, “SSH”, or “Automations”. It should be a human-readable string that describes the source of the activity signal.

maxLength80
minLength3
timestamp: Optional[datetime]

timestamp of when the activity was observed by the source. Only reported every 5 minutes. Zero value means no activity was observed.

formatdate-time
automations_file: Optional[AutomationsFile]

automations_file contains the status of the automations file.

automations_file_path: Optional[str]

automations_file_path is the path to the automations file relative to the repo root.

automations_file_presence: Optional[Literal["PRESENCE_UNSPECIFIED", "PRESENCE_ABSENT", "PRESENCE_DISCOVERED", "PRESENCE_SPECIFIED"]]

automations_file_presence indicates how an automations file is present in the environment.

One of the following:
"PRESENCE_UNSPECIFIED"
"PRESENCE_ABSENT"
"PRESENCE_DISCOVERED"
"PRESENCE_SPECIFIED"
failure_message: Optional[str]

failure_message contains the reason the automations file failed to be applied. This is only set if the phase is FAILED.

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the automations file.

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
session: Optional[str]

session is the automations file session that is currently applied in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when no triggers are defined in the automations file.

content: Optional[Content]

content contains the status of the environment content.

content_location_in_machine: Optional[str]

content_location_in_machine is the location of the content in the machine

failure_message: Optional[str]

failure_message contains the reason the content initialization failed.

git: Optional[ContentGit]

git is the Git working copy status of the environment. Note: this is a best-effort field and more often than not will not be present. Its absence does not indicate the absence of a working copy.

branch: Optional[str]

branch is branch we’re currently on

changed_files: Optional[List[ContentGitChangedFile]]

changed_files is an array of changed files in the environment, possibly truncated

change_type: Optional[Literal["CHANGE_TYPE_UNSPECIFIED", "CHANGE_TYPE_ADDED", "CHANGE_TYPE_MODIFIED", 5 more]]

ChangeType is the type of change that happened to the file

One of the following:
"CHANGE_TYPE_UNSPECIFIED"
"CHANGE_TYPE_ADDED"
"CHANGE_TYPE_MODIFIED"
"CHANGE_TYPE_DELETED"
"CHANGE_TYPE_RENAMED"
"CHANGE_TYPE_COPIED"
"CHANGE_TYPE_UPDATED_BUT_UNMERGED"
"CHANGE_TYPE_UNTRACKED"
old_path: Optional[str]

old_path is the previous path of the file before a rename or copy. Only set when change_type is RENAMED or COPIED.

maxLength255
path: Optional[str]

path is the path of the file

maxLength255
clone_url: Optional[str]

clone_url is the repository url as you would pass it to “git clone”. Only HTTPS clone URLs are supported.

latest_commit: Optional[str]

latest_commit is the most recent commit on the current branch

total_changed_files: Optional[int]
formatint32
total_unpushed_commits: Optional[int]

the total number of unpushed changes

formatint32
unpushed_commits: Optional[List[str]]

unpushed_commits is an array of unpushed changes in the environment, possibly truncated

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the environment content

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
session: Optional[str]

session is the session that is currently active in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the content is present but not in the expected state.

devcontainer: Optional[Devcontainer]

devcontainer contains the status of the devcontainer.

container_id: Optional[str]

container_id is the ID of the container.

container_name: Optional[str]

container_name is the name of the container that is used to connect to the devcontainer

devcontainerconfig_in_sync: Optional[bool]

devcontainerconfig_in_sync indicates if the devcontainer is up to date w.r.t. the devcontainer config file.

devcontainer_file_path: Optional[str]

devcontainer_file_path is the path to the devcontainer file relative to the repo root

devcontainer_file_presence: Optional[Literal["PRESENCE_UNSPECIFIED", "PRESENCE_GENERATED", "PRESENCE_DISCOVERED", "PRESENCE_SPECIFIED"]]

devcontainer_file_presence indicates how the devcontainer file is present in the repo.

One of the following:
"PRESENCE_UNSPECIFIED"
"PRESENCE_GENERATED"
"PRESENCE_DISCOVERED"
"PRESENCE_SPECIFIED"
failure_message: Optional[str]

failure_message contains the reason the devcontainer failed to operate.

phase: Optional[Literal["PHASE_UNSPECIFIED", "PHASE_CREATING", "PHASE_RUNNING", 2 more]]

phase is the current phase of the devcontainer

One of the following:
"PHASE_UNSPECIFIED"
"PHASE_CREATING"
"PHASE_RUNNING"
"PHASE_STOPPED"
"PHASE_FAILED"
remote_user: Optional[str]

remote_user is the user that is used to connect to the devcontainer

remote_workspace_folder: Optional[str]

remote_workspace_folder is the folder that is used to connect to the devcontainer

secrets_in_sync: Optional[bool]

secrets_in_sync indicates if the secrets are up to date w.r.t. the running devcontainer.

session: Optional[str]

session is the session that is currently active in the devcontainer.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the devcontainer is present but not in the expected state.

environment_urls: Optional[EnvironmentURLs]

environment_url contains the URL at which the environment can be accessed. This field is only set if the environment is running.

logs: Optional[str]

logs is the URL at which the environment logs can be accessed.

ops: Optional[str]

ops is the URL at which the environment ops service can be accessed.

ports: Optional[List[EnvironmentURLsPort]]
port: Optional[int]

port is the port number of the environment port

formatint32
maximum65535
minimum1024
url: Optional[str]

url is the URL at which the environment port can be accessed

ssh: Optional[EnvironmentURLsSSH]

SSH is the URL at which the environment can be accessed via SSH.

url: Optional[str]
support_bundle: Optional[str]

support_bundle is the URL at which the environment support bundle can be accessed.

failure_message: Optional[List[str]]

failure_message summarises why the environment failed to operate. If this is non-empty the environment has failed to operate and will likely transition to a stopped state.

machine: Optional[Machine]

machine contains the status of the environment machine

failure_message: Optional[str]

failure_message contains the reason the machine failed to operate.

phase: Optional[Literal["PHASE_UNSPECIFIED", "PHASE_CREATING", "PHASE_STARTING", 5 more]]

phase is the current phase of the environment machine

One of the following:
"PHASE_UNSPECIFIED"
"PHASE_CREATING"
"PHASE_STARTING"
"PHASE_RUNNING"
"PHASE_STOPPING"
"PHASE_STOPPED"
"PHASE_DELETING"
"PHASE_DELETED"
session: Optional[str]

session is the session that is currently active in the machine.

timeout: Optional[str]

timeout contains the reason the environment has timed out. If this field is empty, the environment has not timed out.

versions: Optional[MachineVersions]

versions contains the versions of components in the machine.

ami_id: Optional[str]
supervisor_commit: Optional[str]
supervisor_version: Optional[str]
warning_message: Optional[str]

warning_message contains warnings, e.g. when the machine is present but not in the expected state.

phase: Optional[EnvironmentPhase]

the phase of an environment is a simple, high-level summary of where the environment is in its lifecycle

One of the following:
"ENVIRONMENT_PHASE_UNSPECIFIED"
"ENVIRONMENT_PHASE_CREATING"
"ENVIRONMENT_PHASE_STARTING"
"ENVIRONMENT_PHASE_RUNNING"
"ENVIRONMENT_PHASE_UPDATING"
"ENVIRONMENT_PHASE_STOPPING"
"ENVIRONMENT_PHASE_STOPPED"
"ENVIRONMENT_PHASE_DELETING"
"ENVIRONMENT_PHASE_DELETED"
runner_ack: Optional[RunnerAck]

runner_ack contains the acknowledgement from the runner that is has received the environment spec.

message: Optional[str]
spec_version: Optional[str]
status_code: Optional[Literal["STATUS_CODE_UNSPECIFIED", "STATUS_CODE_OK", "STATUS_CODE_INVALID_RESOURCE", "STATUS_CODE_FAILED_PRECONDITION"]]
One of the following:
"STATUS_CODE_UNSPECIFIED"
"STATUS_CODE_OK"
"STATUS_CODE_INVALID_RESOURCE"
"STATUS_CODE_FAILED_PRECONDITION"
secrets: Optional[List[Secret]]

secrets contains the status of the environment secrets

id: Optional[str]

id is the unique identifier of the secret.

failure_message: Optional[str]

failure_message contains the reason the secret failed to be materialize.

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]
One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
secret_name: Optional[str]
session: Optional[str]

session is the session that is currently active in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the secret is present but not in the expected state.

ssh_public_keys: Optional[List[SSHPublicKey]]

ssh_public_keys contains the status of the environment ssh public keys

id: Optional[str]

id is the unique identifier of the public key

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the public key

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
status_version: Optional[str]

version of the status update. Environment instances themselves are unversioned, but their status has different versions. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.status_version < b.status_version then a was the status before b.

warning_message: Optional[List[str]]

warning_message contains warnings, e.g. when the environment is present but not in the expected state.

class KernelControlsConfig:

KernelControlsConfig configures kernel-level controls for the environment

veto: Optional[Veto]

veto controls blocking mechanisms

exec: Optional[Exec]

exec controls executable blocking

action: Optional[KernelControlsAction]

action specifies what action kernel-level controls take on policy violations

One of the following:
"KERNEL_CONTROLS_ACTION_UNSPECIFIED"
"KERNEL_CONTROLS_ACTION_BLOCK"
"KERNEL_CONTROLS_ACTION_AUDIT"
denylist: Optional[List[str]]

denylist is the list of executable paths or names to block

enabled: Optional[bool]

enabled controls whether executable blocking is active

class Veto:

Veto controls kernel-level blocking mechanisms

exec: Optional[Exec]

exec controls executable blocking

action: Optional[KernelControlsAction]

action specifies what action kernel-level controls take on policy violations

One of the following:
"KERNEL_CONTROLS_ACTION_UNSPECIFIED"
"KERNEL_CONTROLS_ACTION_BLOCK"
"KERNEL_CONTROLS_ACTION_AUDIT"
denylist: Optional[List[str]]

denylist is the list of executable paths or names to block

enabled: Optional[bool]

enabled controls whether executable blocking is active

class EnvironmentCreateResponse:
environment: Environment

+resource get environment

id: str

ID is a unique identifier of this environment. No other environment with the same name must be managed by this environment manager

metadata: Optional[EnvironmentMetadata]

Metadata is data associated with this environment that’s required for other parts of Gitpod to function

annotations: Optional[Dict[str, str]]

annotations are key/value pairs that gets attached to the environment. +internal - not yet implemented

archived_at: Optional[datetime]

Time when the Environment was archived. If not set, the environment is not archived.

formatdate-time
created_at: Optional[datetime]

Time when the Environment was created.

formatdate-time
creator: Optional[Subject]

creator is the identity of the creator of the environment

id: Optional[str]

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"
last_started_at: Optional[datetime]

Time when the Environment was last started (i.e. CreateEnvironment or StartEnvironment were called).

formatdate-time
lockdown_at: Optional[datetime]

lockdown_at is the time at which the environment becomes locked down due to the organization’s maximum environment lifetime policy. Nil when no lifetime policy applies.

formatdate-time
name: Optional[str]

name is the name of the environment as specified by the user

maxLength80
organization_id: Optional[str]

organization_id is the ID of the organization that contains the environment

formatuuid
original_context_url: Optional[str]

original_context_url is the normalized URL from which the environment was created

prebuild_id: Optional[str]

prebuild_id is the ID of the prebuild this environment was created from. Only set if the environment was created from a prebuild.

formatuuid
project_id: Optional[str]

If the Environment was started from a project, the project_id will reference the project.

role: Optional[EnvironmentRole]

role is the role of the environment

One of the following:
"ENVIRONMENT_ROLE_UNSPECIFIED"
"ENVIRONMENT_ROLE_DEFAULT"
"ENVIRONMENT_ROLE_PREBUILD"
"ENVIRONMENT_ROLE_WORKFLOW"
runner_id: Optional[str]

Runner is the ID of the runner that runs this environment.

spec: Optional[EnvironmentSpec]

Spec is the configuration of the environment that’s required for the runner to start the environment

admission: Optional[AdmissionLevel]

admission controlls who can access the environment and its ports.

One of the following:
"ADMISSION_LEVEL_UNSPECIFIED"
"ADMISSION_LEVEL_OWNER_ONLY"
"ADMISSION_LEVEL_EVERYONE"
"ADMISSION_LEVEL_ORGANIZATION"
"ADMISSION_LEVEL_CREATOR_ONLY"
automations_file: Optional[AutomationsFile]

automations_file is the automations file spec of the environment

automations_file_path: Optional[str]

automations_file_path is the path to the automations file that is applied in the environment, relative to the repo root. path must not be absolute (start with a /):

this.matches('^$|^[^/].*')
session: Optional[str]
trigger_filter: Optional[List[AutomationTrigger]]

trigger_filter specifies which automation triggers should execute. When set, only automations matching these triggers will run. If empty/unset, all triggers are evaluated normally.

before_snapshot: Optional[bool]
manual: Optional[bool]
post_devcontainer_start: Optional[bool]
post_environment_start: Optional[bool]
post_machine_start: Optional[bool]
prebuild: Optional[bool]
content: Optional[Content]

content is the content spec of the environment

git_email: Optional[str]

The Git email address

git_username: Optional[str]

The Git username

initializer: Optional[EnvironmentInitializer]

initializer configures how the environment is to be initialized

specs: Optional[List[Spec]]
context_url: Optional[SpecContextURL]
url: Optional[str]

url is the URL from which the environment is created

formaturi
git: Optional[SpecGit]
checkout_location: Optional[str]

a path relative to the environment root in which the code will be checked out to

clone_target: Optional[str]

the value for the clone target mode - use depends on the target mode

remote_uri: Optional[str]

remote_uri is the Git remote origin

target_mode: Optional[Literal["CLONE_TARGET_MODE_UNSPECIFIED", "CLONE_TARGET_MODE_REMOTE_HEAD", "CLONE_TARGET_MODE_REMOTE_COMMIT", 3 more]]

the target mode determines what gets checked out

One of the following:
"CLONE_TARGET_MODE_UNSPECIFIED"
"CLONE_TARGET_MODE_REMOTE_HEAD"
"CLONE_TARGET_MODE_REMOTE_COMMIT"
"CLONE_TARGET_MODE_REMOTE_BRANCH"
"CLONE_TARGET_MODE_LOCAL_BRANCH"
"CLONE_TARGET_MODE_REMOTE_TAG"
upstream_remote_uri: Optional[str]

upstream_Remote_uri is the fork upstream of a repository

session: Optional[str]
desired_phase: Optional[EnvironmentPhase]

Phase is the desired phase of the environment

One of the following:
"ENVIRONMENT_PHASE_UNSPECIFIED"
"ENVIRONMENT_PHASE_CREATING"
"ENVIRONMENT_PHASE_STARTING"
"ENVIRONMENT_PHASE_RUNNING"
"ENVIRONMENT_PHASE_UPDATING"
"ENVIRONMENT_PHASE_STOPPING"
"ENVIRONMENT_PHASE_STOPPED"
"ENVIRONMENT_PHASE_DELETING"
"ENVIRONMENT_PHASE_DELETED"
devcontainer: Optional[Devcontainer]

devcontainer is the devcontainer spec of the environment

default_devcontainer_image: Optional[str]

default_devcontainer_image is the default image that is used to start the devcontainer if no devcontainer config file is found

devcontainer_file_path: Optional[str]

devcontainer_file_path is the path to the devcontainer file relative to the repo root path must not be absolute (start with a /):

this.matches('^$|^[^/].*')
dotfiles: Optional[DevcontainerDotfiles]

Experimental: dotfiles is the dotfiles configuration of the devcontainer

repository: str

URL of a dotfiles Git repository (e.g. https://github.com/owner/repository)

formaturi
lifecycle_stage: Optional[Literal["LIFECYCLE_STAGE_UNSPECIFIED", "LIFECYCLE_STAGE_FULL", "LIFECYCLE_STAGE_PREBUILD"]]

lifecycle_stage controls which devcontainer lifecycle commands are executed. Defaults to FULL if not specified.

One of the following:
"LIFECYCLE_STAGE_UNSPECIFIED"
"LIFECYCLE_STAGE_FULL"
"LIFECYCLE_STAGE_PREBUILD"
session: Optional[str]
kernel_controls_config: Optional[KernelControlsConfig]

kernel_controls_config configures kernel-level controls for this environment

veto: Optional[Veto]

veto controls blocking mechanisms

exec: Optional[Exec]

exec controls executable blocking

action: Optional[KernelControlsAction]

action specifies what action kernel-level controls take on policy violations

One of the following:
"KERNEL_CONTROLS_ACTION_UNSPECIFIED"
"KERNEL_CONTROLS_ACTION_BLOCK"
"KERNEL_CONTROLS_ACTION_AUDIT"
denylist: Optional[List[str]]

denylist is the list of executable paths or names to block

enabled: Optional[bool]

enabled controls whether executable blocking is active

machine: Optional[Machine]

machine is the machine spec of the environment

class_: Optional[str]

Class denotes the class of the environment we ought to start

session: Optional[str]
ports: Optional[List[Port]]

ports is the set of ports which ought to be exposed to your network

admission: Optional[AdmissionLevel]

policy of this port

One of the following:
"ADMISSION_LEVEL_UNSPECIFIED"
"ADMISSION_LEVEL_OWNER_ONLY"
"ADMISSION_LEVEL_EVERYONE"
"ADMISSION_LEVEL_ORGANIZATION"
"ADMISSION_LEVEL_CREATOR_ONLY"
name: Optional[str]

name of this port

maxLength100
minLength1
port: Optional[int]

port number

formatint32
maximum65535
minimum1024
protocol: Optional[Literal["PROTOCOL_UNSPECIFIED", "PROTOCOL_HTTP", "PROTOCOL_HTTPS"]]

protocol for communication (Gateway proxy → user environment service). this setting only affects the protocol used between Gateway and user environment services.

One of the following:
"PROTOCOL_UNSPECIFIED"
"PROTOCOL_HTTP"
"PROTOCOL_HTTPS"
secrets: Optional[List[Secret]]

secrets are confidential data that is mounted into the environment

id: Optional[str]

id is the unique identifier of the secret.

api_only: Optional[bool]

api_only indicates the secret is only available via API/CLI. These secrets are resolved but NOT automatically injected into services or devcontainers.

container_registry_basic_auth_host: Optional[str]

container_registry_basic_auth_host is the hostname of the container registry that supports basic auth

credential_proxy: Optional[SecretCredentialProxy]

credential_proxy configures transparent credential injection via the credential proxy. When set, the credential proxy intercepts HTTPS traffic to the target hosts and replaces the dummy secret value with the real value in the specified HTTP header. The real secret value is never exposed in the environment. This field is orthogonal to mount — a secret can be both mounted (e.g. as a git credential) and proxied at the same time.

format: Optional[Literal["FORMAT_UNSPECIFIED", "FORMAT_PLAIN", "FORMAT_BASE64"]]

format describes how the secret value is encoded. The proxy uses this to decode the value before injecting it into the header.

One of the following:
"FORMAT_UNSPECIFIED"
"FORMAT_PLAIN"
"FORMAT_BASE64"
header: Optional[str]

header is the HTTP header name to inject (e.g. “Authorization”).

target_hosts: Optional[List[str]]

target_hosts lists the hostnames to intercept (for example “github.com” or “*.github.com”). Wildcards are subdomain-only and do not match the apex domain.

environment_variable: Optional[str]
file_path: Optional[str]

file_path is the path inside the devcontainer where the secret is mounted

git_credential_host: Optional[str]
name: Optional[str]

name is the human readable description of the secret

scope: Optional[Literal["SCOPE_UNSPECIFIED", "SCOPE_ORGANIZATION", "SCOPE_PROJECT", 3 more]]

scope indicates where this secret originated from. Used to filter secrets during build (only org and project secrets are injected).

One of the following:
"SCOPE_UNSPECIFIED"
"SCOPE_ORGANIZATION"
"SCOPE_PROJECT"
"SCOPE_USER"
"SCOPE_SERVICE_ACCOUNT"
"SCOPE_RUNNER"
session: Optional[str]

session indicated the current session of the secret. When the session does not change, secrets are not reloaded in the environment.

source: Optional[str]

source is the source of the secret, for now control-plane or runner

source_ref: Optional[str]

source_ref into the source, in case of control-plane this is uuid of the secret

spec_version: Optional[str]

version of the spec. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.spec_version < b.spec_version then a was the spec before b.

ssh_public_keys: Optional[List[SSHPublicKey]]

ssh_public_keys are the public keys used to ssh into the environment

id: Optional[str]

id is the unique identifier of the public key

value: Optional[str]

value is the actual public key in the public key file format

timeout: Optional[Timeout]

Timeout configures the environment timeout

disconnected: Optional[str]

inacitivity is the maximum time of disconnection before the environment is stopped or paused. Minimum duration is 30 minutes. Set to 0 to disable. value must be 0s (disabled) or at least 1800s (30 minutes):

this == duration('0s') || this >= duration('1800s')
formatregex
workflow_action_id: Optional[str]

workflow_action_id is an optional reference to the workflow execution action that created this environment. Used for tracking and event correlation.

formatuuid
status: Optional[EnvironmentStatus]

Status is the current status of the environment

activity_signal: Optional[EnvironmentActivitySignal]

activity_signal is the last activity signal for the environment.

source: Optional[str]

source of the activity signal, such as “VS Code”, “SSH”, or “Automations”. It should be a human-readable string that describes the source of the activity signal.

maxLength80
minLength3
timestamp: Optional[datetime]

timestamp of when the activity was observed by the source. Only reported every 5 minutes. Zero value means no activity was observed.

formatdate-time
automations_file: Optional[AutomationsFile]

automations_file contains the status of the automations file.

automations_file_path: Optional[str]

automations_file_path is the path to the automations file relative to the repo root.

automations_file_presence: Optional[Literal["PRESENCE_UNSPECIFIED", "PRESENCE_ABSENT", "PRESENCE_DISCOVERED", "PRESENCE_SPECIFIED"]]

automations_file_presence indicates how an automations file is present in the environment.

One of the following:
"PRESENCE_UNSPECIFIED"
"PRESENCE_ABSENT"
"PRESENCE_DISCOVERED"
"PRESENCE_SPECIFIED"
failure_message: Optional[str]

failure_message contains the reason the automations file failed to be applied. This is only set if the phase is FAILED.

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the automations file.

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
session: Optional[str]

session is the automations file session that is currently applied in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when no triggers are defined in the automations file.

content: Optional[Content]

content contains the status of the environment content.

content_location_in_machine: Optional[str]

content_location_in_machine is the location of the content in the machine

failure_message: Optional[str]

failure_message contains the reason the content initialization failed.

git: Optional[ContentGit]

git is the Git working copy status of the environment. Note: this is a best-effort field and more often than not will not be present. Its absence does not indicate the absence of a working copy.

branch: Optional[str]

branch is branch we’re currently on

changed_files: Optional[List[ContentGitChangedFile]]

changed_files is an array of changed files in the environment, possibly truncated

change_type: Optional[Literal["CHANGE_TYPE_UNSPECIFIED", "CHANGE_TYPE_ADDED", "CHANGE_TYPE_MODIFIED", 5 more]]

ChangeType is the type of change that happened to the file

One of the following:
"CHANGE_TYPE_UNSPECIFIED"
"CHANGE_TYPE_ADDED"
"CHANGE_TYPE_MODIFIED"
"CHANGE_TYPE_DELETED"
"CHANGE_TYPE_RENAMED"
"CHANGE_TYPE_COPIED"
"CHANGE_TYPE_UPDATED_BUT_UNMERGED"
"CHANGE_TYPE_UNTRACKED"
old_path: Optional[str]

old_path is the previous path of the file before a rename or copy. Only set when change_type is RENAMED or COPIED.

maxLength255
path: Optional[str]

path is the path of the file

maxLength255
clone_url: Optional[str]

clone_url is the repository url as you would pass it to “git clone”. Only HTTPS clone URLs are supported.

latest_commit: Optional[str]

latest_commit is the most recent commit on the current branch

total_changed_files: Optional[int]
formatint32
total_unpushed_commits: Optional[int]

the total number of unpushed changes

formatint32
unpushed_commits: Optional[List[str]]

unpushed_commits is an array of unpushed changes in the environment, possibly truncated

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the environment content

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
session: Optional[str]

session is the session that is currently active in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the content is present but not in the expected state.

devcontainer: Optional[Devcontainer]

devcontainer contains the status of the devcontainer.

container_id: Optional[str]

container_id is the ID of the container.

container_name: Optional[str]

container_name is the name of the container that is used to connect to the devcontainer

devcontainerconfig_in_sync: Optional[bool]

devcontainerconfig_in_sync indicates if the devcontainer is up to date w.r.t. the devcontainer config file.

devcontainer_file_path: Optional[str]

devcontainer_file_path is the path to the devcontainer file relative to the repo root

devcontainer_file_presence: Optional[Literal["PRESENCE_UNSPECIFIED", "PRESENCE_GENERATED", "PRESENCE_DISCOVERED", "PRESENCE_SPECIFIED"]]

devcontainer_file_presence indicates how the devcontainer file is present in the repo.

One of the following:
"PRESENCE_UNSPECIFIED"
"PRESENCE_GENERATED"
"PRESENCE_DISCOVERED"
"PRESENCE_SPECIFIED"
failure_message: Optional[str]

failure_message contains the reason the devcontainer failed to operate.

phase: Optional[Literal["PHASE_UNSPECIFIED", "PHASE_CREATING", "PHASE_RUNNING", 2 more]]

phase is the current phase of the devcontainer

One of the following:
"PHASE_UNSPECIFIED"
"PHASE_CREATING"
"PHASE_RUNNING"
"PHASE_STOPPED"
"PHASE_FAILED"
remote_user: Optional[str]

remote_user is the user that is used to connect to the devcontainer

remote_workspace_folder: Optional[str]

remote_workspace_folder is the folder that is used to connect to the devcontainer

secrets_in_sync: Optional[bool]

secrets_in_sync indicates if the secrets are up to date w.r.t. the running devcontainer.

session: Optional[str]

session is the session that is currently active in the devcontainer.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the devcontainer is present but not in the expected state.

environment_urls: Optional[EnvironmentURLs]

environment_url contains the URL at which the environment can be accessed. This field is only set if the environment is running.

logs: Optional[str]

logs is the URL at which the environment logs can be accessed.

ops: Optional[str]

ops is the URL at which the environment ops service can be accessed.

ports: Optional[List[EnvironmentURLsPort]]
port: Optional[int]

port is the port number of the environment port

formatint32
maximum65535
minimum1024
url: Optional[str]

url is the URL at which the environment port can be accessed

ssh: Optional[EnvironmentURLsSSH]

SSH is the URL at which the environment can be accessed via SSH.

url: Optional[str]
support_bundle: Optional[str]

support_bundle is the URL at which the environment support bundle can be accessed.

failure_message: Optional[List[str]]

failure_message summarises why the environment failed to operate. If this is non-empty the environment has failed to operate and will likely transition to a stopped state.

machine: Optional[Machine]

machine contains the status of the environment machine

failure_message: Optional[str]

failure_message contains the reason the machine failed to operate.

phase: Optional[Literal["PHASE_UNSPECIFIED", "PHASE_CREATING", "PHASE_STARTING", 5 more]]

phase is the current phase of the environment machine

One of the following:
"PHASE_UNSPECIFIED"
"PHASE_CREATING"
"PHASE_STARTING"
"PHASE_RUNNING"
"PHASE_STOPPING"
"PHASE_STOPPED"
"PHASE_DELETING"
"PHASE_DELETED"
session: Optional[str]

session is the session that is currently active in the machine.

timeout: Optional[str]

timeout contains the reason the environment has timed out. If this field is empty, the environment has not timed out.

versions: Optional[MachineVersions]

versions contains the versions of components in the machine.

ami_id: Optional[str]
supervisor_commit: Optional[str]
supervisor_version: Optional[str]
warning_message: Optional[str]

warning_message contains warnings, e.g. when the machine is present but not in the expected state.

phase: Optional[EnvironmentPhase]

the phase of an environment is a simple, high-level summary of where the environment is in its lifecycle

One of the following:
"ENVIRONMENT_PHASE_UNSPECIFIED"
"ENVIRONMENT_PHASE_CREATING"
"ENVIRONMENT_PHASE_STARTING"
"ENVIRONMENT_PHASE_RUNNING"
"ENVIRONMENT_PHASE_UPDATING"
"ENVIRONMENT_PHASE_STOPPING"
"ENVIRONMENT_PHASE_STOPPED"
"ENVIRONMENT_PHASE_DELETING"
"ENVIRONMENT_PHASE_DELETED"
runner_ack: Optional[RunnerAck]

runner_ack contains the acknowledgement from the runner that is has received the environment spec.

message: Optional[str]
spec_version: Optional[str]
status_code: Optional[Literal["STATUS_CODE_UNSPECIFIED", "STATUS_CODE_OK", "STATUS_CODE_INVALID_RESOURCE", "STATUS_CODE_FAILED_PRECONDITION"]]
One of the following:
"STATUS_CODE_UNSPECIFIED"
"STATUS_CODE_OK"
"STATUS_CODE_INVALID_RESOURCE"
"STATUS_CODE_FAILED_PRECONDITION"
secrets: Optional[List[Secret]]

secrets contains the status of the environment secrets

id: Optional[str]

id is the unique identifier of the secret.

failure_message: Optional[str]

failure_message contains the reason the secret failed to be materialize.

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]
One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
secret_name: Optional[str]
session: Optional[str]

session is the session that is currently active in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the secret is present but not in the expected state.

ssh_public_keys: Optional[List[SSHPublicKey]]

ssh_public_keys contains the status of the environment ssh public keys

id: Optional[str]

id is the unique identifier of the public key

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the public key

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
status_version: Optional[str]

version of the status update. Environment instances themselves are unversioned, but their status has different versions. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.status_version < b.status_version then a was the status before b.

warning_message: Optional[List[str]]

warning_message contains warnings, e.g. when the environment is present but not in the expected state.

class EnvironmentCreateEnvironmentTokenResponse:
access_token: str

access_token is the token that can be used for environment authentication

class EnvironmentCreateFromProjectResponse:
environment: Environment

+resource get environment

id: str

ID is a unique identifier of this environment. No other environment with the same name must be managed by this environment manager

metadata: Optional[EnvironmentMetadata]

Metadata is data associated with this environment that’s required for other parts of Gitpod to function

annotations: Optional[Dict[str, str]]

annotations are key/value pairs that gets attached to the environment. +internal - not yet implemented

archived_at: Optional[datetime]

Time when the Environment was archived. If not set, the environment is not archived.

formatdate-time
created_at: Optional[datetime]

Time when the Environment was created.

formatdate-time
creator: Optional[Subject]

creator is the identity of the creator of the environment

id: Optional[str]

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"
last_started_at: Optional[datetime]

Time when the Environment was last started (i.e. CreateEnvironment or StartEnvironment were called).

formatdate-time
lockdown_at: Optional[datetime]

lockdown_at is the time at which the environment becomes locked down due to the organization’s maximum environment lifetime policy. Nil when no lifetime policy applies.

formatdate-time
name: Optional[str]

name is the name of the environment as specified by the user

maxLength80
organization_id: Optional[str]

organization_id is the ID of the organization that contains the environment

formatuuid
original_context_url: Optional[str]

original_context_url is the normalized URL from which the environment was created

prebuild_id: Optional[str]

prebuild_id is the ID of the prebuild this environment was created from. Only set if the environment was created from a prebuild.

formatuuid
project_id: Optional[str]

If the Environment was started from a project, the project_id will reference the project.

role: Optional[EnvironmentRole]

role is the role of the environment

One of the following:
"ENVIRONMENT_ROLE_UNSPECIFIED"
"ENVIRONMENT_ROLE_DEFAULT"
"ENVIRONMENT_ROLE_PREBUILD"
"ENVIRONMENT_ROLE_WORKFLOW"
runner_id: Optional[str]

Runner is the ID of the runner that runs this environment.

spec: Optional[EnvironmentSpec]

Spec is the configuration of the environment that’s required for the runner to start the environment

admission: Optional[AdmissionLevel]

admission controlls who can access the environment and its ports.

One of the following:
"ADMISSION_LEVEL_UNSPECIFIED"
"ADMISSION_LEVEL_OWNER_ONLY"
"ADMISSION_LEVEL_EVERYONE"
"ADMISSION_LEVEL_ORGANIZATION"
"ADMISSION_LEVEL_CREATOR_ONLY"
automations_file: Optional[AutomationsFile]

automations_file is the automations file spec of the environment

automations_file_path: Optional[str]

automations_file_path is the path to the automations file that is applied in the environment, relative to the repo root. path must not be absolute (start with a /):

this.matches('^$|^[^/].*')
session: Optional[str]
trigger_filter: Optional[List[AutomationTrigger]]

trigger_filter specifies which automation triggers should execute. When set, only automations matching these triggers will run. If empty/unset, all triggers are evaluated normally.

before_snapshot: Optional[bool]
manual: Optional[bool]
post_devcontainer_start: Optional[bool]
post_environment_start: Optional[bool]
post_machine_start: Optional[bool]
prebuild: Optional[bool]
content: Optional[Content]

content is the content spec of the environment

git_email: Optional[str]

The Git email address

git_username: Optional[str]

The Git username

initializer: Optional[EnvironmentInitializer]

initializer configures how the environment is to be initialized

specs: Optional[List[Spec]]
context_url: Optional[SpecContextURL]
url: Optional[str]

url is the URL from which the environment is created

formaturi
git: Optional[SpecGit]
checkout_location: Optional[str]

a path relative to the environment root in which the code will be checked out to

clone_target: Optional[str]

the value for the clone target mode - use depends on the target mode

remote_uri: Optional[str]

remote_uri is the Git remote origin

target_mode: Optional[Literal["CLONE_TARGET_MODE_UNSPECIFIED", "CLONE_TARGET_MODE_REMOTE_HEAD", "CLONE_TARGET_MODE_REMOTE_COMMIT", 3 more]]

the target mode determines what gets checked out

One of the following:
"CLONE_TARGET_MODE_UNSPECIFIED"
"CLONE_TARGET_MODE_REMOTE_HEAD"
"CLONE_TARGET_MODE_REMOTE_COMMIT"
"CLONE_TARGET_MODE_REMOTE_BRANCH"
"CLONE_TARGET_MODE_LOCAL_BRANCH"
"CLONE_TARGET_MODE_REMOTE_TAG"
upstream_remote_uri: Optional[str]

upstream_Remote_uri is the fork upstream of a repository

session: Optional[str]
desired_phase: Optional[EnvironmentPhase]

Phase is the desired phase of the environment

One of the following:
"ENVIRONMENT_PHASE_UNSPECIFIED"
"ENVIRONMENT_PHASE_CREATING"
"ENVIRONMENT_PHASE_STARTING"
"ENVIRONMENT_PHASE_RUNNING"
"ENVIRONMENT_PHASE_UPDATING"
"ENVIRONMENT_PHASE_STOPPING"
"ENVIRONMENT_PHASE_STOPPED"
"ENVIRONMENT_PHASE_DELETING"
"ENVIRONMENT_PHASE_DELETED"
devcontainer: Optional[Devcontainer]

devcontainer is the devcontainer spec of the environment

default_devcontainer_image: Optional[str]

default_devcontainer_image is the default image that is used to start the devcontainer if no devcontainer config file is found

devcontainer_file_path: Optional[str]

devcontainer_file_path is the path to the devcontainer file relative to the repo root path must not be absolute (start with a /):

this.matches('^$|^[^/].*')
dotfiles: Optional[DevcontainerDotfiles]

Experimental: dotfiles is the dotfiles configuration of the devcontainer

repository: str

URL of a dotfiles Git repository (e.g. https://github.com/owner/repository)

formaturi
lifecycle_stage: Optional[Literal["LIFECYCLE_STAGE_UNSPECIFIED", "LIFECYCLE_STAGE_FULL", "LIFECYCLE_STAGE_PREBUILD"]]

lifecycle_stage controls which devcontainer lifecycle commands are executed. Defaults to FULL if not specified.

One of the following:
"LIFECYCLE_STAGE_UNSPECIFIED"
"LIFECYCLE_STAGE_FULL"
"LIFECYCLE_STAGE_PREBUILD"
session: Optional[str]
kernel_controls_config: Optional[KernelControlsConfig]

kernel_controls_config configures kernel-level controls for this environment

veto: Optional[Veto]

veto controls blocking mechanisms

exec: Optional[Exec]

exec controls executable blocking

action: Optional[KernelControlsAction]

action specifies what action kernel-level controls take on policy violations

One of the following:
"KERNEL_CONTROLS_ACTION_UNSPECIFIED"
"KERNEL_CONTROLS_ACTION_BLOCK"
"KERNEL_CONTROLS_ACTION_AUDIT"
denylist: Optional[List[str]]

denylist is the list of executable paths or names to block

enabled: Optional[bool]

enabled controls whether executable blocking is active

machine: Optional[Machine]

machine is the machine spec of the environment

class_: Optional[str]

Class denotes the class of the environment we ought to start

session: Optional[str]
ports: Optional[List[Port]]

ports is the set of ports which ought to be exposed to your network

admission: Optional[AdmissionLevel]

policy of this port

One of the following:
"ADMISSION_LEVEL_UNSPECIFIED"
"ADMISSION_LEVEL_OWNER_ONLY"
"ADMISSION_LEVEL_EVERYONE"
"ADMISSION_LEVEL_ORGANIZATION"
"ADMISSION_LEVEL_CREATOR_ONLY"
name: Optional[str]

name of this port

maxLength100
minLength1
port: Optional[int]

port number

formatint32
maximum65535
minimum1024
protocol: Optional[Literal["PROTOCOL_UNSPECIFIED", "PROTOCOL_HTTP", "PROTOCOL_HTTPS"]]

protocol for communication (Gateway proxy → user environment service). this setting only affects the protocol used between Gateway and user environment services.

One of the following:
"PROTOCOL_UNSPECIFIED"
"PROTOCOL_HTTP"
"PROTOCOL_HTTPS"
secrets: Optional[List[Secret]]

secrets are confidential data that is mounted into the environment

id: Optional[str]

id is the unique identifier of the secret.

api_only: Optional[bool]

api_only indicates the secret is only available via API/CLI. These secrets are resolved but NOT automatically injected into services or devcontainers.

container_registry_basic_auth_host: Optional[str]

container_registry_basic_auth_host is the hostname of the container registry that supports basic auth

credential_proxy: Optional[SecretCredentialProxy]

credential_proxy configures transparent credential injection via the credential proxy. When set, the credential proxy intercepts HTTPS traffic to the target hosts and replaces the dummy secret value with the real value in the specified HTTP header. The real secret value is never exposed in the environment. This field is orthogonal to mount — a secret can be both mounted (e.g. as a git credential) and proxied at the same time.

format: Optional[Literal["FORMAT_UNSPECIFIED", "FORMAT_PLAIN", "FORMAT_BASE64"]]

format describes how the secret value is encoded. The proxy uses this to decode the value before injecting it into the header.

One of the following:
"FORMAT_UNSPECIFIED"
"FORMAT_PLAIN"
"FORMAT_BASE64"
header: Optional[str]

header is the HTTP header name to inject (e.g. “Authorization”).

target_hosts: Optional[List[str]]

target_hosts lists the hostnames to intercept (for example “github.com” or “*.github.com”). Wildcards are subdomain-only and do not match the apex domain.

environment_variable: Optional[str]
file_path: Optional[str]

file_path is the path inside the devcontainer where the secret is mounted

git_credential_host: Optional[str]
name: Optional[str]

name is the human readable description of the secret

scope: Optional[Literal["SCOPE_UNSPECIFIED", "SCOPE_ORGANIZATION", "SCOPE_PROJECT", 3 more]]

scope indicates where this secret originated from. Used to filter secrets during build (only org and project secrets are injected).

One of the following:
"SCOPE_UNSPECIFIED"
"SCOPE_ORGANIZATION"
"SCOPE_PROJECT"
"SCOPE_USER"
"SCOPE_SERVICE_ACCOUNT"
"SCOPE_RUNNER"
session: Optional[str]

session indicated the current session of the secret. When the session does not change, secrets are not reloaded in the environment.

source: Optional[str]

source is the source of the secret, for now control-plane or runner

source_ref: Optional[str]

source_ref into the source, in case of control-plane this is uuid of the secret

spec_version: Optional[str]

version of the spec. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.spec_version < b.spec_version then a was the spec before b.

ssh_public_keys: Optional[List[SSHPublicKey]]

ssh_public_keys are the public keys used to ssh into the environment

id: Optional[str]

id is the unique identifier of the public key

value: Optional[str]

value is the actual public key in the public key file format

timeout: Optional[Timeout]

Timeout configures the environment timeout

disconnected: Optional[str]

inacitivity is the maximum time of disconnection before the environment is stopped or paused. Minimum duration is 30 minutes. Set to 0 to disable. value must be 0s (disabled) or at least 1800s (30 minutes):

this == duration('0s') || this >= duration('1800s')
formatregex
workflow_action_id: Optional[str]

workflow_action_id is an optional reference to the workflow execution action that created this environment. Used for tracking and event correlation.

formatuuid
status: Optional[EnvironmentStatus]

Status is the current status of the environment

activity_signal: Optional[EnvironmentActivitySignal]

activity_signal is the last activity signal for the environment.

source: Optional[str]

source of the activity signal, such as “VS Code”, “SSH”, or “Automations”. It should be a human-readable string that describes the source of the activity signal.

maxLength80
minLength3
timestamp: Optional[datetime]

timestamp of when the activity was observed by the source. Only reported every 5 minutes. Zero value means no activity was observed.

formatdate-time
automations_file: Optional[AutomationsFile]

automations_file contains the status of the automations file.

automations_file_path: Optional[str]

automations_file_path is the path to the automations file relative to the repo root.

automations_file_presence: Optional[Literal["PRESENCE_UNSPECIFIED", "PRESENCE_ABSENT", "PRESENCE_DISCOVERED", "PRESENCE_SPECIFIED"]]

automations_file_presence indicates how an automations file is present in the environment.

One of the following:
"PRESENCE_UNSPECIFIED"
"PRESENCE_ABSENT"
"PRESENCE_DISCOVERED"
"PRESENCE_SPECIFIED"
failure_message: Optional[str]

failure_message contains the reason the automations file failed to be applied. This is only set if the phase is FAILED.

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the automations file.

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
session: Optional[str]

session is the automations file session that is currently applied in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when no triggers are defined in the automations file.

content: Optional[Content]

content contains the status of the environment content.

content_location_in_machine: Optional[str]

content_location_in_machine is the location of the content in the machine

failure_message: Optional[str]

failure_message contains the reason the content initialization failed.

git: Optional[ContentGit]

git is the Git working copy status of the environment. Note: this is a best-effort field and more often than not will not be present. Its absence does not indicate the absence of a working copy.

branch: Optional[str]

branch is branch we’re currently on

changed_files: Optional[List[ContentGitChangedFile]]

changed_files is an array of changed files in the environment, possibly truncated

change_type: Optional[Literal["CHANGE_TYPE_UNSPECIFIED", "CHANGE_TYPE_ADDED", "CHANGE_TYPE_MODIFIED", 5 more]]

ChangeType is the type of change that happened to the file

One of the following:
"CHANGE_TYPE_UNSPECIFIED"
"CHANGE_TYPE_ADDED"
"CHANGE_TYPE_MODIFIED"
"CHANGE_TYPE_DELETED"
"CHANGE_TYPE_RENAMED"
"CHANGE_TYPE_COPIED"
"CHANGE_TYPE_UPDATED_BUT_UNMERGED"
"CHANGE_TYPE_UNTRACKED"
old_path: Optional[str]

old_path is the previous path of the file before a rename or copy. Only set when change_type is RENAMED or COPIED.

maxLength255
path: Optional[str]

path is the path of the file

maxLength255
clone_url: Optional[str]

clone_url is the repository url as you would pass it to “git clone”. Only HTTPS clone URLs are supported.

latest_commit: Optional[str]

latest_commit is the most recent commit on the current branch

total_changed_files: Optional[int]
formatint32
total_unpushed_commits: Optional[int]

the total number of unpushed changes

formatint32
unpushed_commits: Optional[List[str]]

unpushed_commits is an array of unpushed changes in the environment, possibly truncated

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the environment content

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
session: Optional[str]

session is the session that is currently active in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the content is present but not in the expected state.

devcontainer: Optional[Devcontainer]

devcontainer contains the status of the devcontainer.

container_id: Optional[str]

container_id is the ID of the container.

container_name: Optional[str]

container_name is the name of the container that is used to connect to the devcontainer

devcontainerconfig_in_sync: Optional[bool]

devcontainerconfig_in_sync indicates if the devcontainer is up to date w.r.t. the devcontainer config file.

devcontainer_file_path: Optional[str]

devcontainer_file_path is the path to the devcontainer file relative to the repo root

devcontainer_file_presence: Optional[Literal["PRESENCE_UNSPECIFIED", "PRESENCE_GENERATED", "PRESENCE_DISCOVERED", "PRESENCE_SPECIFIED"]]

devcontainer_file_presence indicates how the devcontainer file is present in the repo.

One of the following:
"PRESENCE_UNSPECIFIED"
"PRESENCE_GENERATED"
"PRESENCE_DISCOVERED"
"PRESENCE_SPECIFIED"
failure_message: Optional[str]

failure_message contains the reason the devcontainer failed to operate.

phase: Optional[Literal["PHASE_UNSPECIFIED", "PHASE_CREATING", "PHASE_RUNNING", 2 more]]

phase is the current phase of the devcontainer

One of the following:
"PHASE_UNSPECIFIED"
"PHASE_CREATING"
"PHASE_RUNNING"
"PHASE_STOPPED"
"PHASE_FAILED"
remote_user: Optional[str]

remote_user is the user that is used to connect to the devcontainer

remote_workspace_folder: Optional[str]

remote_workspace_folder is the folder that is used to connect to the devcontainer

secrets_in_sync: Optional[bool]

secrets_in_sync indicates if the secrets are up to date w.r.t. the running devcontainer.

session: Optional[str]

session is the session that is currently active in the devcontainer.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the devcontainer is present but not in the expected state.

environment_urls: Optional[EnvironmentURLs]

environment_url contains the URL at which the environment can be accessed. This field is only set if the environment is running.

logs: Optional[str]

logs is the URL at which the environment logs can be accessed.

ops: Optional[str]

ops is the URL at which the environment ops service can be accessed.

ports: Optional[List[EnvironmentURLsPort]]
port: Optional[int]

port is the port number of the environment port

formatint32
maximum65535
minimum1024
url: Optional[str]

url is the URL at which the environment port can be accessed

ssh: Optional[EnvironmentURLsSSH]

SSH is the URL at which the environment can be accessed via SSH.

url: Optional[str]
support_bundle: Optional[str]

support_bundle is the URL at which the environment support bundle can be accessed.

failure_message: Optional[List[str]]

failure_message summarises why the environment failed to operate. If this is non-empty the environment has failed to operate and will likely transition to a stopped state.

machine: Optional[Machine]

machine contains the status of the environment machine

failure_message: Optional[str]

failure_message contains the reason the machine failed to operate.

phase: Optional[Literal["PHASE_UNSPECIFIED", "PHASE_CREATING", "PHASE_STARTING", 5 more]]

phase is the current phase of the environment machine

One of the following:
"PHASE_UNSPECIFIED"
"PHASE_CREATING"
"PHASE_STARTING"
"PHASE_RUNNING"
"PHASE_STOPPING"
"PHASE_STOPPED"
"PHASE_DELETING"
"PHASE_DELETED"
session: Optional[str]

session is the session that is currently active in the machine.

timeout: Optional[str]

timeout contains the reason the environment has timed out. If this field is empty, the environment has not timed out.

versions: Optional[MachineVersions]

versions contains the versions of components in the machine.

ami_id: Optional[str]
supervisor_commit: Optional[str]
supervisor_version: Optional[str]
warning_message: Optional[str]

warning_message contains warnings, e.g. when the machine is present but not in the expected state.

phase: Optional[EnvironmentPhase]

the phase of an environment is a simple, high-level summary of where the environment is in its lifecycle

One of the following:
"ENVIRONMENT_PHASE_UNSPECIFIED"
"ENVIRONMENT_PHASE_CREATING"
"ENVIRONMENT_PHASE_STARTING"
"ENVIRONMENT_PHASE_RUNNING"
"ENVIRONMENT_PHASE_UPDATING"
"ENVIRONMENT_PHASE_STOPPING"
"ENVIRONMENT_PHASE_STOPPED"
"ENVIRONMENT_PHASE_DELETING"
"ENVIRONMENT_PHASE_DELETED"
runner_ack: Optional[RunnerAck]

runner_ack contains the acknowledgement from the runner that is has received the environment spec.

message: Optional[str]
spec_version: Optional[str]
status_code: Optional[Literal["STATUS_CODE_UNSPECIFIED", "STATUS_CODE_OK", "STATUS_CODE_INVALID_RESOURCE", "STATUS_CODE_FAILED_PRECONDITION"]]
One of the following:
"STATUS_CODE_UNSPECIFIED"
"STATUS_CODE_OK"
"STATUS_CODE_INVALID_RESOURCE"
"STATUS_CODE_FAILED_PRECONDITION"
secrets: Optional[List[Secret]]

secrets contains the status of the environment secrets

id: Optional[str]

id is the unique identifier of the secret.

failure_message: Optional[str]

failure_message contains the reason the secret failed to be materialize.

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]
One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
secret_name: Optional[str]
session: Optional[str]

session is the session that is currently active in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the secret is present but not in the expected state.

ssh_public_keys: Optional[List[SSHPublicKey]]

ssh_public_keys contains the status of the environment ssh public keys

id: Optional[str]

id is the unique identifier of the public key

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the public key

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
status_version: Optional[str]

version of the status update. Environment instances themselves are unversioned, but their status has different versions. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.status_version < b.status_version then a was the status before b.

warning_message: Optional[List[str]]

warning_message contains warnings, e.g. when the environment is present but not in the expected state.

class EnvironmentCreateLogsTokenResponse:
access_token: str

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

class EnvironmentRetrieveResponse:
environment: Environment

+resource get environment

id: str

ID is a unique identifier of this environment. No other environment with the same name must be managed by this environment manager

metadata: Optional[EnvironmentMetadata]

Metadata is data associated with this environment that’s required for other parts of Gitpod to function

annotations: Optional[Dict[str, str]]

annotations are key/value pairs that gets attached to the environment. +internal - not yet implemented

archived_at: Optional[datetime]

Time when the Environment was archived. If not set, the environment is not archived.

formatdate-time
created_at: Optional[datetime]

Time when the Environment was created.

formatdate-time
creator: Optional[Subject]

creator is the identity of the creator of the environment

id: Optional[str]

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"
last_started_at: Optional[datetime]

Time when the Environment was last started (i.e. CreateEnvironment or StartEnvironment were called).

formatdate-time
lockdown_at: Optional[datetime]

lockdown_at is the time at which the environment becomes locked down due to the organization’s maximum environment lifetime policy. Nil when no lifetime policy applies.

formatdate-time
name: Optional[str]

name is the name of the environment as specified by the user

maxLength80
organization_id: Optional[str]

organization_id is the ID of the organization that contains the environment

formatuuid
original_context_url: Optional[str]

original_context_url is the normalized URL from which the environment was created

prebuild_id: Optional[str]

prebuild_id is the ID of the prebuild this environment was created from. Only set if the environment was created from a prebuild.

formatuuid
project_id: Optional[str]

If the Environment was started from a project, the project_id will reference the project.

role: Optional[EnvironmentRole]

role is the role of the environment

One of the following:
"ENVIRONMENT_ROLE_UNSPECIFIED"
"ENVIRONMENT_ROLE_DEFAULT"
"ENVIRONMENT_ROLE_PREBUILD"
"ENVIRONMENT_ROLE_WORKFLOW"
runner_id: Optional[str]

Runner is the ID of the runner that runs this environment.

spec: Optional[EnvironmentSpec]

Spec is the configuration of the environment that’s required for the runner to start the environment

admission: Optional[AdmissionLevel]

admission controlls who can access the environment and its ports.

One of the following:
"ADMISSION_LEVEL_UNSPECIFIED"
"ADMISSION_LEVEL_OWNER_ONLY"
"ADMISSION_LEVEL_EVERYONE"
"ADMISSION_LEVEL_ORGANIZATION"
"ADMISSION_LEVEL_CREATOR_ONLY"
automations_file: Optional[AutomationsFile]

automations_file is the automations file spec of the environment

automations_file_path: Optional[str]

automations_file_path is the path to the automations file that is applied in the environment, relative to the repo root. path must not be absolute (start with a /):

this.matches('^$|^[^/].*')
session: Optional[str]
trigger_filter: Optional[List[AutomationTrigger]]

trigger_filter specifies which automation triggers should execute. When set, only automations matching these triggers will run. If empty/unset, all triggers are evaluated normally.

before_snapshot: Optional[bool]
manual: Optional[bool]
post_devcontainer_start: Optional[bool]
post_environment_start: Optional[bool]
post_machine_start: Optional[bool]
prebuild: Optional[bool]
content: Optional[Content]

content is the content spec of the environment

git_email: Optional[str]

The Git email address

git_username: Optional[str]

The Git username

initializer: Optional[EnvironmentInitializer]

initializer configures how the environment is to be initialized

specs: Optional[List[Spec]]
context_url: Optional[SpecContextURL]
url: Optional[str]

url is the URL from which the environment is created

formaturi
git: Optional[SpecGit]
checkout_location: Optional[str]

a path relative to the environment root in which the code will be checked out to

clone_target: Optional[str]

the value for the clone target mode - use depends on the target mode

remote_uri: Optional[str]

remote_uri is the Git remote origin

target_mode: Optional[Literal["CLONE_TARGET_MODE_UNSPECIFIED", "CLONE_TARGET_MODE_REMOTE_HEAD", "CLONE_TARGET_MODE_REMOTE_COMMIT", 3 more]]

the target mode determines what gets checked out

One of the following:
"CLONE_TARGET_MODE_UNSPECIFIED"
"CLONE_TARGET_MODE_REMOTE_HEAD"
"CLONE_TARGET_MODE_REMOTE_COMMIT"
"CLONE_TARGET_MODE_REMOTE_BRANCH"
"CLONE_TARGET_MODE_LOCAL_BRANCH"
"CLONE_TARGET_MODE_REMOTE_TAG"
upstream_remote_uri: Optional[str]

upstream_Remote_uri is the fork upstream of a repository

session: Optional[str]
desired_phase: Optional[EnvironmentPhase]

Phase is the desired phase of the environment

One of the following:
"ENVIRONMENT_PHASE_UNSPECIFIED"
"ENVIRONMENT_PHASE_CREATING"
"ENVIRONMENT_PHASE_STARTING"
"ENVIRONMENT_PHASE_RUNNING"
"ENVIRONMENT_PHASE_UPDATING"
"ENVIRONMENT_PHASE_STOPPING"
"ENVIRONMENT_PHASE_STOPPED"
"ENVIRONMENT_PHASE_DELETING"
"ENVIRONMENT_PHASE_DELETED"
devcontainer: Optional[Devcontainer]

devcontainer is the devcontainer spec of the environment

default_devcontainer_image: Optional[str]

default_devcontainer_image is the default image that is used to start the devcontainer if no devcontainer config file is found

devcontainer_file_path: Optional[str]

devcontainer_file_path is the path to the devcontainer file relative to the repo root path must not be absolute (start with a /):

this.matches('^$|^[^/].*')
dotfiles: Optional[DevcontainerDotfiles]

Experimental: dotfiles is the dotfiles configuration of the devcontainer

repository: str

URL of a dotfiles Git repository (e.g. https://github.com/owner/repository)

formaturi
lifecycle_stage: Optional[Literal["LIFECYCLE_STAGE_UNSPECIFIED", "LIFECYCLE_STAGE_FULL", "LIFECYCLE_STAGE_PREBUILD"]]

lifecycle_stage controls which devcontainer lifecycle commands are executed. Defaults to FULL if not specified.

One of the following:
"LIFECYCLE_STAGE_UNSPECIFIED"
"LIFECYCLE_STAGE_FULL"
"LIFECYCLE_STAGE_PREBUILD"
session: Optional[str]
kernel_controls_config: Optional[KernelControlsConfig]

kernel_controls_config configures kernel-level controls for this environment

veto: Optional[Veto]

veto controls blocking mechanisms

exec: Optional[Exec]

exec controls executable blocking

action: Optional[KernelControlsAction]

action specifies what action kernel-level controls take on policy violations

One of the following:
"KERNEL_CONTROLS_ACTION_UNSPECIFIED"
"KERNEL_CONTROLS_ACTION_BLOCK"
"KERNEL_CONTROLS_ACTION_AUDIT"
denylist: Optional[List[str]]

denylist is the list of executable paths or names to block

enabled: Optional[bool]

enabled controls whether executable blocking is active

machine: Optional[Machine]

machine is the machine spec of the environment

class_: Optional[str]

Class denotes the class of the environment we ought to start

session: Optional[str]
ports: Optional[List[Port]]

ports is the set of ports which ought to be exposed to your network

admission: Optional[AdmissionLevel]

policy of this port

One of the following:
"ADMISSION_LEVEL_UNSPECIFIED"
"ADMISSION_LEVEL_OWNER_ONLY"
"ADMISSION_LEVEL_EVERYONE"
"ADMISSION_LEVEL_ORGANIZATION"
"ADMISSION_LEVEL_CREATOR_ONLY"
name: Optional[str]

name of this port

maxLength100
minLength1
port: Optional[int]

port number

formatint32
maximum65535
minimum1024
protocol: Optional[Literal["PROTOCOL_UNSPECIFIED", "PROTOCOL_HTTP", "PROTOCOL_HTTPS"]]

protocol for communication (Gateway proxy → user environment service). this setting only affects the protocol used between Gateway and user environment services.

One of the following:
"PROTOCOL_UNSPECIFIED"
"PROTOCOL_HTTP"
"PROTOCOL_HTTPS"
secrets: Optional[List[Secret]]

secrets are confidential data that is mounted into the environment

id: Optional[str]

id is the unique identifier of the secret.

api_only: Optional[bool]

api_only indicates the secret is only available via API/CLI. These secrets are resolved but NOT automatically injected into services or devcontainers.

container_registry_basic_auth_host: Optional[str]

container_registry_basic_auth_host is the hostname of the container registry that supports basic auth

credential_proxy: Optional[SecretCredentialProxy]

credential_proxy configures transparent credential injection via the credential proxy. When set, the credential proxy intercepts HTTPS traffic to the target hosts and replaces the dummy secret value with the real value in the specified HTTP header. The real secret value is never exposed in the environment. This field is orthogonal to mount — a secret can be both mounted (e.g. as a git credential) and proxied at the same time.

format: Optional[Literal["FORMAT_UNSPECIFIED", "FORMAT_PLAIN", "FORMAT_BASE64"]]

format describes how the secret value is encoded. The proxy uses this to decode the value before injecting it into the header.

One of the following:
"FORMAT_UNSPECIFIED"
"FORMAT_PLAIN"
"FORMAT_BASE64"
header: Optional[str]

header is the HTTP header name to inject (e.g. “Authorization”).

target_hosts: Optional[List[str]]

target_hosts lists the hostnames to intercept (for example “github.com” or “*.github.com”). Wildcards are subdomain-only and do not match the apex domain.

environment_variable: Optional[str]
file_path: Optional[str]

file_path is the path inside the devcontainer where the secret is mounted

git_credential_host: Optional[str]
name: Optional[str]

name is the human readable description of the secret

scope: Optional[Literal["SCOPE_UNSPECIFIED", "SCOPE_ORGANIZATION", "SCOPE_PROJECT", 3 more]]

scope indicates where this secret originated from. Used to filter secrets during build (only org and project secrets are injected).

One of the following:
"SCOPE_UNSPECIFIED"
"SCOPE_ORGANIZATION"
"SCOPE_PROJECT"
"SCOPE_USER"
"SCOPE_SERVICE_ACCOUNT"
"SCOPE_RUNNER"
session: Optional[str]

session indicated the current session of the secret. When the session does not change, secrets are not reloaded in the environment.

source: Optional[str]

source is the source of the secret, for now control-plane or runner

source_ref: Optional[str]

source_ref into the source, in case of control-plane this is uuid of the secret

spec_version: Optional[str]

version of the spec. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.spec_version < b.spec_version then a was the spec before b.

ssh_public_keys: Optional[List[SSHPublicKey]]

ssh_public_keys are the public keys used to ssh into the environment

id: Optional[str]

id is the unique identifier of the public key

value: Optional[str]

value is the actual public key in the public key file format

timeout: Optional[Timeout]

Timeout configures the environment timeout

disconnected: Optional[str]

inacitivity is the maximum time of disconnection before the environment is stopped or paused. Minimum duration is 30 minutes. Set to 0 to disable. value must be 0s (disabled) or at least 1800s (30 minutes):

this == duration('0s') || this >= duration('1800s')
formatregex
workflow_action_id: Optional[str]

workflow_action_id is an optional reference to the workflow execution action that created this environment. Used for tracking and event correlation.

formatuuid
status: Optional[EnvironmentStatus]

Status is the current status of the environment

activity_signal: Optional[EnvironmentActivitySignal]

activity_signal is the last activity signal for the environment.

source: Optional[str]

source of the activity signal, such as “VS Code”, “SSH”, or “Automations”. It should be a human-readable string that describes the source of the activity signal.

maxLength80
minLength3
timestamp: Optional[datetime]

timestamp of when the activity was observed by the source. Only reported every 5 minutes. Zero value means no activity was observed.

formatdate-time
automations_file: Optional[AutomationsFile]

automations_file contains the status of the automations file.

automations_file_path: Optional[str]

automations_file_path is the path to the automations file relative to the repo root.

automations_file_presence: Optional[Literal["PRESENCE_UNSPECIFIED", "PRESENCE_ABSENT", "PRESENCE_DISCOVERED", "PRESENCE_SPECIFIED"]]

automations_file_presence indicates how an automations file is present in the environment.

One of the following:
"PRESENCE_UNSPECIFIED"
"PRESENCE_ABSENT"
"PRESENCE_DISCOVERED"
"PRESENCE_SPECIFIED"
failure_message: Optional[str]

failure_message contains the reason the automations file failed to be applied. This is only set if the phase is FAILED.

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the automations file.

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
session: Optional[str]

session is the automations file session that is currently applied in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when no triggers are defined in the automations file.

content: Optional[Content]

content contains the status of the environment content.

content_location_in_machine: Optional[str]

content_location_in_machine is the location of the content in the machine

failure_message: Optional[str]

failure_message contains the reason the content initialization failed.

git: Optional[ContentGit]

git is the Git working copy status of the environment. Note: this is a best-effort field and more often than not will not be present. Its absence does not indicate the absence of a working copy.

branch: Optional[str]

branch is branch we’re currently on

changed_files: Optional[List[ContentGitChangedFile]]

changed_files is an array of changed files in the environment, possibly truncated

change_type: Optional[Literal["CHANGE_TYPE_UNSPECIFIED", "CHANGE_TYPE_ADDED", "CHANGE_TYPE_MODIFIED", 5 more]]

ChangeType is the type of change that happened to the file

One of the following:
"CHANGE_TYPE_UNSPECIFIED"
"CHANGE_TYPE_ADDED"
"CHANGE_TYPE_MODIFIED"
"CHANGE_TYPE_DELETED"
"CHANGE_TYPE_RENAMED"
"CHANGE_TYPE_COPIED"
"CHANGE_TYPE_UPDATED_BUT_UNMERGED"
"CHANGE_TYPE_UNTRACKED"
old_path: Optional[str]

old_path is the previous path of the file before a rename or copy. Only set when change_type is RENAMED or COPIED.

maxLength255
path: Optional[str]

path is the path of the file

maxLength255
clone_url: Optional[str]

clone_url is the repository url as you would pass it to “git clone”. Only HTTPS clone URLs are supported.

latest_commit: Optional[str]

latest_commit is the most recent commit on the current branch

total_changed_files: Optional[int]
formatint32
total_unpushed_commits: Optional[int]

the total number of unpushed changes

formatint32
unpushed_commits: Optional[List[str]]

unpushed_commits is an array of unpushed changes in the environment, possibly truncated

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the environment content

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
session: Optional[str]

session is the session that is currently active in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the content is present but not in the expected state.

devcontainer: Optional[Devcontainer]

devcontainer contains the status of the devcontainer.

container_id: Optional[str]

container_id is the ID of the container.

container_name: Optional[str]

container_name is the name of the container that is used to connect to the devcontainer

devcontainerconfig_in_sync: Optional[bool]

devcontainerconfig_in_sync indicates if the devcontainer is up to date w.r.t. the devcontainer config file.

devcontainer_file_path: Optional[str]

devcontainer_file_path is the path to the devcontainer file relative to the repo root

devcontainer_file_presence: Optional[Literal["PRESENCE_UNSPECIFIED", "PRESENCE_GENERATED", "PRESENCE_DISCOVERED", "PRESENCE_SPECIFIED"]]

devcontainer_file_presence indicates how the devcontainer file is present in the repo.

One of the following:
"PRESENCE_UNSPECIFIED"
"PRESENCE_GENERATED"
"PRESENCE_DISCOVERED"
"PRESENCE_SPECIFIED"
failure_message: Optional[str]

failure_message contains the reason the devcontainer failed to operate.

phase: Optional[Literal["PHASE_UNSPECIFIED", "PHASE_CREATING", "PHASE_RUNNING", 2 more]]

phase is the current phase of the devcontainer

One of the following:
"PHASE_UNSPECIFIED"
"PHASE_CREATING"
"PHASE_RUNNING"
"PHASE_STOPPED"
"PHASE_FAILED"
remote_user: Optional[str]

remote_user is the user that is used to connect to the devcontainer

remote_workspace_folder: Optional[str]

remote_workspace_folder is the folder that is used to connect to the devcontainer

secrets_in_sync: Optional[bool]

secrets_in_sync indicates if the secrets are up to date w.r.t. the running devcontainer.

session: Optional[str]

session is the session that is currently active in the devcontainer.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the devcontainer is present but not in the expected state.

environment_urls: Optional[EnvironmentURLs]

environment_url contains the URL at which the environment can be accessed. This field is only set if the environment is running.

logs: Optional[str]

logs is the URL at which the environment logs can be accessed.

ops: Optional[str]

ops is the URL at which the environment ops service can be accessed.

ports: Optional[List[EnvironmentURLsPort]]
port: Optional[int]

port is the port number of the environment port

formatint32
maximum65535
minimum1024
url: Optional[str]

url is the URL at which the environment port can be accessed

ssh: Optional[EnvironmentURLsSSH]

SSH is the URL at which the environment can be accessed via SSH.

url: Optional[str]
support_bundle: Optional[str]

support_bundle is the URL at which the environment support bundle can be accessed.

failure_message: Optional[List[str]]

failure_message summarises why the environment failed to operate. If this is non-empty the environment has failed to operate and will likely transition to a stopped state.

machine: Optional[Machine]

machine contains the status of the environment machine

failure_message: Optional[str]

failure_message contains the reason the machine failed to operate.

phase: Optional[Literal["PHASE_UNSPECIFIED", "PHASE_CREATING", "PHASE_STARTING", 5 more]]

phase is the current phase of the environment machine

One of the following:
"PHASE_UNSPECIFIED"
"PHASE_CREATING"
"PHASE_STARTING"
"PHASE_RUNNING"
"PHASE_STOPPING"
"PHASE_STOPPED"
"PHASE_DELETING"
"PHASE_DELETED"
session: Optional[str]

session is the session that is currently active in the machine.

timeout: Optional[str]

timeout contains the reason the environment has timed out. If this field is empty, the environment has not timed out.

versions: Optional[MachineVersions]

versions contains the versions of components in the machine.

ami_id: Optional[str]
supervisor_commit: Optional[str]
supervisor_version: Optional[str]
warning_message: Optional[str]

warning_message contains warnings, e.g. when the machine is present but not in the expected state.

phase: Optional[EnvironmentPhase]

the phase of an environment is a simple, high-level summary of where the environment is in its lifecycle

One of the following:
"ENVIRONMENT_PHASE_UNSPECIFIED"
"ENVIRONMENT_PHASE_CREATING"
"ENVIRONMENT_PHASE_STARTING"
"ENVIRONMENT_PHASE_RUNNING"
"ENVIRONMENT_PHASE_UPDATING"
"ENVIRONMENT_PHASE_STOPPING"
"ENVIRONMENT_PHASE_STOPPED"
"ENVIRONMENT_PHASE_DELETING"
"ENVIRONMENT_PHASE_DELETED"
runner_ack: Optional[RunnerAck]

runner_ack contains the acknowledgement from the runner that is has received the environment spec.

message: Optional[str]
spec_version: Optional[str]
status_code: Optional[Literal["STATUS_CODE_UNSPECIFIED", "STATUS_CODE_OK", "STATUS_CODE_INVALID_RESOURCE", "STATUS_CODE_FAILED_PRECONDITION"]]
One of the following:
"STATUS_CODE_UNSPECIFIED"
"STATUS_CODE_OK"
"STATUS_CODE_INVALID_RESOURCE"
"STATUS_CODE_FAILED_PRECONDITION"
secrets: Optional[List[Secret]]

secrets contains the status of the environment secrets

id: Optional[str]

id is the unique identifier of the secret.

failure_message: Optional[str]

failure_message contains the reason the secret failed to be materialize.

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]
One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
secret_name: Optional[str]
session: Optional[str]

session is the session that is currently active in the environment.

warning_message: Optional[str]

warning_message contains warnings, e.g. when the secret is present but not in the expected state.

ssh_public_keys: Optional[List[SSHPublicKey]]

ssh_public_keys contains the status of the environment ssh public keys

id: Optional[str]

id is the unique identifier of the public key

phase: Optional[Literal["CONTENT_PHASE_UNSPECIFIED", "CONTENT_PHASE_CREATING", "CONTENT_PHASE_INITIALIZING", 4 more]]

phase is the current phase of the public key

One of the following:
"CONTENT_PHASE_UNSPECIFIED"
"CONTENT_PHASE_CREATING"
"CONTENT_PHASE_INITIALIZING"
"CONTENT_PHASE_READY"
"CONTENT_PHASE_UPDATING"
"CONTENT_PHASE_FAILED"
"CONTENT_PHASE_UNAVAILABLE"
status_version: Optional[str]

version of the status update. Environment instances themselves are unversioned, but their status has different versions. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.status_version < b.status_version then a was the status before b.

warning_message: Optional[List[str]]

warning_message contains warnings, e.g. when the environment is present but not in the expected state.

EnvironmentsAutomations

UpsertAutomationsFile
environments.automations.upsert(AutomationUpsertParams**kwargs) -> AutomationUpsertResponse
POST/gitpod.v1.EnvironmentAutomationService/UpsertAutomationsFile
ModelsExpand Collapse
class AutomationsFile:

WARN: Do not remove any field here, as it will break reading automation yaml files. We error if there are any unknown fields in the yaml (to ensure the yaml is correct), but would break if we removed any fields. This includes marking a field as “reserved” in the proto file, this will also break reading the yaml.

services: Optional[Dict[str, Services]]
commands: Optional[ServicesCommands]
ready: Optional[str]

ready is an optional command that is run repeatedly until it exits with a zero exit code. If set, the service will first go into a Starting phase, and then into a Running phase once the ready command exits with a zero exit code.

start: Optional[str]

start is the command to start and run the service. If start exits, the service will transition to the following phase:

  • Stopped: if the exit code is 0
  • Failed: if the exit code is not 0 If the stop command is not set, the start command will receive a SIGTERM signal when the service is requested to stop. If it does not exit within 2 minutes, it will receive a SIGKILL signal.
minLength1
stop: Optional[str]

stop is an optional command that runs when the service is requested to stop. If set, instead of sending a SIGTERM signal to the start command, the stop command will be run. Once the stop command exits, the start command will receive a SIGKILL signal. If the stop command exits with a non-zero exit code, the service will transition to the Failed phase. If the stop command does not exit within 2 minutes, a SIGKILL signal will be sent to both the start and stop commands.

description: Optional[str]
name: Optional[str]
minLength1
role: Optional[Literal["", "default", "editor", "ai-agent"]]
One of the following:
""
"default"
"editor"
"ai-agent"
runs_on: Optional[RunsOn]
docker: Optional[Docker]
environment: Optional[List[str]]
image: Optional[str]
minLength1
machine: Optional[object]

Machine runs the service/task directly on the VM/machine level.

triggered_by: Optional[List[Literal["manual", "postEnvironmentStart", "postDevcontainerStart", "prebuild"]]]
One of the following:
"manual"
"postEnvironmentStart"
"postDevcontainerStart"
"prebuild"
tasks: Optional[Dict[str, Tasks]]
command: Optional[str]
minLength1
depends_on: Optional[List[str]]
description: Optional[str]
name: Optional[str]
minLength1
runs_on: Optional[RunsOn]
docker: Optional[Docker]
environment: Optional[List[str]]
image: Optional[str]
minLength1
machine: Optional[object]

Machine runs the service/task directly on the VM/machine level.

triggered_by: Optional[List[Literal["manual", "postEnvironmentStart", "postDevcontainerStart", "prebuild"]]]
One of the following:
"manual"
"postEnvironmentStart"
"postDevcontainerStart"
"prebuild"
class AutomationUpsertResponse:
updated_service_ids: Optional[List[str]]
updated_task_ids: Optional[List[str]]

EnvironmentsAutomationsServices

CreateService
environments.automations.services.create(ServiceCreateParams**kwargs) -> ServiceCreateResponse
POST/gitpod.v1.EnvironmentAutomationService/CreateService
DeleteService
environments.automations.services.delete(ServiceDeleteParams**kwargs) -> object
POST/gitpod.v1.EnvironmentAutomationService/DeleteService
ListServices
environments.automations.services.list(ServiceListParams**kwargs) -> SyncServicesPage[Service]
POST/gitpod.v1.EnvironmentAutomationService/ListServices
GetService
environments.automations.services.retrieve(ServiceRetrieveParams**kwargs) -> ServiceRetrieveResponse
POST/gitpod.v1.EnvironmentAutomationService/GetService
StartService
environments.automations.services.start(ServiceStartParams**kwargs) -> object
POST/gitpod.v1.EnvironmentAutomationService/StartService
StopService
environments.automations.services.stop(ServiceStopParams**kwargs) -> object
POST/gitpod.v1.EnvironmentAutomationService/StopService
UpdateService
environments.automations.services.update(ServiceUpdateParams**kwargs) -> object
POST/gitpod.v1.EnvironmentAutomationService/UpdateService
ModelsExpand Collapse
class Service:
id: str
formatuuid
environment_id: Optional[str]
formatuuid
metadata: Optional[ServiceMetadata]
created_at: Optional[datetime]

created_at is the time the service was created.

formatdate-time
creator: Optional[Subject]

creator describes the principal who created the service.

id: Optional[str]

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"
description: Optional[str]

description is a user-facing description for the service. It can be used to provide context and documentation for the service.

name: Optional[str]

name is a user-facing name for the service. Unlike the reference, this field is not unique, and not referenced by the system. This is a short descriptive name for the service.

minLength1
reference: Optional[str]

reference is a user-facing identifier for the service which must be unique on the environment. It is used to express dependencies between services, and to identify the service in user interactions (e.g. the CLI).

role: Optional[ServiceRole]

role specifies the intended role or purpose of the service.

One of the following:
"SERVICE_ROLE_UNSPECIFIED"
"SERVICE_ROLE_DEFAULT"
"SERVICE_ROLE_EDITOR"
"SERVICE_ROLE_AI_AGENT"
"SERVICE_ROLE_SECURITY_AGENT"
triggered_by: Optional[List[AutomationTrigger]]

triggered_by is a list of trigger that start the service.

before_snapshot: Optional[bool]
manual: Optional[bool]
post_devcontainer_start: Optional[bool]
post_environment_start: Optional[bool]
post_machine_start: Optional[bool]
prebuild: Optional[bool]
spec: Optional[ServiceSpec]
commands: Optional[Commands]

commands contains the commands to start, stop and check the readiness of the service

ready: Optional[str]

ready is an optional command that is run repeatedly until it exits with a zero exit code. If set, the service will first go into a Starting phase, and then into a Running phase once the ready command exits with a zero exit code.

start: Optional[str]

start is the command to start and run the service. If start exits, the service will transition to the following phase:

  • Stopped: if the exit code is 0
  • Failed: if the exit code is not 0 If the stop command is not set, the start command will receive a SIGTERM signal when the service is requested to stop. If it does not exit within 2 minutes, it will receive a SIGKILL signal.
minLength1
stop: Optional[str]

stop is an optional command that runs when the service is requested to stop. If set, instead of sending a SIGTERM signal to the start command, the stop command will be run. Once the stop command exits, the start command will receive a SIGKILL signal. If the stop command exits with a non-zero exit code, the service will transition to the Failed phase. If the stop command does not exit within 2 minutes, a SIGKILL signal will be sent to both the start and stop commands.

desired_phase: Optional[ServicePhase]

desired_phase is the phase the service should be in. Used to start or stop the service.

One of the following:
"SERVICE_PHASE_UNSPECIFIED"
"SERVICE_PHASE_STARTING"
"SERVICE_PHASE_RUNNING"
"SERVICE_PHASE_STOPPING"
"SERVICE_PHASE_STOPPED"
"SERVICE_PHASE_FAILED"
"SERVICE_PHASE_DELETED"
env: Optional[List[EnvironmentVariableItem]]

env specifies environment variables for the service.

name: Optional[str]

name is the environment variable name.

minLength1
value: Optional[str]

value is a literal string value.

value_from: Optional[EnvironmentVariableSource]

value_from specifies a source for the value.

secret_ref: SecretRef

secret_ref references a secret by ID.

id: Optional[str]

id is the UUID of the secret to reference.

formatuuid
runs_on: Optional[RunsOn]

runs_on specifies the environment the service should run on.

docker: Optional[Docker]
environment: Optional[List[str]]
image: Optional[str]
minLength1
machine: Optional[object]

Machine runs the service/task directly on the VM/machine level.

session: Optional[str]

session should be changed to trigger a restart of the service. If a service exits it will not be restarted until the session is changed.

spec_version: Optional[str]

version of the spec. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.spec_version < b.spec_version then a was the spec before b.

status: Optional[ServiceStatus]
failure_message: Optional[str]

failure_message summarises why the service failed to operate. If this is non-empty the service has failed to operate and will likely transition to a failed state.

log_url: Optional[str]

log_url contains the URL at which the service logs can be accessed.

output: Optional[Dict[str, str]]

output contains the output of the service. setting an output field to empty string will unset it.

phase: Optional[ServicePhase]

phase is the current phase of the service.

One of the following:
"SERVICE_PHASE_UNSPECIFIED"
"SERVICE_PHASE_STARTING"
"SERVICE_PHASE_RUNNING"
"SERVICE_PHASE_STOPPING"
"SERVICE_PHASE_STOPPED"
"SERVICE_PHASE_FAILED"
"SERVICE_PHASE_DELETED"
session: Optional[str]

session is the current session of the service.

status_version: Optional[str]

version of the status update. Service instances themselves are unversioned, but their status has different versions. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.status_version < b.status_version then a was the status before b.

class ServiceMetadata:
created_at: Optional[datetime]

created_at is the time the service was created.

formatdate-time
creator: Optional[Subject]

creator describes the principal who created the service.

id: Optional[str]

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"
description: Optional[str]

description is a user-facing description for the service. It can be used to provide context and documentation for the service.

name: Optional[str]

name is a user-facing name for the service. Unlike the reference, this field is not unique, and not referenced by the system. This is a short descriptive name for the service.

minLength1
reference: Optional[str]

reference is a user-facing identifier for the service which must be unique on the environment. It is used to express dependencies between services, and to identify the service in user interactions (e.g. the CLI).

role: Optional[ServiceRole]

role specifies the intended role or purpose of the service.

One of the following:
"SERVICE_ROLE_UNSPECIFIED"
"SERVICE_ROLE_DEFAULT"
"SERVICE_ROLE_EDITOR"
"SERVICE_ROLE_AI_AGENT"
"SERVICE_ROLE_SECURITY_AGENT"
triggered_by: Optional[List[AutomationTrigger]]

triggered_by is a list of trigger that start the service.

before_snapshot: Optional[bool]
manual: Optional[bool]
post_devcontainer_start: Optional[bool]
post_environment_start: Optional[bool]
post_machine_start: Optional[bool]
prebuild: Optional[bool]
Literal["SERVICE_PHASE_UNSPECIFIED", "SERVICE_PHASE_STARTING", "SERVICE_PHASE_RUNNING", 4 more]
One of the following:
"SERVICE_PHASE_UNSPECIFIED"
"SERVICE_PHASE_STARTING"
"SERVICE_PHASE_RUNNING"
"SERVICE_PHASE_STOPPING"
"SERVICE_PHASE_STOPPED"
"SERVICE_PHASE_FAILED"
"SERVICE_PHASE_DELETED"
Literal["SERVICE_ROLE_UNSPECIFIED", "SERVICE_ROLE_DEFAULT", "SERVICE_ROLE_EDITOR", 2 more]
One of the following:
"SERVICE_ROLE_UNSPECIFIED"
"SERVICE_ROLE_DEFAULT"
"SERVICE_ROLE_EDITOR"
"SERVICE_ROLE_AI_AGENT"
"SERVICE_ROLE_SECURITY_AGENT"
class ServiceSpec:
commands: Optional[Commands]

commands contains the commands to start, stop and check the readiness of the service

ready: Optional[str]

ready is an optional command that is run repeatedly until it exits with a zero exit code. If set, the service will first go into a Starting phase, and then into a Running phase once the ready command exits with a zero exit code.

start: Optional[str]

start is the command to start and run the service. If start exits, the service will transition to the following phase:

  • Stopped: if the exit code is 0
  • Failed: if the exit code is not 0 If the stop command is not set, the start command will receive a SIGTERM signal when the service is requested to stop. If it does not exit within 2 minutes, it will receive a SIGKILL signal.
minLength1
stop: Optional[str]

stop is an optional command that runs when the service is requested to stop. If set, instead of sending a SIGTERM signal to the start command, the stop command will be run. Once the stop command exits, the start command will receive a SIGKILL signal. If the stop command exits with a non-zero exit code, the service will transition to the Failed phase. If the stop command does not exit within 2 minutes, a SIGKILL signal will be sent to both the start and stop commands.

desired_phase: Optional[ServicePhase]

desired_phase is the phase the service should be in. Used to start or stop the service.

One of the following:
"SERVICE_PHASE_UNSPECIFIED"
"SERVICE_PHASE_STARTING"
"SERVICE_PHASE_RUNNING"
"SERVICE_PHASE_STOPPING"
"SERVICE_PHASE_STOPPED"
"SERVICE_PHASE_FAILED"
"SERVICE_PHASE_DELETED"
env: Optional[List[EnvironmentVariableItem]]

env specifies environment variables for the service.

name: Optional[str]

name is the environment variable name.

minLength1
value: Optional[str]

value is a literal string value.

value_from: Optional[EnvironmentVariableSource]

value_from specifies a source for the value.

secret_ref: SecretRef

secret_ref references a secret by ID.

id: Optional[str]

id is the UUID of the secret to reference.

formatuuid
runs_on: Optional[RunsOn]

runs_on specifies the environment the service should run on.

docker: Optional[Docker]
environment: Optional[List[str]]
image: Optional[str]
minLength1
machine: Optional[object]

Machine runs the service/task directly on the VM/machine level.

session: Optional[str]

session should be changed to trigger a restart of the service. If a service exits it will not be restarted until the session is changed.

spec_version: Optional[str]

version of the spec. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.spec_version < b.spec_version then a was the spec before b.

class ServiceStatus:
failure_message: Optional[str]

failure_message summarises why the service failed to operate. If this is non-empty the service has failed to operate and will likely transition to a failed state.

log_url: Optional[str]

log_url contains the URL at which the service logs can be accessed.

output: Optional[Dict[str, str]]

output contains the output of the service. setting an output field to empty string will unset it.

phase: Optional[ServicePhase]

phase is the current phase of the service.

One of the following:
"SERVICE_PHASE_UNSPECIFIED"
"SERVICE_PHASE_STARTING"
"SERVICE_PHASE_RUNNING"
"SERVICE_PHASE_STOPPING"
"SERVICE_PHASE_STOPPED"
"SERVICE_PHASE_FAILED"
"SERVICE_PHASE_DELETED"
session: Optional[str]

session is the current session of the service.

status_version: Optional[str]

version of the status update. Service instances themselves are unversioned, but their status has different versions. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.status_version < b.status_version then a was the status before b.

class ServiceCreateResponse:
service: Service
id: str
formatuuid
environment_id: Optional[str]
formatuuid
metadata: Optional[ServiceMetadata]
created_at: Optional[datetime]

created_at is the time the service was created.

formatdate-time
creator: Optional[Subject]

creator describes the principal who created the service.

id: Optional[str]

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"
description: Optional[str]

description is a user-facing description for the service. It can be used to provide context and documentation for the service.

name: Optional[str]

name is a user-facing name for the service. Unlike the reference, this field is not unique, and not referenced by the system. This is a short descriptive name for the service.

minLength1
reference: Optional[str]

reference is a user-facing identifier for the service which must be unique on the environment. It is used to express dependencies between services, and to identify the service in user interactions (e.g. the CLI).

role: Optional[ServiceRole]

role specifies the intended role or purpose of the service.

One of the following:
"SERVICE_ROLE_UNSPECIFIED"
"SERVICE_ROLE_DEFAULT"
"SERVICE_ROLE_EDITOR"
"SERVICE_ROLE_AI_AGENT"
"SERVICE_ROLE_SECURITY_AGENT"
triggered_by: Optional[List[AutomationTrigger]]

triggered_by is a list of trigger that start the service.

before_snapshot: Optional[bool]
manual: Optional[bool]
post_devcontainer_start: Optional[bool]
post_environment_start: Optional[bool]
post_machine_start: Optional[bool]
prebuild: Optional[bool]
spec: Optional[ServiceSpec]
commands: Optional[Commands]

commands contains the commands to start, stop and check the readiness of the service

ready: Optional[str]

ready is an optional command that is run repeatedly until it exits with a zero exit code. If set, the service will first go into a Starting phase, and then into a Running phase once the ready command exits with a zero exit code.

start: Optional[str]

start is the command to start and run the service. If start exits, the service will transition to the following phase:

  • Stopped: if the exit code is 0
  • Failed: if the exit code is not 0 If the stop command is not set, the start command will receive a SIGTERM signal when the service is requested to stop. If it does not exit within 2 minutes, it will receive a SIGKILL signal.
minLength1
stop: Optional[str]

stop is an optional command that runs when the service is requested to stop. If set, instead of sending a SIGTERM signal to the start command, the stop command will be run. Once the stop command exits, the start command will receive a SIGKILL signal. If the stop command exits with a non-zero exit code, the service will transition to the Failed phase. If the stop command does not exit within 2 minutes, a SIGKILL signal will be sent to both the start and stop commands.

desired_phase: Optional[ServicePhase]

desired_phase is the phase the service should be in. Used to start or stop the service.

One of the following:
"SERVICE_PHASE_UNSPECIFIED"
"SERVICE_PHASE_STARTING"
"SERVICE_PHASE_RUNNING"
"SERVICE_PHASE_STOPPING"
"SERVICE_PHASE_STOPPED"
"SERVICE_PHASE_FAILED"
"SERVICE_PHASE_DELETED"
env: Optional[List[EnvironmentVariableItem]]

env specifies environment variables for the service.

name: Optional[str]

name is the environment variable name.

minLength1
value: Optional[str]

value is a literal string value.

value_from: Optional[EnvironmentVariableSource]

value_from specifies a source for the value.

secret_ref: SecretRef

secret_ref references a secret by ID.

id: Optional[str]

id is the UUID of the secret to reference.

formatuuid
runs_on: Optional[RunsOn]

runs_on specifies the environment the service should run on.

docker: Optional[Docker]
environment: Optional[List[str]]
image: Optional[str]
minLength1
machine: Optional[object]

Machine runs the service/task directly on the VM/machine level.

session: Optional[str]

session should be changed to trigger a restart of the service. If a service exits it will not be restarted until the session is changed.

spec_version: Optional[str]

version of the spec. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.spec_version < b.spec_version then a was the spec before b.

status: Optional[ServiceStatus]
failure_message: Optional[str]

failure_message summarises why the service failed to operate. If this is non-empty the service has failed to operate and will likely transition to a failed state.

log_url: Optional[str]

log_url contains the URL at which the service logs can be accessed.

output: Optional[Dict[str, str]]

output contains the output of the service. setting an output field to empty string will unset it.

phase: Optional[ServicePhase]

phase is the current phase of the service.

One of the following:
"SERVICE_PHASE_UNSPECIFIED"
"SERVICE_PHASE_STARTING"
"SERVICE_PHASE_RUNNING"
"SERVICE_PHASE_STOPPING"
"SERVICE_PHASE_STOPPED"
"SERVICE_PHASE_FAILED"
"SERVICE_PHASE_DELETED"
session: Optional[str]

session is the current session of the service.

status_version: Optional[str]

version of the status update. Service instances themselves are unversioned, but their status has different versions. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.status_version < b.status_version then a was the status before b.

class ServiceRetrieveResponse:
service: Service
id: str
formatuuid
environment_id: Optional[str]
formatuuid
metadata: Optional[ServiceMetadata]
created_at: Optional[datetime]

created_at is the time the service was created.

formatdate-time
creator: Optional[Subject]

creator describes the principal who created the service.

id: Optional[str]

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"
description: Optional[str]

description is a user-facing description for the service. It can be used to provide context and documentation for the service.

name: Optional[str]

name is a user-facing name for the service. Unlike the reference, this field is not unique, and not referenced by the system. This is a short descriptive name for the service.

minLength1
reference: Optional[str]

reference is a user-facing identifier for the service which must be unique on the environment. It is used to express dependencies between services, and to identify the service in user interactions (e.g. the CLI).

role: Optional[ServiceRole]

role specifies the intended role or purpose of the service.

One of the following:
"SERVICE_ROLE_UNSPECIFIED"
"SERVICE_ROLE_DEFAULT"
"SERVICE_ROLE_EDITOR"
"SERVICE_ROLE_AI_AGENT"
"SERVICE_ROLE_SECURITY_AGENT"
triggered_by: Optional[List[AutomationTrigger]]

triggered_by is a list of trigger that start the service.

before_snapshot: Optional[bool]
manual: Optional[bool]
post_devcontainer_start: Optional[bool]
post_environment_start: Optional[bool]
post_machine_start: Optional[bool]
prebuild: Optional[bool]
spec: Optional[ServiceSpec]
commands: Optional[Commands]

commands contains the commands to start, stop and check the readiness of the service

ready: Optional[str]

ready is an optional command that is run repeatedly until it exits with a zero exit code. If set, the service will first go into a Starting phase, and then into a Running phase once the ready command exits with a zero exit code.

start: Optional[str]

start is the command to start and run the service. If start exits, the service will transition to the following phase:

  • Stopped: if the exit code is 0
  • Failed: if the exit code is not 0 If the stop command is not set, the start command will receive a SIGTERM signal when the service is requested to stop. If it does not exit within 2 minutes, it will receive a SIGKILL signal.
minLength1
stop: Optional[str]

stop is an optional command that runs when the service is requested to stop. If set, instead of sending a SIGTERM signal to the start command, the stop command will be run. Once the stop command exits, the start command will receive a SIGKILL signal. If the stop command exits with a non-zero exit code, the service will transition to the Failed phase. If the stop command does not exit within 2 minutes, a SIGKILL signal will be sent to both the start and stop commands.

desired_phase: Optional[ServicePhase]

desired_phase is the phase the service should be in. Used to start or stop the service.

One of the following:
"SERVICE_PHASE_UNSPECIFIED"
"SERVICE_PHASE_STARTING"
"SERVICE_PHASE_RUNNING"
"SERVICE_PHASE_STOPPING"
"SERVICE_PHASE_STOPPED"
"SERVICE_PHASE_FAILED"
"SERVICE_PHASE_DELETED"
env: Optional[List[EnvironmentVariableItem]]

env specifies environment variables for the service.

name: Optional[str]

name is the environment variable name.

minLength1
value: Optional[str]

value is a literal string value.

value_from: Optional[EnvironmentVariableSource]

value_from specifies a source for the value.

secret_ref: SecretRef

secret_ref references a secret by ID.

id: Optional[str]

id is the UUID of the secret to reference.

formatuuid
runs_on: Optional[RunsOn]

runs_on specifies the environment the service should run on.

docker: Optional[Docker]
environment: Optional[List[str]]
image: Optional[str]
minLength1
machine: Optional[object]

Machine runs the service/task directly on the VM/machine level.

session: Optional[str]

session should be changed to trigger a restart of the service. If a service exits it will not be restarted until the session is changed.

spec_version: Optional[str]

version of the spec. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.spec_version < b.spec_version then a was the spec before b.

status: Optional[ServiceStatus]
failure_message: Optional[str]

failure_message summarises why the service failed to operate. If this is non-empty the service has failed to operate and will likely transition to a failed state.

log_url: Optional[str]

log_url contains the URL at which the service logs can be accessed.

output: Optional[Dict[str, str]]

output contains the output of the service. setting an output field to empty string will unset it.

phase: Optional[ServicePhase]

phase is the current phase of the service.

One of the following:
"SERVICE_PHASE_UNSPECIFIED"
"SERVICE_PHASE_STARTING"
"SERVICE_PHASE_RUNNING"
"SERVICE_PHASE_STOPPING"
"SERVICE_PHASE_STOPPED"
"SERVICE_PHASE_FAILED"
"SERVICE_PHASE_DELETED"
session: Optional[str]

session is the current session of the service.

status_version: Optional[str]

version of the status update. Service instances themselves are unversioned, but their status has different versions. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.status_version < b.status_version then a was the status before b.

EnvironmentsAutomationsTasks

CreateTask
environments.automations.tasks.create(TaskCreateParams**kwargs) -> TaskCreateResponse
POST/gitpod.v1.EnvironmentAutomationService/CreateTask
DeleteTask
environments.automations.tasks.delete(TaskDeleteParams**kwargs) -> object
POST/gitpod.v1.EnvironmentAutomationService/DeleteTask
ListTasks
environments.automations.tasks.list(TaskListParams**kwargs) -> SyncTasksPage[Task]
POST/gitpod.v1.EnvironmentAutomationService/ListTasks
GetTask
environments.automations.tasks.retrieve(TaskRetrieveParams**kwargs) -> TaskRetrieveResponse
POST/gitpod.v1.EnvironmentAutomationService/GetTask
StartTask
environments.automations.tasks.start(TaskStartParams**kwargs) -> TaskStartResponse
POST/gitpod.v1.EnvironmentAutomationService/StartTask
UpdateTask
environments.automations.tasks.update(TaskUpdateParams**kwargs) -> object
POST/gitpod.v1.EnvironmentAutomationService/UpdateTask
ModelsExpand Collapse
class TaskCreateResponse:
task: Task
id: str
formatuuid
depends_on: Optional[List[str]]

dependencies specifies the IDs of the automations this task depends on.

environment_id: Optional[str]
formatuuid
metadata: Optional[TaskMetadata]
created_at: Optional[datetime]

created_at is the time the task was created.

formatdate-time
creator: Optional[Subject]

creator describes the principal who created the task.

id: Optional[str]

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"
description: Optional[str]

description is a user-facing description for the task. It can be used to provide context and documentation for the task.

name: Optional[str]

name is a user-facing name for the task. Unlike the reference, this field is not unique, and not referenced by the system. This is a short descriptive name for the task.

minLength1
reference: Optional[str]

reference is a user-facing identifier for the task which must be unique on the environment. It is used to express dependencies between tasks, and to identify the task in user interactions (e.g. the CLI).

triggered_by: Optional[List[AutomationTrigger]]

triggered_by is a list of trigger that start the task.

before_snapshot: Optional[bool]
manual: Optional[bool]
post_devcontainer_start: Optional[bool]
post_environment_start: Optional[bool]
post_machine_start: Optional[bool]
prebuild: Optional[bool]
spec: Optional[TaskSpec]
command: Optional[str]

command contains the command the task should execute

env: Optional[List[EnvironmentVariableItem]]

env specifies environment variables for the task.

name: Optional[str]

name is the environment variable name.

minLength1
value: Optional[str]

value is a literal string value.

value_from: Optional[EnvironmentVariableSource]

value_from specifies a source for the value.

secret_ref: SecretRef

secret_ref references a secret by ID.

id: Optional[str]

id is the UUID of the secret to reference.

formatuuid
runs_on: Optional[RunsOn]

runs_on specifies the environment the task should run on.

docker: Optional[Docker]
environment: Optional[List[str]]
image: Optional[str]
minLength1
machine: Optional[object]

Machine runs the service/task directly on the VM/machine level.

class TaskRetrieveResponse:
task: Task
id: str
formatuuid
depends_on: Optional[List[str]]

dependencies specifies the IDs of the automations this task depends on.

environment_id: Optional[str]
formatuuid
metadata: Optional[TaskMetadata]
created_at: Optional[datetime]

created_at is the time the task was created.

formatdate-time
creator: Optional[Subject]

creator describes the principal who created the task.

id: Optional[str]

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"
description: Optional[str]

description is a user-facing description for the task. It can be used to provide context and documentation for the task.

name: Optional[str]

name is a user-facing name for the task. Unlike the reference, this field is not unique, and not referenced by the system. This is a short descriptive name for the task.

minLength1
reference: Optional[str]

reference is a user-facing identifier for the task which must be unique on the environment. It is used to express dependencies between tasks, and to identify the task in user interactions (e.g. the CLI).

triggered_by: Optional[List[AutomationTrigger]]

triggered_by is a list of trigger that start the task.

before_snapshot: Optional[bool]
manual: Optional[bool]
post_devcontainer_start: Optional[bool]
post_environment_start: Optional[bool]
post_machine_start: Optional[bool]
prebuild: Optional[bool]
spec: Optional[TaskSpec]
command: Optional[str]

command contains the command the task should execute

env: Optional[List[EnvironmentVariableItem]]

env specifies environment variables for the task.

name: Optional[str]

name is the environment variable name.

minLength1
value: Optional[str]

value is a literal string value.

value_from: Optional[EnvironmentVariableSource]

value_from specifies a source for the value.

secret_ref: SecretRef

secret_ref references a secret by ID.

id: Optional[str]

id is the UUID of the secret to reference.

formatuuid
runs_on: Optional[RunsOn]

runs_on specifies the environment the task should run on.

docker: Optional[Docker]
environment: Optional[List[str]]
image: Optional[str]
minLength1
machine: Optional[object]

Machine runs the service/task directly on the VM/machine level.

class TaskStartResponse:
task_execution: TaskExecution
id: str
formatuuid
metadata: Optional[TaskExecutionMetadata]
completed_at: Optional[datetime]

completed_at is the time the task execution was done.

formatdate-time
created_at: Optional[datetime]

created_at is the time the task was created.

formatdate-time
creator: Optional[Subject]

creator describes the principal who created/started the task run.

id: Optional[str]

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"
environment_id: Optional[str]

environment_id is the ID of the environment in which the task run is executed.

formatuuid
started_at: Optional[datetime]

started_at is the time the task execution actually started to run.

formatdate-time
started_by: Optional[str]

started_by describes the trigger that started the task execution.

task_id: Optional[str]

task_id is the ID of the main task being executed.

formatuuid
spec: Optional[TaskExecutionSpec]
desired_phase: Optional[TaskExecutionPhase]

desired_phase is the phase the task execution should be in. Used to stop a running task execution early.

One of the following:
"TASK_EXECUTION_PHASE_UNSPECIFIED"
"TASK_EXECUTION_PHASE_PENDING"
"TASK_EXECUTION_PHASE_RUNNING"
"TASK_EXECUTION_PHASE_SUCCEEDED"
"TASK_EXECUTION_PHASE_FAILED"
"TASK_EXECUTION_PHASE_STOPPED"
plan: Optional[List[Plan]]

plan is a list of groups of steps. The steps in a group are executed concurrently, while the groups are executed sequentially. The order of the groups is the order in which they are executed.

steps: Optional[List[PlanStep]]
id: Optional[str]

ID is the ID of the execution step

formatuuid
depends_on: Optional[List[str]]
label: Optional[str]
service_id: Optional[str]
formatuuid
task: Optional[PlanStepTask]
id: Optional[str]
formatuuid
spec: Optional[TaskSpec]
command: Optional[str]

command contains the command the task should execute

env: Optional[List[EnvironmentVariableItem]]

env specifies environment variables for the task.

name: Optional[str]

name is the environment variable name.

minLength1
value: Optional[str]

value is a literal string value.

value_from: Optional[EnvironmentVariableSource]

value_from specifies a source for the value.

secret_ref: SecretRef

secret_ref references a secret by ID.

id: Optional[str]

id is the UUID of the secret to reference.

formatuuid
runs_on: Optional[RunsOn]

runs_on specifies the environment the task should run on.

docker: Optional[Docker]
environment: Optional[List[str]]
image: Optional[str]
minLength1
machine: Optional[object]

Machine runs the service/task directly on the VM/machine level.

status: Optional[TaskExecutionStatus]
failure_message: Optional[str]

failure_message summarises why the task execution failed to operate. If this is non-empty the task execution has failed to operate and will likely transition to a failed state.

log_url: Optional[str]

log_url is the URL to the logs of the task’s steps. If this is empty, the task either has no logs or has not yet started.

phase: Optional[TaskExecutionPhase]

the phase of a task execution represents the aggregated phase of all steps.

One of the following:
"TASK_EXECUTION_PHASE_UNSPECIFIED"
"TASK_EXECUTION_PHASE_PENDING"
"TASK_EXECUTION_PHASE_RUNNING"
"TASK_EXECUTION_PHASE_SUCCEEDED"
"TASK_EXECUTION_PHASE_FAILED"
"TASK_EXECUTION_PHASE_STOPPED"
status_version: Optional[str]

version of the status update. Task executions themselves are unversioned, but their status has different versions. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.status_version < b.status_version then a was the status before b.

steps: Optional[List[Step]]

steps provides the status for each individual step of the task execution. If a step is missing it has not yet started.

id: Optional[str]

ID is the ID of the execution step

formatuuid
failure_message: Optional[str]

failure_message summarises why the step failed to operate. If this is non-empty the step has failed to operate and will likely transition to a failed state.

output: Optional[Dict[str, str]]

output contains the output of the task execution. setting an output field to empty string will unset it.

phase: Optional[TaskExecutionPhase]

phase is the current phase of the execution step

One of the following:
"TASK_EXECUTION_PHASE_UNSPECIFIED"
"TASK_EXECUTION_PHASE_PENDING"
"TASK_EXECUTION_PHASE_RUNNING"
"TASK_EXECUTION_PHASE_SUCCEEDED"
"TASK_EXECUTION_PHASE_FAILED"
"TASK_EXECUTION_PHASE_STOPPED"

EnvironmentsAutomationsTasksExecutions

ListTaskExecutions
environments.automations.tasks.executions.list(ExecutionListParams**kwargs) -> SyncTaskExecutionsPage[TaskExecution]
POST/gitpod.v1.EnvironmentAutomationService/ListTaskExecutions
GetTaskExecution
environments.automations.tasks.executions.retrieve(ExecutionRetrieveParams**kwargs) -> ExecutionRetrieveResponse
POST/gitpod.v1.EnvironmentAutomationService/GetTaskExecution
StopTaskExecution
environments.automations.tasks.executions.stop(ExecutionStopParams**kwargs) -> object
POST/gitpod.v1.EnvironmentAutomationService/StopTaskExecution
ModelsExpand Collapse
class ExecutionRetrieveResponse:
task_execution: TaskExecution
id: str
formatuuid
metadata: Optional[TaskExecutionMetadata]
completed_at: Optional[datetime]

completed_at is the time the task execution was done.

formatdate-time
created_at: Optional[datetime]

created_at is the time the task was created.

formatdate-time
creator: Optional[Subject]

creator describes the principal who created/started the task run.

id: Optional[str]

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"
environment_id: Optional[str]

environment_id is the ID of the environment in which the task run is executed.

formatuuid
started_at: Optional[datetime]

started_at is the time the task execution actually started to run.

formatdate-time
started_by: Optional[str]

started_by describes the trigger that started the task execution.

task_id: Optional[str]

task_id is the ID of the main task being executed.

formatuuid
spec: Optional[TaskExecutionSpec]
desired_phase: Optional[TaskExecutionPhase]

desired_phase is the phase the task execution should be in. Used to stop a running task execution early.

One of the following:
"TASK_EXECUTION_PHASE_UNSPECIFIED"
"TASK_EXECUTION_PHASE_PENDING"
"TASK_EXECUTION_PHASE_RUNNING"
"TASK_EXECUTION_PHASE_SUCCEEDED"
"TASK_EXECUTION_PHASE_FAILED"
"TASK_EXECUTION_PHASE_STOPPED"
plan: Optional[List[Plan]]

plan is a list of groups of steps. The steps in a group are executed concurrently, while the groups are executed sequentially. The order of the groups is the order in which they are executed.

steps: Optional[List[PlanStep]]
id: Optional[str]

ID is the ID of the execution step

formatuuid
depends_on: Optional[List[str]]
label: Optional[str]
service_id: Optional[str]
formatuuid
task: Optional[PlanStepTask]
id: Optional[str]
formatuuid
spec: Optional[TaskSpec]
command: Optional[str]

command contains the command the task should execute

env: Optional[List[EnvironmentVariableItem]]

env specifies environment variables for the task.

name: Optional[str]

name is the environment variable name.

minLength1
value: Optional[str]

value is a literal string value.

value_from: Optional[EnvironmentVariableSource]

value_from specifies a source for the value.

secret_ref: SecretRef

secret_ref references a secret by ID.

id: Optional[str]

id is the UUID of the secret to reference.

formatuuid
runs_on: Optional[RunsOn]

runs_on specifies the environment the task should run on.

docker: Optional[Docker]
environment: Optional[List[str]]
image: Optional[str]
minLength1
machine: Optional[object]

Machine runs the service/task directly on the VM/machine level.

status: Optional[TaskExecutionStatus]
failure_message: Optional[str]

failure_message summarises why the task execution failed to operate. If this is non-empty the task execution has failed to operate and will likely transition to a failed state.

log_url: Optional[str]

log_url is the URL to the logs of the task’s steps. If this is empty, the task either has no logs or has not yet started.

phase: Optional[TaskExecutionPhase]

the phase of a task execution represents the aggregated phase of all steps.

One of the following:
"TASK_EXECUTION_PHASE_UNSPECIFIED"
"TASK_EXECUTION_PHASE_PENDING"
"TASK_EXECUTION_PHASE_RUNNING"
"TASK_EXECUTION_PHASE_SUCCEEDED"
"TASK_EXECUTION_PHASE_FAILED"
"TASK_EXECUTION_PHASE_STOPPED"
status_version: Optional[str]

version of the status update. Task executions themselves are unversioned, but their status has different versions. The value of this field has no semantic meaning (e.g. don’t interpret it as as a timestamp), but it can be used to impose a partial order. If a.status_version < b.status_version then a was the status before b.

steps: Optional[List[Step]]

steps provides the status for each individual step of the task execution. If a step is missing it has not yet started.

id: Optional[str]

ID is the ID of the execution step

formatuuid
failure_message: Optional[str]

failure_message summarises why the step failed to operate. If this is non-empty the step has failed to operate and will likely transition to a failed state.

output: Optional[Dict[str, str]]

output contains the output of the task execution. setting an output field to empty string will unset it.

phase: Optional[TaskExecutionPhase]

phase is the current phase of the execution step

One of the following:
"TASK_EXECUTION_PHASE_UNSPECIFIED"
"TASK_EXECUTION_PHASE_PENDING"
"TASK_EXECUTION_PHASE_RUNNING"
"TASK_EXECUTION_PHASE_SUCCEEDED"
"TASK_EXECUTION_PHASE_FAILED"
"TASK_EXECUTION_PHASE_STOPPED"

EnvironmentsClasses

ListEnvironmentClasses
environments.classes.list(ClassListParams**kwargs) -> SyncEnvironmentClassesPage[EnvironmentClass]
POST/gitpod.v1.EnvironmentService/ListEnvironmentClasses