Unary · Environments
Gets details about a specific environment including its status, configuration, and context URL.
Use this method to:
- Check if an environment is ready to use
- Get connection details for IDE and exposed ports
- Monitor environment health and resource usage
- Debug environment setup issues
Examples
-
Get environment details:
Retrieves detailed information about a specific environment using its unique identifier.
environmentId: "07e03a28-65a5-4d98-b532-8ea67b188048"
Endpoint
POST /api/gitpod.v1.EnvironmentService/GetEnvironment
https://app.ona.com with that domain.
Request example
export ONA_HOST=https://app.ona.com
export ONA_API_KEY=<your-token>
curl --request POST \
--url "$ONA_HOST/api/gitpod.v1.EnvironmentService/GetEnvironment" \
--header "Authorization: Bearer $ONA_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"environmentId": "<environment-id>"
}'
import gitpod.v1.environment_pb2 as environment_pb2
from ona_sdk import create_client_from_env
ona = create_client_from_env()
request = environment_pb2.GetEnvironmentRequest(
environment_id="<environment-id>",
)
response = ona.services.environment.get_environment(request)
print(response)
import { create } from "@bufbuild/protobuf";
import { createClientFromEnv } from "@gitpod/sdk";
import { GetEnvironmentRequestSchema } from "@gitpod/sdk/gitpod/v1/environment_pb";
async function main() {
const ona = createClientFromEnv();
const request = create(GetEnvironmentRequestSchema, {
environmentId: "<environment-id>",
});
const response = await ona.services.environment.getEnvironment(request);
console.log(response);
}
main().catch(console.error);
package main
import (
"context"
"fmt"
"log"
"connectrpc.com/connect"
"github.com/gitpod-io/gitpod-sdk-go/sdk"
gitpodpb "github.com/gitpod-io/gitpod-sdk-go/v1"
)
func main() {
ona, err := sdk.NewFromEnv()
if err != nil {
log.Fatal(err)
}
request := connect.NewRequest(&gitpodpb.GetEnvironmentRequest{
EnvironmentId: "<environment-id>",
})
response, err := ona.Services.Environment.GetEnvironment(context.Background(), request)
if err != nil {
log.Fatal(err)
}
fmt.Println(response.Msg)
}
{
"environmentId": "<environment-id>"
}
Request
gitpod.v1.GetEnvironmentRequest
| Field | Type | Required | Description |
|---|---|---|---|
environmentId | string | Yes | environment_id specifies the environment to get Constraints: required=true, string.uuid=true. |
Response
gitpod.v1.GetEnvironmentResponse
| Field | Type | Required | Description |
|---|---|---|---|
environment | Environment | Yes | Constraints: required=true. |
Related types
Environment
Environment
gitpod.v1.Environment| Field | Type | Required | Description |
|---|---|---|---|
id | string | No | ID is a unique identifier of this environment. No other environment with the same name must be managed by this environment manager |
metadata | EnvironmentMetadata | No | Metadata is data associated with this environment that’s required for other parts of Gitpod to function |
spec | EnvironmentSpec | No | Spec is the configuration of the environment that’s required for the runner to start the environment |
status | EnvironmentStatus | No | Status is the current status of the environment |
EnvironmentMetadata
EnvironmentMetadata
EnvironmentMetadata is data associated with an environment that’s required for
other parts of the system to function
gitpod.v1.EnvironmentMetadata| Field | Type | Required | Description |
|---|---|---|---|
organizationId | string | No | organization_id is the ID of the organization that contains the environment Constraints: string.uuid=true. |
annotations | map of string to string | No | annotations are key/value pairs that gets attached to the environment. |
name | string | No | name is the name of the environment as specified by the user Constraints: string.max_len=80. |
creator | Subject | No | creator is the identity of the creator of the environment |
originalContextUrl | string | No | original_context_url is the normalized URL from which the environment was created |
createdAt | RFC 3339 timestamp | No | Time when the Environment was created. |
projectId | string | No | If the Environment was started from a project, the project_id will reference the project. |
runnerId | string | No | Runner is the ID of the runner that runs this environment. |
lastStartedAt | RFC 3339 timestamp | No | Time when the Environment was last started (i.e. CreateEnvironment or StartEnvironment were called). |
archivedAt | RFC 3339 timestamp | No | Time when the Environment was archived. If not set, the environment is not archived. |
role | EnvironmentRole | No | role is the role of the environment |
prebuildId | string | No | prebuild_id is the ID of the prebuild this environment was created from. Only set if the environment was created from a prebuild. Constraints: string.uuid=true. |
lockdownAt | RFC 3339 timestamp | No | 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. |
sessionId | string | No | session_id is the ID of the session this environment belongs to. |
EnvironmentSpec
EnvironmentSpec
EnvironmentSpec specifies the configuration of an environment for an environment
start
gitpod.v1.EnvironmentSpec| Field | Type | Required | Description |
|---|---|---|---|
specVersion | 64-bit integer string | No | 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. |
desiredPhase | EnvironmentPhase | No | Phase is the desired phase of the environment |
machine | Machine | No | machine is the machine spec of the environment |
content | Content | No | content is the content spec of the environment |
secrets | array of Secret | No | secrets are confidential data that is mounted into the environment |
ports | array of EnvironmentPort | No | ports is the set of ports which ought to be exposed to your network |
timeout | Timeout | No | Timeout configures the environment timeout |
admission | AdmissionLevel | No | admission controlls who can access the environment and its ports. |
devcontainer | DevContainer | No | devcontainer is the devcontainer spec of the environment |
sshPublicKeys | array of SSHPublicKey | No | ssh_public_keys are the public keys used to ssh into the environment |
automationsFile | AutomationsFile | No | automations_file is the automations file spec of the environment |
workflowActionId | string | No | workflow_action_id is an optional reference to the workflow execution action that created this environment. Used for tracking and event correlation. Constraints: string.uuid=true. |
kernelControlsConfig | KernelControlsConfig | No | kernel_controls_config configures kernel-level controls for this environment |
securityPolicyId | string | No | security_policy_id references the security policy used for this environment. If empty, the environment has no security policy. Constraints: ignore=1, string.uuid=true. |
EnvironmentStatus
EnvironmentStatus
EnvironmentStatus describes an environment status
gitpod.v1.EnvironmentStatus| Field | Type | Required | Description |
|---|---|---|---|
statusVersion | 64-bit integer string | No | 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. |
runnerAck | RunnerACK | No | runner_ack contains the acknowledgement from the runner that is has received the environment spec. |
phase | EnvironmentPhase | No | the phase of an environment is a simple, high-level summary of where the environment is in its lifecycle |
failureMessage | array of string | No | 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. |
environmentUrls | EnvironmentURLs | No | environment_url contains the URL at which the environment can be accessed. This field is only set if the environment is running. |
machine | Machine | No | machine contains the status of the environment machine |
secrets | array of Secret | No | secrets contains the status of the environment secrets |
content | Content | No | content contains the status of the environment content. |
devcontainer | DevContainer | No | devcontainer contains the status of the devcontainer. |
sshPublicKeys | array of SSHPublicKey | No | ssh_public_keys contains the status of the environment ssh public keys |
warningMessage | array of string | No | warning_message contains warnings, e.g. when the environment is present but not in the expected state. |
automationsFile | AutomationsFile | No | automations_file contains the status of the automations file. |
activitySignal | EnvironmentActivitySignal | No | activity_signal is the last activity signal for the environment. |
AdmissionLevel
AdmissionLevel
Admission level describes who can access an environment instance and its ports.
| Value | Number | Description |
|---|---|---|
ADMISSION_LEVEL_UNSPECIFIED | 0 | |
ADMISSION_LEVEL_OWNER_ONLY | 1 | Deprecated. ADMISSION_LEVEL_OWNER_ONLY means the environment can only be accessed by the creator. Deprecated: Use ADMISSION_LEVEL_CREATOR_ONLY instead. |
ADMISSION_LEVEL_EVERYONE | 2 | ADMISSION_LEVEL_EVERYONE means the environment (including ports) can be accessed by everyone. |
ADMISSION_LEVEL_ORGANIZATION | 3 | ADMISSION_LEVEL_ORGANIZATION means the environment (including ports) can be accessed by all members of the organization. |
ADMISSION_LEVEL_CREATOR_ONLY | 4 | ADMISSION_LEVEL_CREATOR_ONLY means the environment (including ports) can only be accessed by the user who created the environment. |
EnvironmentPhase
EnvironmentPhase
| Value | Number | Description |
|---|---|---|
ENVIRONMENT_PHASE_UNSPECIFIED | 0 | Unknown indicates an issue within the environment manager in that it cannot determine the actual phase of an environment. This phase is usually accompanied by an error. |
ENVIRONMENT_PHASE_CREATING | 10 | Creating means that the environment is first created. We organise the SCM credentials, parse context URL if need be, and allocate the unit of compute. |
ENVIRONMENT_PHASE_STARTING | 20 | Starting means that the environment is currently being started. This includes starting the unit of compute (machine), resolving secrets, setting up the Git config, initiaing the content, and starting the devcontainer. |
ENVIRONMENT_PHASE_RUNNING | 40 | Running means the environment is able to actively perform work, either by serving a user through Theia, or as a headless environment. |
ENVIRONMENT_PHASE_UPDATING | 45 | Updating means the environment is currently being updated. This includes content updates, devcontainer updates, secret updates and SSH public key updates. This phase implies that the environment is running. |
ENVIRONMENT_PHASE_STOPPING | 50 | Stopping means that the environment is currently shutting down. It could go to stopped every moment. |
ENVIRONMENT_PHASE_STOPPED | 60 | Stopped means the environment ended regularly because it was shut down. |
ENVIRONMENT_PHASE_DELETING | 70 | Deleting means the environment is currently being deleted. It could go to deleted any moment. This phase implies that the environment is stopped. |
ENVIRONMENT_PHASE_DELETED | 80 | Deleted means the environment was deleted and cannot be started again. This phase implies that the environment is stopped. |
EnvironmentRole
EnvironmentRole
EnvironmentRole represents the role of an environment
| Value | Number | Description |
|---|---|---|
ENVIRONMENT_ROLE_UNSPECIFIED | 0 | |
ENVIRONMENT_ROLE_DEFAULT | 1 | Default role for environments |
ENVIRONMENT_ROLE_PREBUILD | 2 | Prebuild role for environments that are prebuilds |
ENVIRONMENT_ROLE_WORKFLOW | 3 | Workflow role for environments that are part of a workflow |