Creates an environment from an existing project configuration and starts it.
Unary · EnvironmentsCreates an environment from an existing project configuration and starts it.This method uses project settings as defaults but allows overriding specific
configurations. Project settings take precedence over default configurations,
while custom specifications in the request override project settings.
POST /api/gitpod.v1.EnvironmentService/CreateEnvironmentFromProject
Send a Bearer token as described in Authentication. If your organization uses a custom management-plane domain, replace https://app.ona.com with that domain.
Spec is the configuration of the environment that’s required for the runner to start the environment Configuration already defined in the Project will override parts of the spec, if set
name
string
No
name is a user-defined identifier for the environment. If not specified, the system will generate a name. Constraints: string.max_len=80.
annotations
map of string to string
No
annotations are key/value pairs attached to the environment metadata.
sessionId
string
No
session_id is the ID of the session this environment belongs to. If empty, a new session is created implicitly. Constraints: ignore=1, string.uuid=true.
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 specifies the configuration of an environment for an environment
startgitpod.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.
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.
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.
AutomationsFile
gitpod.v1.EnvironmentSpec.AutomationsFile
Field
Type
Required
Description
session
string
No
automationsFilePath
string
No
automations_file_path is the path to the automations file that is applied in the environment, relative to the repo root. Constraints: cel.expression=this.matches('^$|^[^/].*'), cel.id=relative_path, cel.message=path must not be absolute (start with a /).
triggerFilter
array of AutomationTrigger
No
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.
Content
gitpod.v1.EnvironmentSpec.Content
Field
Type
Required
Description
session
string
No
initializer
EnvironmentInitializer
No
initializer configures how the environment is to be initialized
gitUsername
string
No
The Git username
gitEmail
string
No
The Git email address
DevContainer
gitpod.v1.EnvironmentSpec.DevContainer
Field
Type
Required
Description
session
string
No
devcontainerFilePath
string
No
devcontainer_file_path is the path to the devcontainer file relative to the repo root Constraints: cel.expression=this.matches('^$|^[^/].*'), cel.id=relative_path, cel.message=path must not be absolute (start with a /).
dotfiles
Dotfiles
No
Experimental: dotfiles is the dotfiles configuration of the devcontainer
defaultDevcontainerImage
string
No
default_devcontainer_image is the default image that is used to start the devcontainer if no devcontainer config file is found
protocol for communication (Gateway proxy → user environment service). this setting only affects the protocol used between Gateway and user environment services.
authNonce
64-bit integer string
No
auth_nonce is a monotonically increasing counter incremented by the backend whenever the port’s admission level changes. Used by the proxy to invalidate browser auth cookies without requiring a backend round-trip.
Machine
gitpod.v1.EnvironmentSpec.Machine
Field
Type
Required
Description
session
string
No
class
string
No
Class denotes the class of the environment we ought to start
preferDualDisk
boolean
No
prefer_dual_disk indicates the management plane wants this environment to use a dual-disk layout (separate system and data disks). The runner may ignore this if it does not support dual-disk.
SSHPublicKey
gitpod.v1.EnvironmentSpec.SSHPublicKey
Field
Type
Required
Description
id
string
No
id is the unique identifier of the public key
value
string
No
value is the actual public key in the public key file format
Secret
gitpod.v1.EnvironmentSpec.Secret
Field
Type
Required
Description
name
string
No
name is the human readable description of the secret
source
string
No
source is the source of the secret, for now control-plane or runner
sourceRef
string
No
source_ref into the source, in case of control-plane this is uuid of the secret
filePath
string
One of mount
file_path is the path inside the devcontainer where the secret is mounted
environmentVariable
string
One of mount
gitCredentialHost
string
One of mount
containerRegistryBasicAuthHost
string
One of mount
container_registry_basic_auth_host is the hostname of the container registry that supports basic auth
apiOnly
boolean
One of mount
api_only indicates the secret is only available via API/CLI. These secrets are resolved but NOT automatically injected into services or devcontainers.
session
string
No
session indicated the current session of the secret. When the session does not change, secrets are not reloaded in the environment.
scope indicates where this secret originated from. Used to filter secrets during build (only org and project secrets are injected).
credentialProxy
CredentialProxy
No
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.
sourceDetails
Source
No
source_details contains the typed source configuration for management-plane secrets.
Timeout
Timeout configures the environment timeoutgitpod.v1.EnvironmentSpec.Timeout
Field
Type
Required
Description
disconnected
duration string
No
inacitivity is the maximum time of disconnection before the environment is stopped or paused. Minimum duration is 30 minutes. Set to 0 to disable. Constraints: cel.expression=this == duration('0s') || this >= duration('1800s'), cel.id=disconnected_timeout, cel.message=value must be 0s (disabled) or at least 1800s (30 minutes).
EnvironmentStatus
EnvironmentStatus describes an environment statusgitpod.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.
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.
KernelControlsConfig
KernelControlsConfig configures kernel-level controls for the environmentgitpod.v1.KernelControlsConfig
bpf_debug_level controls the verbosity of BPF trace_pipe output for all BPF-based agents in this environment.
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.
BPFDebugLevel
BPFDebugLevel controls the verbosity of BPF trace_pipe output (bpf_printk).
Applies to all BPF-based agents (veto exec, future agents).
Value
Number
Description
BPF_DEBUG_LEVEL_UNSPECIFIED
0
BPF_DEBUG_LEVEL_UNSPECIFIED disables all bpf_printk output (default).
BPF_DEBUG_LEVEL_INFO
1
BPF_DEBUG_LEVEL_INFO enables decision-level prints (e.g., veto allow/block).
BPF_DEBUG_LEVEL_VERBOSE
2
BPF_DEBUG_LEVEL_VERBOSE enables all debug prints including data fillers.
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 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
LIFECYCLE_STAGE_UNSPECIFIED defaults to FULL for backward compatibility
LIFECYCLE_STAGE_FULL
1
LIFECYCLE_STAGE_FULL runs all devcontainer lifecycle commands (default): initializeCommand, onCreateCommand, updateContentCommand, postCreateCommand, postStartCommand, and postAttachCommand.
LIFECYCLE_STAGE_PREBUILD
2
LIFECYCLE_STAGE_PREBUILD runs only the lifecycle commands suitable for prebuilding: initializeCommand, onCreateCommand, and updateContentCommand. Skips postCreateCommand, postStartCommand, and postAttachCommand which are intended to run when a user connects to the container.
Protocol
Protocol describes the communication protocol between Gateway and user environment services.
Value
Number
Description
PROTOCOL_UNSPECIFIED
0
PROTOCOL_HTTP
1
PROTOCOL_HTTPS
2
Scope
Scope indicates the origin of the secret for filtering purposes.
Value
Number
Description
SCOPE_UNSPECIFIED
0
SCOPE_ORGANIZATION
1
SCOPE_PROJECT
2
SCOPE_USER
3
SCOPE_SERVICE_ACCOUNT
4
SCOPE_RUNNER
5
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ona Documentation","colors":{"primary":"#1F1F1F","light":"#E1E1E1","dark":"#1F1F1F"},"logo":{"light":"https://ona.com/ona-wordmark-black.svg","dark":"https://ona.com/ona-wordmark.svg","href":"https://ona.com"},"favicon":"https://mintcdn.com/gitpod-13c83c2b/VNRB7EABm4xr9DQd/images/favicon.png?fit=max\u0026auto=format\u0026n=VNRB7EABm4xr9DQd\u0026q=85\u0026s=ce328dad297fff45341e91be7468e8f6","api":{},"appearance":{"default":"system"},"background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://app.gitpod.io/login","label":"Sign in"}],"primary":{"type":"button","label":"Request a demo","href":"https://ona.com/contact/demo"}},"footer":{"socials":{"x":"https://x.com/ona_hq","github":"https://github.com/gitpod-io","linkedin":"https://www.linkedin.com/company/ona-hq","youtube":"https://www.youtube.com/@ona_hq"}},"search":{"prompt":"Search or ask, e.g., 'Configure GitHub in Enterprise'"},"seo":{"metatags":{"og:type":"website","og:site_name":"Ona Documentation"},"indexing":"navigable"},"integrations":{"ga4":{"measurementId":"G-N7BXGH25CC"},"gtm":{"tagId":"GTM-P4LP64V"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"gitpod-13c83c2b","hasAudioNarration":false,"actualSubdomain":"gitpod-13c83c2b","customDomains":["ona.com"],"gitSource":{"type":"github","owner":"gitpod-io","repo":"gitpod-next","deployBranch":"main","contentDirectory":"documentation","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6add3f2a9e1712172edc5a64","collectionId":"902813a9-122c-4fff-870f-3328d90d3f30","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6add3f2a9e1712172edc5a64"},"feedback":{"thumbs":true,"issues":false,"edits":false},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"}},"buildId":"6add3f2a9e1712172edc5a64","clientVersion":"0.0.3966","searchFilterCounts":[{"language":"default","tag":"Reference","count":337},{"language":"default","tag":"API Reference","count":328},{"language":"default","tag":"Services","count":326},{"language":"default","tag":"Additional documentation","count":71},{"language":"default","tag":"Organizations","count":58},{"language":"default","tag":"Using Ona","count":47},{"language":"default","tag":"Enterprise","count":43},{"language":"default","tag":"Configuration","count":38},{"language":"default","tag":"Administration \u0026 Security","count":37},{"language":"default","tag":"Introduction","count":35}]},"assistantConfig":{"enableAskAiButton":true,"enableAskAiSearchBar":false},"hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"mux-player.css","content":".mux-player-container{margin:1.5rem 0;position:relative;width:100%;border-radius:6px;overflow:hidden}.mux-player-container mux-player{width:100%;display:block;--media-object-fit:contain;--media-object-position:center;--media-background-color:transparent}"},{"filePath":"style.css","content":"@keyframes veto-fall{0%{transform:translateY(0)}to{transform:translateY(300%)}}#sidebar a[target=_blank]>div>div.flex-1{flex:0 1 auto!important}#sidebar a[target=_blank]>div{gap:6px!important}.qs-hero-btn{display:inline-flex;align-items:center;gap:6px;padding:10px 24px;border-radius:999px;font-size:15px;font-weight:600;text-decoration:none!important;transition:background-color .15s,transform .1s;margin-bottom:16px}.qs-hero-btn:active{transform:scale(.98)}.qs-hero-btn-primary{background-color:#1f1f1f;color:#fff!important}.qs-hero-btn-primary:hover{background-color:#333}.dark .qs-hero-btn-primary{background-color:#fff;color:#1f1f1f!important}.dark .qs-hero-btn-primary:hover{background-color:#e5e5e5}[class*=backdrop-blur-3xl]{backdrop-filter:blur(85px)!important;-webkit-backdrop-filter:blur(85px)!important}.dark [class*=backdrop-blur-3xl]{background:rgba(0,0,0,.7)!important}#banner{max-height:72px!important}#banner span{color:#fff!important}@media (max-width:768px){#banner p,#banner span{font-size:14px!important}}#banner a{text-decoration:none!important}#llms-note{margin-top:2rem;padding-top:1.25rem;border-top:1px solid rgba(0,0,0,.08);font-size:.8125rem;line-height:1.25rem;color:rgba(0,0,0,.9)}.dark #llms-note{border-top-color:rgba(255,255,255,.12);color:rgba(255,255,255,.9)}#llms-note a{color:rgba(0,0,0,.75);text-decoration:underline;text-decoration-color:rgba(0,0,0,.25);text-underline-offset:2px;transition:color .15s,text-decoration-color .15s}.dark #llms-note a{color:rgba(255,255,255,.7);text-decoration-color:rgba(255,255,255,.25)}#llms-note a:hover{color:rgba(0,0,0,.9);text-decoration-color:rgba(0,0,0,.5)}.dark #llms-note a:hover{color:rgba(255,255,255,.95);text-decoration-color:rgba(255,255,255,.5)}.llms-note-icon{margin-right:.25rem}.overview-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}@media (max-width:768px){.overview-cards{grid-template-columns:1fr}}.overview-cards .overview-card{position:relative;overflow:hidden;border-radius:12px;border:1px solid rgba(0,0,0,.08);padding:24px;text-decoration:none!important;color:inherit!important;display:block;transition:border-color .2s;isolation:isolate}.dark .overview-cards .overview-card{border-color:rgba(255,255,255,.1)}.overview-cards .overview-card::after,.overview-cards .overview-card::before{content:'';position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .7s ease}.overview-cards .overview-card::before{background-image:url(https://ona.com/docs/assets/screenshot-bg.jpg);background-size:cover;background-position:center;z-index:0}.overview-cards .overview-card::after{background:rgba(255,255,255,.85);z-index:1}.dark .overview-cards .overview-card::after{background:rgba(0,0,0,.75)}.overview-cards .overview-card:hover::after,.overview-cards .overview-card:hover::before{opacity:1!important}.overview-cards .overview-card:hover{border-color:rgba(0,0,0,.15)!important}.dark .overview-cards .overview-card:hover{border-color:rgba(255,255,255,.2)!important}.overview-cards .overview-card.overview-card--static:hover::after,.overview-cards .overview-card.overview-card--static:hover::before{opacity:0!important}.overview-cards .overview-card.overview-card--static:hover{border-color:rgba(0,0,0,.08)!important}.dark .overview-cards .overview-card.overview-card--static:hover{border-color:rgba(255,255,255,.1)!important}.overview-card-content{position:relative;z-index:2}.overview-card-title{font-weight:600;font-size:16px;margin-bottom:4px}.overview-card-desc{font-size:14px;opacity:.7;line-height:1.4}.overview-card-link{margin-top:16px;font-size:13px;font-weight:500;opacity:.6}.veto-banner{position:relative;overflow:hidden;background:#111;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:20px 24px;margin-bottom:24px;display:block;text-decoration:none!important;color:inherit!important}.veto-banner:hover{border-color:rgba(255,255,255,.2)}.veto-rain{transition:opacity .4s ease}.veto-banner:hover .veto-rain{opacity:2.5}.veto-banner:hover .veto-col{color:rgba(255,255,255,.25)}.veto-banner:hover .veto-title{color:#fff}.veto-banner:hover .veto-subtitle{color:rgba(255,255,255,.75)}.veto-content{position:relative;z-index:2}.veto-title{font-size:15px;font-weight:700;color:#fff;margin-bottom:4px;transition:color .4s ease}.veto-subtitle{font-size:14px;color:rgba(255,255,255,.55);line-height:1.5;transition:color .4s ease}.veto-rain{position:absolute;inset:0;pointer-events:none;user-select:none;overflow:hidden}.veto-col{position:absolute;top:-100%;font-family:ui-monospace,SFMono-Regular,'SF Mono',Menlo,monospace;font-size:13px;line-height:1.4;color:rgba(255,255,255,.1);writing-mode:vertical-lr;text-orientation:upright;animation:veto-fall linear infinite;transition:color .4s ease}.veto-col:nth-child(1){left:2%;animation-duration:6s;animation-delay:0s}.veto-col:nth-child(2){left:7%;animation-duration:8s;animation-delay:-2s;color:rgba(255,255,255,.06)}.veto-col:nth-child(3){left:12%;animation-duration:7s;animation-delay:-4s}.veto-col:nth-child(4){left:17%;animation-duration:9s;animation-delay:-1s;color:rgba(255,255,255,.08)}.veto-col:nth-child(5){left:22%;animation-duration:6.5s;animation-delay:-3s}.veto-col:nth-child(6){left:27%;animation-duration:8.5s;animation-delay:-5s;color:rgba(255,255,255,.05)}.veto-col:nth-child(7){left:32%;animation-duration:7.5s;animation-delay:-2.5s}.veto-col:nth-child(8){left:37%;animation-duration:9.5s;animation-delay:-4.5s;color:rgba(255,255,255,.06)}.veto-col:nth-child(9){left:42%;animation-duration:6.8s;animation-delay:-1.5s}.veto-col:nth-child(10){left:47%;animation-duration:8.2s;animation-delay:-3.5s;color:rgba(255,255,255,.08)}.veto-col:nth-child(11){left:52%;animation-duration:7.2s;animation-delay:-.5s}.veto-col:nth-child(12){left:57%;animation-duration:9s;animation-delay:-5.5s;color:rgba(255,255,255,.05)}.veto-col:nth-child(13){left:62%;animation-duration:6.3s;animation-delay:-2.8s}.veto-col:nth-child(14){left:67%;animation-duration:7.8s;animation-delay:-1.2s;color:rgba(255,255,255,.08)}.veto-col:nth-child(15){left:72%;animation-duration:8.8s;animation-delay:-3.8s}.veto-col:nth-child(16){left:77%;animation-duration:6.2s;animation-delay:-4.2s;color:rgba(255,255,255,.06)}.veto-col:nth-child(17){left:82%;animation-duration:7.6s;animation-delay:-.8s}.veto-col:nth-child(18){left:87%;animation-duration:9.2s;animation-delay:-2.2s;color:rgba(255,255,255,.05)}.veto-col:nth-child(19){left:92%;animation-duration:6.7s;animation-delay:-4.8s}.veto-col:nth-child(20){left:97%;animation-duration:8.4s;animation-delay:-1.8s;color:rgba(255,255,255,.08)}"}],"page":{"pagePath":"api-reference/generated/environment/create-environment-from-project","slug":"/api-reference/generated/environment/create-environment-from-project","pageMetadata":{"title":"Create Environment From Project","description":"Creates an environment from an existing project configuration and starts it.","href":"/api-reference/generated/environment/create-environment-from-project"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Creates an environment from an existing project configuration and starts it.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Accordion,CodeBlock,CodeGroup,Heading,Table}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!CodeGroup)_missingMdxReference(`CodeGroup`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[_jsx(_components.code,{children:`Unary`}),` · `,_jsx(_components.a,{href:`/api-reference/generated/environment/overview`,children:_jsx(_components.code,{children:`Environments`})})]}),`\n`,_jsx(_components.p,{children:`Creates an environment from an existing project configuration and starts it.`}),`\n`,_jsx(_components.p,{children:`This method uses project settings as defaults but allows overriding specific\nconfigurations. Project settings take precedence over default configurations,\nwhile custom specifications in the request override project settings.`}),`\n`,_jsx(Heading,{level:`3`,id:`examples`,children:`Examples`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Create with project defaults:`}),`\n`,_jsx(_components.p,{children:`Creates an environment using all default settings from the project configuration.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`projectId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"b0e12f6c-4c67-429d-a4a6-d9838b5da047\"`})]}),`\n`]})})}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Create with custom compute resources:`}),`\n`,_jsx(_components.p,{children:`Creates an environment from project with custom machine class and timeout settings.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`6`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`6`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`projectId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"b0e12f6c-4c67-429d-a4a6-d9838b5da047\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`spec`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` machine`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` class`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"d2c94c27-3b76-4a42-b88c-95a85e392c68\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` timeout`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` disconnected`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"14400s\"`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # 4 hours in seconds`})]}),`\n`]})})}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`endpoint`,children:`Endpoint`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`POST /api/gitpod.v1.EnvironmentService/CreateEnvironmentFromProject`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Send a Bearer token as described in `,_jsx(_components.a,{href:`/api-reference#authenticate-requests`,children:`Authentication`}),`. If your organization uses a custom management-plane domain, replace `,_jsx(_components.code,{children:`https://app.ona.com`}),` with that domain.`]}),`\n`,_jsx(Heading,{level:`2`,id:`request-example`,children:`Request example`}),`\n`,_jsxs(CodeGroup,{children:[_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`10`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ONA_HOST`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`https`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`://`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`ona`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`com`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`export`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ONA_API_KEY`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=\u003c`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`your-token`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`>`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ONA_HOST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`/api/gitpod.v1.EnvironmentService/CreateEnvironmentFromProject\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$ONA_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Content-Type: application/json\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"projectId\": \"\u003cproject-id>\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`}'`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Python`,numberOfLines:`9`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` gitpod.v1.environment_pb2 `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` environment_pb2`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ona_sdk `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` create_client_from_env`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`ona `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` create_client_from_env()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`request `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` environment_pb2.CreateEnvironmentFromProjectRequest(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:` project_id`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cproject-id>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`response `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ona.services.environment.create_environment_from_project(request)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`print`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(response)`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`TypeScript`,numberOfLines:`14`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`create`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@bufbuild/protobuf\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`createClientFromEnv`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@gitpod/sdk\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` { `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`CreateEnvironmentFromProjectRequestSchema`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`from`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"@gitpod/sdk/gitpod/v1/environment_pb\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`async`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` ona`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` createClientFromEnv`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` request`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` create`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`CreateEnvironmentFromProjectRequestSchema`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` projectId:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"\u003cproject-id>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` });`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` response`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ona`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`services`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`environment`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createEnvironmentFromProject`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`().`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`catch`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`error`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`]})})}),_jsx(CodeBlock,{filename:`Go`,numberOfLines:`27`,language:`go`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`go`,children:_jsxs(_components.code,{language:`go`,numberOfLines:`27`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`package`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` main`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`import`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\t\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`context`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\t\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`fmt`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\t\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`log`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\t\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`connectrpc.com/connect`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\t\"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`github.com/gitpod-io/gitpod-sdk-go/sdk`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\tgitpodpb`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#CE9178`},children:`github.com/gitpod-io/gitpod-sdk-go/v1`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`func`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` main`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\tona`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` sdk`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`NewFromEnv`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\tif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` nil`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\trequest`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` connect`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`NewRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`\u0026`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`gitpodpb`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:`CreateEnvironmentFromProjectRequest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tProjectId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cproject-id>\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t})`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\tresponse`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` :=`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` ona`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Services`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Environment`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`CreateEnvironmentFromProject`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`context`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Background`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(), `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`request`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`\tif`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` err`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !=`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` nil`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\t\tlog`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Fatal`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`err`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`\t}`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`\tfmt`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`Println`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`response`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`Msg`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),_jsx(CodeBlock,{filename:`Request body`,numberOfLines:`3`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"projectId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\u003cproject-id>\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]}),`\n`,_jsx(Heading,{level:`2`,id:`request`,children:`Request`}),`\n`,_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.CreateEnvironmentFromProjectRequest`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`projectId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`Constraints: `,_jsx(_components.code,{children:`string.uuid=true`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`spec`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#type-gitpod-v1-environment-spec`,children:`EnvironmentSpec`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Spec is the configuration of the environment that’s required for the runner to start the environment Configuration already defined in the Project will override parts of the spec, if set`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`name is a user-defined identifier for the environment. If not specified, the system will generate a name. Constraints: `,_jsx(_components.code,{children:`string.max_len=80`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`annotations`})}),_jsx(_components.td,{children:`map of string to string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`annotations are key/value pairs attached to the environment metadata.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sessionId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`session_id is the ID of the session this environment belongs to. If empty, a new session is created implicitly. Constraints: `,_jsx(_components.code,{children:`ignore=1, string.uuid=true`}),`.`]})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`response`,children:`Response`}),`\n`,_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.CreateEnvironmentFromProjectResponse`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`environment`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#type-gitpod-v1-environment`,children:`Environment`})}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[`Constraints: `,_jsx(_components.code,{children:`required=true`}),`.`]})]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`related-types`,children:`Related types`}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-environment`}),`\n`,_jsxs(Accordion,{title:`Environment`,id:`environment`,children:[_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.Environment`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`ID is a unique identifier of this environment. No other environment with the same name must be managed by this environment manager`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`metadata`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#type-gitpod-v1-environment-metadata`,children:`EnvironmentMetadata`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Metadata is data associated with this environment that’s required for other parts of Gitpod to function`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`spec`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#type-gitpod-v1-environment-spec`,children:`EnvironmentSpec`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Spec is the configuration of the environment that’s required for the runner to start the environment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`status`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#type-gitpod-v1-environment-status`,children:`EnvironmentStatus`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Status is the current status of the environment`})]})]})]})]}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-environment-metadata`}),`\n`,_jsxs(Accordion,{title:`EnvironmentMetadata`,id:`environmentmetadata`,children:[_jsx(_components.p,{children:`EnvironmentMetadata is data associated with an environment that’s required for\nother parts of the system to function`}),_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.EnvironmentMetadata`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`organizationId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`organization_id is the ID of the organization that contains the environment Constraints: `,_jsx(_components.code,{children:`string.uuid=true`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`annotations`})}),_jsx(_components.td,{children:`map of string to string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`annotations are key/value pairs that gets attached to the environment.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`name is the name of the environment as specified by the user Constraints: `,_jsx(_components.code,{children:`string.max_len=80`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`creator`})}),_jsx(_components.td,{children:`Subject`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`creator is the identity of the creator of the environment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`originalContextUrl`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`original_context_url is the normalized URL from which the environment was created`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`createdAt`})}),_jsx(_components.td,{children:`RFC 3339 timestamp`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Time when the Environment was created.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`projectId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`If the Environment was started from a project, the project_id will reference the project.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`runnerId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Runner is the ID of the runner that runs this environment.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`lastStartedAt`})}),_jsx(_components.td,{children:`RFC 3339 timestamp`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Time when the Environment was last started (i.e. CreateEnvironment or StartEnvironment were called).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`archivedAt`})}),_jsx(_components.td,{children:`RFC 3339 timestamp`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Time when the Environment was archived. If not set, the environment is not archived.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`role`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#enum-gitpod-v1-environment-role`,children:`EnvironmentRole`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`role is the role of the environment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`prebuildId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`prebuild_id is the ID of the prebuild this environment was created from. Only set if the environment was created from a prebuild. Constraints: `,_jsx(_components.code,{children:`string.uuid=true`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`lockdownAt`})}),_jsx(_components.td,{children:`RFC 3339 timestamp`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`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.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sessionId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`session_id is the ID of the session this environment belongs to.`})]})]})]})]}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-environment-spec`}),`\n`,_jsxs(Accordion,{title:`EnvironmentSpec`,id:`environmentspec`,children:[_jsx(_components.p,{children:`EnvironmentSpec specifies the configuration of an environment for an environment\nstart`}),_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.EnvironmentSpec`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`specVersion`})}),_jsx(_components.td,{children:`64-bit integer string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`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 \u003c b.spec_version then a was the spec before b.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`desiredPhase`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#enum-gitpod-v1-environment-phase`,children:`EnvironmentPhase`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Phase is the desired phase of the environment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`machine`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#type-gitpod-v1-environment-spec-machine`,children:`Machine`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`machine is the machine spec of the environment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`content`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#type-gitpod-v1-environment-spec-content`,children:`Content`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`content is the content spec of the environment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`secrets`})}),_jsxs(_components.td,{children:[`array of `,_jsx(_components.a,{href:`#type-gitpod-v1-environment-spec-secret`,children:`Secret`})]}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`secrets are confidential data that is mounted into the environment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ports`})}),_jsxs(_components.td,{children:[`array of `,_jsx(_components.a,{href:`#type-gitpod-v1-environment-spec-environment-port`,children:`EnvironmentPort`})]}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`ports is the set of ports which ought to be exposed to your network`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`timeout`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#type-gitpod-v1-environment-spec-timeout`,children:`Timeout`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Timeout configures the environment timeout`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`admission`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#enum-gitpod-v1-admission-level`,children:`AdmissionLevel`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`admission controlls who can access the environment and its ports.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`devcontainer`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#type-gitpod-v1-environment-spec-dev-container`,children:`DevContainer`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`devcontainer is the devcontainer spec of the environment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sshPublicKeys`})}),_jsxs(_components.td,{children:[`array of `,_jsx(_components.a,{href:`#type-gitpod-v1-environment-spec-ssh-public-key`,children:`SSHPublicKey`})]}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`ssh_public_keys are the public keys used to ssh into the environment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`automationsFile`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#type-gitpod-v1-environment-spec-automations-file`,children:`AutomationsFile`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`automations_file is the automations file spec of the environment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`workflowActionId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`workflow_action_id is an optional reference to the workflow execution action that created this environment. Used for tracking and event correlation. Constraints: `,_jsx(_components.code,{children:`string.uuid=true`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`kernelControlsConfig`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#type-gitpod-v1-kernel-controls-config`,children:`KernelControlsConfig`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`kernel_controls_config configures kernel-level controls for this environment`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`securityPolicyId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`security_policy_id references the security policy used for this environment. If empty, the environment has no security policy. Constraints: `,_jsx(_components.code,{children:`ignore=1, string.uuid=true`}),`.`]})]})]})]})]}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-environment-spec-automations-file`}),`\n`,_jsxs(Accordion,{title:`AutomationsFile`,id:`automationsfile`,children:[_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.EnvironmentSpec.AutomationsFile`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`session`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`automationsFilePath`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`automations_file_path is the path to the automations file that is applied in the environment, relative to the repo root. Constraints: `,_jsx(_components.code,{children:`cel.expression=this.matches('^$|^[^/].*'), cel.id=relative_path, cel.message=path must not be absolute (start with a /)`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`triggerFilter`})}),_jsx(_components.td,{children:`array of AutomationTrigger`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`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.`})]})]})]})]}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-environment-spec-content`}),`\n`,_jsxs(Accordion,{title:`Content`,id:`content`,children:[_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.EnvironmentSpec.Content`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`session`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`initializer`})}),_jsx(_components.td,{children:`EnvironmentInitializer`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`initializer configures how the environment is to be initialized`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`gitUsername`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`The Git username`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`gitEmail`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`The Git email address`})]})]})]})]}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-environment-spec-dev-container`}),`\n`,_jsxs(Accordion,{title:`DevContainer`,id:`devcontainer`,children:[_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.EnvironmentSpec.DevContainer`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`session`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`devcontainerFilePath`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`devcontainer_file_path is the path to the devcontainer file relative to the repo root Constraints: `,_jsx(_components.code,{children:`cel.expression=this.matches('^$|^[^/].*'), cel.id=relative_path, cel.message=path must not be absolute (start with a /)`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`dotfiles`})}),_jsx(_components.td,{children:`Dotfiles`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Experimental: dotfiles is the dotfiles configuration of the devcontainer`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`defaultDevcontainerImage`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`default_devcontainer_image is the default image that is used to start the devcontainer if no devcontainer config file is found`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`lifecycleStage`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#enum-gitpod-v1-environment-spec-dev-container-lifecycle-stage`,children:`LifecycleStage`})}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`lifecycle_stage controls which devcontainer lifecycle commands are executed. Defaults to FULL if not specified. Constraints: `,_jsx(_components.code,{children:`enum.defined_only=true`}),`.`]})]})]})]})]}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-environment-spec-environment-port`}),`\n`,_jsxs(Accordion,{title:`EnvironmentPort`,id:`environmentport`,children:[_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.EnvironmentSpec.EnvironmentPort`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`port`})}),_jsx(_components.td,{children:`integer`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`port number Constraints: `,_jsx(_components.code,{children:`int32.gte=1024, int32.lte=65535`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`admission`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#enum-gitpod-v1-admission-level`,children:`AdmissionLevel`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`policy of this port`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`name of this port Constraints: `,_jsx(_components.code,{children:`string.max_len=100, string.min_len=1`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`protocol`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#enum-gitpod-v1-environment-spec-environment-port-protocol`,children:`Protocol`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`protocol for communication (Gateway proxy → user environment service). this setting only affects the protocol used between Gateway and user environment services.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`authNonce`})}),_jsx(_components.td,{children:`64-bit integer string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`auth_nonce is a monotonically increasing counter incremented by the backend whenever the port’s admission level changes. Used by the proxy to invalidate browser auth cookies without requiring a backend round-trip.`})]})]})]})]}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-environment-spec-machine`}),`\n`,_jsxs(Accordion,{title:`Machine`,id:`machine`,children:[_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.EnvironmentSpec.Machine`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`session`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`class`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`Class denotes the class of the environment we ought to start`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`preferDualDisk`})}),_jsx(_components.td,{children:`boolean`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`prefer_dual_disk indicates the management plane wants this environment to use a dual-disk layout (separate system and data disks). The runner may ignore this if it does not support dual-disk.`})]})]})]})]}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-environment-spec-ssh-public-key`}),`\n`,_jsxs(Accordion,{title:`SSHPublicKey`,id:`sshpublickey`,children:[_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.EnvironmentSpec.SSHPublicKey`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`id is the unique identifier of the public key`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`value`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`value is the actual public key in the public key file format`})]})]})]})]}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-environment-spec-secret`}),`\n`,_jsxs(Accordion,{title:`Secret`,id:`secret`,children:[_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.EnvironmentSpec.Secret`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`name`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`name is the human readable description of the secret`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`source`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`source is the source of the secret, for now control-plane or runner`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sourceRef`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`source_ref into the source, in case of control-plane this is uuid of the secret`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`filePath`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`One of `,_jsx(_components.code,{children:`mount`})]}),_jsx(_components.td,{children:`file_path is the path inside the devcontainer where the secret is mounted`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`environmentVariable`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`One of `,_jsx(_components.code,{children:`mount`})]}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`gitCredentialHost`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`One of `,_jsx(_components.code,{children:`mount`})]}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`containerRegistryBasicAuthHost`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`One of `,_jsx(_components.code,{children:`mount`})]}),_jsx(_components.td,{children:`container_registry_basic_auth_host is the hostname of the container registry that supports basic auth`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`apiOnly`})}),_jsx(_components.td,{children:`boolean`}),_jsxs(_components.td,{children:[`One of `,_jsx(_components.code,{children:`mount`})]}),_jsx(_components.td,{children:`api_only indicates the secret is only available via API/CLI. These secrets are resolved but NOT automatically injected into services or devcontainers.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`session`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`session indicated the current session of the secret. When the session does not change, secrets are not reloaded in the environment.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`id is the unique identifier of the secret.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`scope`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#enum-gitpod-v1-environment-spec-secret-scope`,children:`Scope`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`scope indicates where this secret originated from. Used to filter secrets during build (only org and project secrets are injected).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`credentialProxy`})}),_jsx(_components.td,{children:`CredentialProxy`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`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.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sourceDetails`})}),_jsx(_components.td,{children:`Source`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`source_details contains the typed source configuration for management-plane secrets.`})]})]})]})]}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-environment-spec-timeout`}),`\n`,_jsxs(Accordion,{title:`Timeout`,id:`timeout`,children:[_jsx(_components.p,{children:`Timeout configures the environment timeout`}),_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.EnvironmentSpec.Timeout`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`disconnected`})}),_jsx(_components.td,{children:`duration string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`inacitivity is the maximum time of disconnection before the environment is stopped or paused. Minimum duration is 30 minutes. Set to 0 to disable. Constraints: `,_jsx(_components.code,{children:`cel.expression=this == duration('0s') || this >= duration('1800s'), cel.id=disconnected_timeout, cel.message=value must be 0s (disabled) or at least 1800s (30 minutes)`}),`.`]})]})})]})]}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-environment-status`}),`\n`,_jsxs(Accordion,{title:`EnvironmentStatus`,id:`environmentstatus`,children:[_jsx(_components.p,{children:`EnvironmentStatus describes an environment status`}),_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.EnvironmentStatus`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`statusVersion`})}),_jsx(_components.td,{children:`64-bit integer string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`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 \u003c b.status_version then a was the status before b.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`runnerAck`})}),_jsx(_components.td,{children:`RunnerACK`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`runner_ack contains the acknowledgement from the runner that is has received the environment spec.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`phase`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#enum-gitpod-v1-environment-phase`,children:`EnvironmentPhase`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`the phase of an environment is a simple, high-level summary of where the environment is in its lifecycle`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`failureMessage`})}),_jsx(_components.td,{children:`array of string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`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.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`environmentUrls`})}),_jsx(_components.td,{children:`EnvironmentURLs`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`environment_url contains the URL at which the environment can be accessed. This field is only set if the environment is running.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`machine`})}),_jsx(_components.td,{children:`Machine`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`machine contains the status of the environment machine`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`secrets`})}),_jsx(_components.td,{children:`array of Secret`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`secrets contains the status of the environment secrets`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`content`})}),_jsx(_components.td,{children:`Content`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`content contains the status of the environment content.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`devcontainer`})}),_jsx(_components.td,{children:`DevContainer`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`devcontainer contains the status of the devcontainer.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sshPublicKeys`})}),_jsx(_components.td,{children:`array of SSHPublicKey`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`ssh_public_keys contains the status of the environment ssh public keys`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`warningMessage`})}),_jsx(_components.td,{children:`array of string`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`warning_message contains warnings, e.g. when the environment is present but not in the expected state.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`automationsFile`})}),_jsx(_components.td,{children:`AutomationsFile`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`automations_file contains the status of the automations file.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`activitySignal`})}),_jsx(_components.td,{children:`EnvironmentActivitySignal`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`activity_signal is the last activity signal for the environment.`})]})]})]})]}),`\n`,_jsx(`a`,{id:`type-gitpod-v1-kernel-controls-config`}),`\n`,_jsxs(Accordion,{title:`KernelControlsConfig`,id:`kernelcontrolsconfig`,children:[_jsx(_components.p,{children:`KernelControlsConfig configures kernel-level controls for the environment`}),_jsx(_components.p,{children:_jsx(_components.code,{children:`gitpod.v1.KernelControlsConfig`})}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`veto`})}),_jsx(_components.td,{children:`Veto`}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`veto controls blocking mechanisms`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`bpfDebugLevel`})}),_jsx(_components.td,{children:_jsx(_components.a,{href:`#enum-gitpod-v1-bpf-debug-level`,children:`BPFDebugLevel`})}),_jsx(_components.td,{children:`No`}),_jsx(_components.td,{children:`bpf_debug_level controls the verbosity of BPF trace_pipe output for all BPF-based agents in this environment.`})]})]})]})]}),`\n`,_jsx(`a`,{id:`enum-gitpod-v1-admission-level`}),`\n`,_jsxs(Accordion,{title:`AdmissionLevel`,id:`admissionlevel`,children:[_jsx(_components.p,{children:`Admission level describes who can access an environment instance and its ports.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{style:{textAlign:`right`},children:`Number`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ADMISSION_LEVEL_UNSPECIFIED`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`0`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ADMISSION_LEVEL_OWNER_ONLY`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`1`}),_jsxs(_components.td,{children:[_jsx(_components.strong,{children:`Deprecated.`}),` ADMISSION_LEVEL_OWNER_ONLY means the environment can only be accessed by the creator. Deprecated: Use ADMISSION_LEVEL_CREATOR_ONLY instead.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ADMISSION_LEVEL_EVERYONE`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`2`}),_jsx(_components.td,{children:`ADMISSION_LEVEL_EVERYONE means the environment (including ports) can be accessed by everyone.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ADMISSION_LEVEL_ORGANIZATION`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`3`}),_jsx(_components.td,{children:`ADMISSION_LEVEL_ORGANIZATION means the environment (including ports) can be accessed by all members of the organization.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ADMISSION_LEVEL_CREATOR_ONLY`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`4`}),_jsx(_components.td,{children:`ADMISSION_LEVEL_CREATOR_ONLY means the environment (including ports) can only be accessed by the user who created the environment.`})]})]})]})]}),`\n`,_jsx(`a`,{id:`enum-gitpod-v1-bpf-debug-level`}),`\n`,_jsxs(Accordion,{title:`BPFDebugLevel`,id:`bpfdebuglevel`,children:[_jsx(_components.p,{children:`BPFDebugLevel controls the verbosity of BPF trace_pipe output (bpf_printk).\nApplies to all BPF-based agents (veto exec, future agents).`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{style:{textAlign:`right`},children:`Number`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BPF_DEBUG_LEVEL_UNSPECIFIED`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`0`}),_jsx(_components.td,{children:`BPF_DEBUG_LEVEL_UNSPECIFIED disables all bpf_printk output (default).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BPF_DEBUG_LEVEL_INFO`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`1`}),_jsx(_components.td,{children:`BPF_DEBUG_LEVEL_INFO enables decision-level prints (e.g., veto allow/block).`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`BPF_DEBUG_LEVEL_VERBOSE`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`2`}),_jsx(_components.td,{children:`BPF_DEBUG_LEVEL_VERBOSE enables all debug prints including data fillers.`})]})]})]})]}),`\n`,_jsx(`a`,{id:`enum-gitpod-v1-environment-phase`}),`\n`,_jsx(Accordion,{title:`EnvironmentPhase`,id:`environmentphase`,children:_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{style:{textAlign:`right`},children:`Number`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_PHASE_UNSPECIFIED`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`0`}),_jsx(_components.td,{children:`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.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_PHASE_CREATING`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`10`}),_jsx(_components.td,{children:`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.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_PHASE_STARTING`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`20`}),_jsx(_components.td,{children:`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.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_PHASE_RUNNING`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`40`}),_jsx(_components.td,{children:`Running means the environment is able to actively perform work, either by serving a user through Theia, or as a headless environment.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_PHASE_UPDATING`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`45`}),_jsx(_components.td,{children:`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.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_PHASE_STOPPING`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`50`}),_jsx(_components.td,{children:`Stopping means that the environment is currently shutting down. It could go to stopped every moment.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_PHASE_STOPPED`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`60`}),_jsx(_components.td,{children:`Stopped means the environment ended regularly because it was shut down.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_PHASE_DELETING`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`70`}),_jsx(_components.td,{children:`Deleting means the environment is currently being deleted. It could go to deleted any moment. This phase implies that the environment is stopped.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_PHASE_DELETED`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`80`}),_jsx(_components.td,{children:`Deleted means the environment was deleted and cannot be started again. This phase implies that the environment is stopped.`})]})]})]})}),`\n`,_jsx(`a`,{id:`enum-gitpod-v1-environment-role`}),`\n`,_jsxs(Accordion,{title:`EnvironmentRole`,id:`environmentrole`,children:[_jsx(_components.p,{children:`EnvironmentRole represents the role of an environment`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{style:{textAlign:`right`},children:`Number`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_ROLE_UNSPECIFIED`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`0`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_ROLE_DEFAULT`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`1`}),_jsx(_components.td,{children:`Default role for environments`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_ROLE_PREBUILD`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`2`}),_jsx(_components.td,{children:`Prebuild role for environments that are prebuilds`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`ENVIRONMENT_ROLE_WORKFLOW`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`3`}),_jsx(_components.td,{children:`Workflow role for environments that are part of a workflow`})]})]})]})]}),`\n`,_jsx(`a`,{id:`enum-gitpod-v1-environment-spec-dev-container-lifecycle-stage`}),`\n`,_jsxs(Accordion,{title:`LifecycleStage`,id:`lifecyclestage`,children:[_jsxs(_components.p,{children:[`LifecycleStage controls which devcontainer lifecycle commands are executed.\nSee `,_jsx(_components.a,{href:`https://containers.dev/implementors/json_reference/#lifecycle-scripts`,children:`https://containers.dev/implementors/json_reference/#lifecycle-scripts`})]}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{style:{textAlign:`right`},children:`Number`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`LIFECYCLE_STAGE_UNSPECIFIED`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`0`}),_jsx(_components.td,{children:`LIFECYCLE_STAGE_UNSPECIFIED defaults to FULL for backward compatibility`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`LIFECYCLE_STAGE_FULL`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`1`}),_jsx(_components.td,{children:`LIFECYCLE_STAGE_FULL runs all devcontainer lifecycle commands (default): initializeCommand, onCreateCommand, updateContentCommand, postCreateCommand, postStartCommand, and postAttachCommand.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`LIFECYCLE_STAGE_PREBUILD`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`2`}),_jsx(_components.td,{children:`LIFECYCLE_STAGE_PREBUILD runs only the lifecycle commands suitable for prebuilding: initializeCommand, onCreateCommand, and updateContentCommand. Skips postCreateCommand, postStartCommand, and postAttachCommand which are intended to run when a user connects to the container.`})]})]})]})]}),`\n`,_jsx(`a`,{id:`enum-gitpod-v1-environment-spec-environment-port-protocol`}),`\n`,_jsxs(Accordion,{title:`Protocol`,id:`protocol`,children:[_jsx(_components.p,{children:`Protocol describes the communication protocol between Gateway and user environment services.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{style:{textAlign:`right`},children:`Number`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`PROTOCOL_UNSPECIFIED`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`0`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`PROTOCOL_HTTP`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`1`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`PROTOCOL_HTTPS`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`2`}),_jsx(_components.td,{})]})]})]})]}),`\n`,_jsx(`a`,{id:`enum-gitpod-v1-environment-spec-secret-scope`}),`\n`,_jsxs(Accordion,{title:`Scope`,id:`scope`,children:[_jsx(_components.p,{children:`Scope indicates the origin of the secret for filtering purposes.`}),_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value`}),_jsx(_components.th,{style:{textAlign:`right`},children:`Number`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SCOPE_UNSPECIFIED`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`0`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SCOPE_ORGANIZATION`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`1`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SCOPE_PROJECT`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`2`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SCOPE_USER`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`3`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SCOPE_SERVICE_ACCOUNT`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`4`}),_jsx(_components.td,{})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`SCOPE_RUNNER`})}),_jsx(_components.td,{\"data-numeric\":`true`,style:{textAlign:`right`},children:`5`}),_jsx(_components.td,{})]})]})]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create Environment From Project","description":"Creates an environment from an existing project configuration and starts it.","href":"/api-reference/generated/environment/create-environment-from-project"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Examples","slug":"examples","depth":3,"children":[]},{"title":"Endpoint","slug":"endpoint","depth":2,"children":[]},{"title":"Request example","slug":"request-example","depth":2,"children":[]},{"title":"Request","slug":"request","depth":2,"children":[]},{"title":"Response","slug":"response","depth":2,"children":[]},{"title":"Related types","slug":"related-types","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/gitpod-13c83c2b/e137d8d13296b12a/mux-player.js","/docs/_mintlify/custom/gitpod-13c83c2b/599f15f02bc44682/reo-dev.js","/docs/_mintlify/custom/gitpod-13c83c2b/8f31a766d75cd1b9/llms-note.js"],"subdomain":"gitpod-13c83c2b","siteName":"Ona Documentation","title":"Create Environment From Project - Ona Documentation","navMaps":{"firstHrefInVersion":{"Ona":{"href":"/api-reference/generated/environment/create-environment-from-project","matchLevel":0},"Workshops":{"href":"/workshops/overview","matchLevel":3},"Gitpod Classic":{"href":"/classic/user/introduction/overview","matchLevel":3},"Examples":{"href":"/examples/introduction/getting-started","matchLevel":3}},"firstHrefInLanguage":{}},"lastModified":"2026-08-02T13:20:36.964Z","originalFileLocation":"api-reference/generated/environment/create-environment-from-project.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates an environment from an existing project configuration and starts it.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Ona Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/gitpod-13c83c2b/TBHkobzFtW1BGitV/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/gitpod-13c83c2b/TBHkobzFtW1BGitV/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/gitpod-13c83c2b/TBHkobzFtW1BGitV/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/gitpod-13c83c2b/TBHkobzFtW1BGitV/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/gitpod-13c83c2b/TBHkobzFtW1BGitV/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/gitpod-13c83c2b/TBHkobzFtW1BGitV/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/gitpod-13c83c2b/TBHkobzFtW1BGitV/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/gitpod-13c83c2b/TBHkobzFtW1BGitV/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/gitpod-13c83c2b/TBHkobzFtW1BGitV/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create Environment From Project - Ona Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates an environment from an existing project configuration and starts it.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ona Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://ona.com/docs/api-reference/generated/environment/create-environment-from-project\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://gitpod-13c83c2b.mintlify.app/_mintlify/api/og/v2?division=Environments\u0026amp;title=Create+Environment+From+Project\u0026amp;description=Creates+an+environment+from+an+existing+project+configuration+and+starts+it.\u0026amp;theme=e02116b2a6816d555293bbc7\u0026amp;signature=d5d386322664491bc57ca8f374d88a6c7d2f14625d5ee0edefa3f9162a950850\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create Environment From Project - Ona Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates an environment from an existing project configuration and starts it.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://gitpod-13c83c2b.mintlify.app/_mintlify/api/og/v2?division=Environments\u0026amp;title=Create+Environment+From+Project\u0026amp;description=Creates+an+environment+from+an+existing+project+configuration+and+starts+it.\u0026amp;theme=e02116b2a6816d555293bbc7\u0026amp;signature=d5d386322664491bc57ca8f374d88a6c7d2f14625d5ee0edefa3f9162a950850\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/gitpod-13c83c2b/TBHkobzFtW1BGitV/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ona Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1F1F1F\">\u003clink data-mint-head rel=\"canonical\" href=\"https://ona.com/docs/api-reference/generated/environment/create-environment-from-project\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/api-reference/generated/environment/create-environment-from-project.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://ona.com/#organization\",\"name\":\"Ona Documentation\",\"url\":\"https://ona.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://ona.com/ona-wordmark-black.svg\"}},{\"@type\":\"WebSite\",\"@id\":\"https://ona.com/docs#website\",\"name\":\"Ona Documentation\",\"url\":\"https://ona.com/docs\",\"publisher\":{\"@id\":\"https://ona.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://ona.com/docs/api-reference/generated/environment/create-environment-from-project#webpage\",\"url\":\"https://ona.com/docs/api-reference/generated/environment/create-environment-from-project\",\"name\":\"Create Environment From Project\",\"description\":\"Creates an environment from an existing project configuration and starts it.\",\"dateModified\":\"2026-08-02T13:20:36.964Z\",\"isPartOf\":{\"@id\":\"https://ona.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://ona.com/docs/api-reference/generated/environment/create-environment-from-project#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://ona.com/docs/api-reference/generated/environment/create-environment-from-project#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Reference\",\"item\":\"https://ona.com/docs/api-reference\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API Reference\",\"item\":\"https://ona.com/docs/api-reference\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Services\",\"item\":\"https://ona.com/docs/api-reference/generated/account/overview\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Environments\",\"item\":\"https://ona.com/docs/api-reference/generated/environment/overview\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Create Environment From Project\",\"item\":\"https://ona.com/docs/api-reference/generated/environment/create-environment-from-project\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://ona.com/docs/api-reference/generated/environment/create-environment-from-project#article\",\"headline\":\"Create Environment From Project\",\"name\":\"Create Environment From Project\",\"description\":\"Creates an environment from an existing project configuration and starts it.\",\"url\":\"https://ona.com/docs/api-reference/generated/environment/create-environment-from-project\",\"mainEntityOfPage\":{\"@id\":\"https://ona.com/docs/api-reference/generated/environment/create-environment-from-project#webpage\"},\"dateModified\":\"2026-08-02T13:20:36.964Z\",\"publisher\":{\"@id\":\"https://ona.com/#organization\"},\"isPartOf\":{\"@id\":\"https://ona.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ona Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ona Documentation","nav":{"global":null,"versions":[{"version":"Ona","default":true,"groups":[{"group":"Get Started","pages":[{"title":"Overview","href":"/ona/getting-started"},{"title":"Quickstart","href":"/ona/quickstart"},{"title":"Ona Changelog","sidebarTitle":"Changelog","href":"/changelog"}]},{"group":"Using Ona","pages":[{"group":"Projects","pages":[{"title":"Create your first project","href":"/ona/create-first-project"},{"title":"Project configuration","href":"/ona/projects/overview"},{"title":"Project visibility","href":"/ona/projects/project-sharing"},{"group":"Prebuilds","pages":[{"title":"Prebuilds","sidebarTitle":"Overview","href":"/ona/projects/prebuilds"},{"title":"Setup prebuilds","href":"/ona/projects/prebuilds-setup"},{"title":"Managing prebuilds","href":"/ona/projects/prebuilds-management"},{"title":"Warm Pools","href":"/ona/projects/warm-pools"}]}]},{"group":"Environments","pages":[{"title":"Development environments","sidebarTitle":"Overview","href":"/ona/environments/overview"},{"title":"Persistent storage","href":"/ona/environments/persistent-storage"},{"title":"Archive \u0026 auto-delete","href":"/ona/environments/archive-auto-delete"},{"group":"Launch \u0026 Sharing","pages":[{"title":"Browser extension","href":"/ona/integrations/browser-extension"},{"title":"Open from URL","href":"/ona/integrations/ona-url"},{"title":"README button","href":"/ona/integrations/readme-button"},{"title":"Built-in web browser","href":"/ona/integrations/web-browser"},{"title":"Port sharing","href":"/ona/integrations/ports"}]}]},{"group":"Agents","pages":[{"title":"Codex Agent","href":"/ona/agents/codex"},{"group":"Model access","pages":[{"title":"Model access","href":"/ona/agents/llm-providers/overview"},{"title":"OpenAI direct API","href":"/ona/agents/llm-providers/openai"},{"title":"AWS Bedrock (OpenAI API)","href":"/ona/agents/llm-providers/bedrock-openai"},{"title":"AWS Bedrock Mantle","href":"/ona/agents/llm-providers/bedrock-mantle"}]},{"title":"Bash commands","href":"/ona/bash-commands"},{"title":"GitHub, GitLab \u0026 Bitbucket tools","href":"/ona/agents/scm-tools"},{"title":"Image attachments","href":"/ona/agents/image-attachments"},{"title":"Mermaid diagrams","href":"/ona/agents/mermaid-diagrams"},{"title":"Using environments from external agents","sidebarTitle":"External agents","href":"/ona/environments/agent-environments"}]},{"group":"Automations","pages":[{"title":"Background automations","sidebarTitle":"Overview","href":"/ona/automations/overview"},{"title":"Create your first Automation","href":"/ona/create-first-automation"},{"title":"Configure Automations","href":"/ona/automations/configure-automations"},{"title":"Running an Automation","href":"/ona/automations/running-automations"},{"title":"Sharing Automations","href":"/ona/automations/sharing-automations"},{"title":"Automations in practice","href":"/ona/automations/automations-in-practice"},{"title":"Automations as Code","href":"/ona/automations/automations-as-code"},{"group":"Triggers \u0026 Webhooks","pages":[{"title":"Manual triggers","href":"/ona/automations/triggers/manual"},{"title":"Time-based triggers","href":"/ona/automations/triggers/timebased"},{"title":"Webhooks","href":"/ona/automations/webhooks"},{"title":"Pull request triggers","href":"/ona/automations/triggers/pullrequest"}]},{"title":"Report step","href":"/ona/automations/report-step"},{"title":"Automation guardrails","href":"/ona/automations/guardrails"},{"title":"Plans and limits","href":"/ona/automations/plans-and-limits"},{"title":"Troubleshooting automations","href":"/ona/automations/troubleshooting"}]},{"group":"Editors","pages":[{"title":"Supported editors","href":"/ona/editors/overview"},{"title":"Visual Studio Code","href":"/ona/editors/vscode"},{"title":"VS Code browser","href":"/ona/editors/vscode-browser"},{"title":"Cursor","href":"/ona/editors/cursor"},{"title":"Windsurf","href":"/ona/editors/windsurf"},{"title":"JetBrains","href":"/ona/editors/jetbrains"},{"title":"Zed","href":"/ona/editors/zed"}]}]},{"group":"Configuration","pages":[{"group":"Development Environments","pages":[{"title":"Set up your first environment","href":"/ona/configuration/devcontainer/getting-started"},{"title":"Container configuration","href":"/ona/configuration/devcontainer/overview"},{"title":"Optimize startup times","href":"/ona/configuration/devcontainer/optimizing-startup-times"},{"title":"Startup tasks \u0026 services","href":"/ona/configuration/tasks-and-services/overview"},{"title":"Dynamic configuration","href":"/ona/configuration/tasks-and-services/generating-tasks-and-services"},{"title":"Task \u0026 service examples","href":"/ona/configuration/tasks-and-services/examples"},{"title":"Dotfiles","href":"/ona/configuration/dotfiles/overview"},{"title":"Multi-repository environments","href":"/ona/configuration/multi-repository"}]},{"group":"Agent Configuration","pages":[{"title":"Teach agents your codebase","href":"/ona/agents-md"},{"title":"Skills","href":"/ona/agents/skills"},{"title":"Organization-level skills","href":"/ona/skills"}]},{"group":"Source Control","pages":[{"title":"Git providers","href":"/ona/source-control/overview"},{"title":"GitHub","href":"/ona/source-control/github"},{"title":"GitLab","href":"/ona/source-control/gitlab"},{"title":"Bitbucket Cloud","href":"/ona/source-control/bitbucket"},{"title":"Azure DevOps","href":"/ona/source-control/azuredevops"}]},{"group":"Secrets","pages":[{"title":"How secrets work","sidebarTitle":"Overview","href":"/ona/configuration/secrets/overview"},{"title":"Add your first secret","href":"/ona/add-first-secret"},{"title":"User secrets","href":"/ona/configuration/secrets/user-secrets"},{"title":"Project secrets","href":"/ona/projects/project-secrets"},{"title":"Organization secrets","href":"/ona/organizations/organization-secrets"},{"title":"Environment variables","href":"/ona/configuration/secrets/environment-variables"},{"title":"File secrets","href":"/ona/configuration/secrets/files"},{"title":"Container registry","href":"/ona/configuration/secrets/container-registry-secret"}]},{"group":"Integrations","pages":[{"title":"Integrations","sidebarTitle":"Overview","href":"/ona/integrations/overview"},{"title":"MCP servers","href":"/ona/mcp"},{"title":"Linear","href":"/ona/integrations/configure-linear"},{"title":"Slack","href":"/ona/integrations/configure-slack"},{"title":"Atlassian","href":"/ona/integrations/configure-atlassian"},{"title":"Notion","href":"/ona/integrations/configure-notion"},{"title":"Sentry","href":"/ona/integrations/configure-sentry"},{"title":"Granola","href":"/ona/integrations/configure-granola"},{"title":"Codex","href":"/ona/integrations/configure-codex"},{"title":"GitHub","href":"/ona/integrations/configure-github"},{"title":"Mention Ona on a pull request","href":"/ona/integrations/github-pr-mentions"}]},{"group":"Programmatic Access","pages":[{"title":"CLI","href":"/ona/integrations/cli"},{"title":"Ona SDK","href":"/ona/integrations/sdk"},{"title":"Terraform provider","href":"/ona/integrations/terraform-provider"}]}]},{"group":"Administration \u0026 Security","pages":[{"group":"Organizations","pages":[{"title":"Join an organization","href":"/ona/organizations/create-organization"},{"title":"Manage organization","sidebarTitle":"Manage","href":"/ona/organizations/manage-organization"},{"title":"Team management","href":"/ona/organizations/overview"},{"title":"Sharing resources","href":"/ona/organizations/sharing-resources"},{"group":"Insights","pages":[{"title":"Insights","href":"/ona/organizations/insights"},{"title":"Insights API","href":"/ona/organizations/insights-api"}]},{"title":"Home notice","href":"/ona/organizations/announcement-banner"},{"title":"Terms of Service","href":"/ona/organizations/terms-of-service"}]},{"group":"Members \u0026 Groups","pages":[{"title":"Manage members","href":"/ona/organizations/manage-members"},{"title":"Manage groups","href":"/ona/organizations/groups"},{"title":"Manage teams","href":"/ona/organizations/teams"},{"title":"Organization roles","href":"/ona/organizations/organization-roles"}]},{"group":"Policies","pages":[{"title":"Organization policies","href":"/ona/organizations/policies/overview"},{"title":"Environment creation","href":"/ona/organizations/policies/environment-creation"},{"title":"Auto-stop timeout","href":"/ona/organizations/policies/environment-timeout"},{"title":"Maximum environment lifetime","href":"/ona/organizations/policies/environment-lifetime"},{"title":"Archive timing","href":"/ona/organizations/policies/archive-timing"},{"title":"Web browser policy","href":"/ona/organizations/policies/web-browser"},{"title":"Security agents","href":"/ona/organizations/policies/security-agents"},{"title":"Restrict account creation to SCIM","href":"/ona/organizations/policies/scim-account-restriction"}]},{"group":"Guardrails","pages":[{"title":"Guardrails","sidebarTitle":"Overview","href":"/ona/guardrails/overview"},{"group":"Veto","pages":[{"title":"Veto","sidebarTitle":"Overview","href":"/ona/guardrails/veto"},{"title":"Veto Exec executable policy","href":"/ona/organizations/policies/executable-deny-list"}]},{"title":"Audit logs","href":"/ona/audit-logs/overview"},{"title":"Command deny list","href":"/ona/command-deny-list"}]},{"group":"Identity","pages":[{"group":"SSO","pages":[{"title":"Single sign-on (SSO)","href":"/ona/sso/overview"},{"title":"Okta","href":"/ona/sso/okta"},{"title":"Microsoft Entra ID","href":"/ona/sso/entra"},{"title":"Google","href":"/ona/sso/google"},{"title":"GitLab SSO","href":"/ona/sso/gitlab"},{"title":"Amazon Cognito","href":"/ona/sso/cognito"},{"title":"PingFederate","href":"/ona/sso/pingfederate"}]},{"title":"SCIM Provisioning","href":"/ona/scim/overview"},{"title":"OpenID Connect (OIDC)","href":"/ona/configuration/oidc"},{"title":"AWS (V2)","href":"/ona/integrations/aws"},{"title":"Service accounts","href":"/ona/organizations/service-accounts"},{"title":"Personal access tokens","href":"/ona/integrations/personal-access-token"}]}]},{"group":"Infrastructure","pages":[{"title":"Runner infrastructure","href":"/ona/runners/overview"},{"title":"Ona Cloud","href":"/ona/runners/ona-cloud"},{"group":"AWS","pages":[{"title":"AWS runners","sidebarTitle":"Overview","href":"/ona/runners/aws/overview"},{"title":"Setup AWS runner","href":"/ona/runners/aws/setup"},{"title":"Networking","sidebarTitle":"Networking","href":"/ona/runners/aws/networking"},{"title":"Capacity planning","href":"/ona/runners/aws/capacity-planning"},{"title":"Costs \u0026 budgeting","href":"/ona/runners/aws/aws-runner-costs"},{"title":"Base snapshots for AWS runners","href":"/ona/runners/aws/base-snapshots"},{"title":"AWS access requirements","href":"/ona/runners/aws/detailed-access-requirements"},{"title":"Environment classes","href":"/ona/runners/aws/environment-classes"},{"title":"Regions and latency","href":"/ona/runners/aws/aws-regions"},{"title":"Upgrade runner","sidebarTitle":"Upgrade runner","href":"/ona/runners/aws/update-runner"},{"title":"Troubleshooting AWS runners","href":"/ona/runners/aws/troubleshooting-runners"},{"title":"Zscaler troubleshooting","href":"/ona/runners/aws/troubleshooting-zscaler"}]},{"group":"GCP","pages":[{"title":"GCP runners","href":"/ona/runners/gcp/overview"},{"title":"Setup GCP runner","href":"/ona/runners/gcp/setup"},{"title":"Reference Architectures","href":"/ona/runners/gcp/reference-architectures"},{"title":"GCP access requirements","href":"/ona/runners/gcp/detailed-access-requirements"},{"title":"Using private Google Artifact Registry images","href":"/ona/runners/gcp/private-gar-images"},{"title":"Costs \u0026 Budgeting for GCP Runner","href":"/ona/runners/gcp/gcp-runner-costs"},{"title":"Upgrade and delete runner","sidebarTitle":"Upgrade and delete","href":"/ona/runners/gcp/update-runner"},{"title":"Alerts and Dashboards","href":"/ona/runners/gcp/alerts-and-dashboards"},{"title":"Troubleshooting GCP runners","href":"/ona/runners/gcp/troubleshooting-runners"}]},{"group":"Operations \u0026 Networking","pages":[{"title":"Custom domain","href":"/ona/custom-domain"},{"title":"Automated updates","href":"/ona/runners/runner-updates"},{"title":"Configuring repository access","href":"/ona/runners/configuring-repository-access"},{"title":"Dual disk environments","href":"/ona/runners/dual-disk"},{"title":"Dev container image cache","href":"/ona/runners/devcontainer-image-cache"},{"title":"Ona managed metrics","href":"/ona/runners/managed-metrics"},{"title":"Custom metrics pipeline","href":"/ona/runners/monitoring-and-metrics"}]}]},{"group":"Billing","pages":[{"title":"Billing","sidebarTitle":"Overview","href":"/ona/billing/overview"},{"group":"Cost \u0026 Budgets","pages":[{"title":"Cost \u0026 Budgets","href":"/ona/billing/usage"},{"title":"User budgets","href":"/ona/billing/user-budgets"},{"title":"AI cost usage API","href":"/ona/billing/cost-usage-api"},{"title":"Ona Intelligence usage API","href":"/ona/billing/ona-intelligence-usage-api"}]}]},{"group":"Learn","pages":[{"title":"How Ona Works","href":"/ona/understanding/how-ona-works"},{"title":"Core Components","href":"/ona/understanding/core-components"},{"title":"Architecture Overview","href":"/ona/understanding/architecture"},{"title":"Best practices","href":"/ona/best-practices"},{"title":"Workflows","href":"/ona/workflows"}]},{"group":"Reference","pages":[{"group":"API Reference","pages":[{"title":"API Reference","href":"/api-reference"},{"title":"Migrate from SDK versions 0.x","href":"/api-reference/sdk-migration"},{"group":"Services","pages":[{"group":"Accounts","pages":[{"title":"Accounts","href":"/api-reference/generated/account/overview"},{"title":"Block Account","href":"/api-reference/generated/account/block-account"},{"title":"Delete Account","href":"/api-reference/generated/account/delete-account"},{"title":"Get Account","href":"/api-reference/generated/account/get-account"},{"title":"Get SSO Login URL","href":"/api-reference/generated/account/get-sso-login-url"},{"title":"List Joinable Organizations","href":"/api-reference/generated/account/list-joinable-organizations"},{"title":"List Login Providers","href":"/api-reference/generated/account/list-login-providers"},{"title":"List SSO Logins","href":"/api-reference/generated/account/list-sso-logins"},{"title":"Unblock Account","href":"/api-reference/generated/account/unblock-account"}]},{"group":"Agents","pages":[{"title":"Agents","href":"/api-reference/generated/agent/overview"},{"title":"Create Agent Execution Conversation Token","href":"/api-reference/generated/agent/create-agent-execution-conversation-token"},{"title":"Create Prompt","href":"/api-reference/generated/agent/create-prompt"},{"title":"Delete Agent Execution","href":"/api-reference/generated/agent/delete-agent-execution"},{"title":"Delete Prompt","href":"/api-reference/generated/agent/delete-prompt"},{"title":"Get Agent Execution","href":"/api-reference/generated/agent/get-agent-execution"},{"title":"Get Prompt","href":"/api-reference/generated/agent/get-prompt"},{"title":"List Agent Executions","href":"/api-reference/generated/agent/list-agent-executions"},{"title":"List Prompts","href":"/api-reference/generated/agent/list-prompts"},{"title":"Send To Agent Execution","href":"/api-reference/generated/agent/send-to-agent-execution"},{"title":"Start Agent","href":"/api-reference/generated/agent/start-agent"},{"title":"Stop Agent Execution","href":"/api-reference/generated/agent/stop-agent-execution"},{"title":"Update Prompt","href":"/api-reference/generated/agent/update-prompt"}]},{"group":"Billing","pages":[{"title":"Billing","href":"/api-reference/generated/billing/overview"},{"title":"Create Team Credit Allocation","href":"/api-reference/generated/billing/create-team-credit-allocation"},{"title":"Delete Enterprise AI User Budget Policy","href":"/api-reference/generated/billing/delete-enterprise-ai-user-budget-policy"},{"title":"Delete Team Credit Allocation","href":"/api-reference/generated/billing/delete-team-credit-allocation"},{"title":"Get Credit Usage Export","href":"/api-reference/generated/billing/get-credit-usage-export"},{"title":"Get Credit Usage Report","href":"/api-reference/generated/billing/get-credit-usage-report"},{"title":"Get Cumulative Credit Usage","href":"/api-reference/generated/billing/get-cumulative-credit-usage"},{"title":"Get Enterprise AI Usage Summary","href":"/api-reference/generated/billing/get-enterprise-ai-usage-summary"},{"title":"Get Enterprise AI Usage Time Series","href":"/api-reference/generated/billing/get-enterprise-ai-usage-time-series"},{"title":"Get Enterprise AI User Budget Policy","href":"/api-reference/generated/billing/get-enterprise-ai-user-budget-policy"},{"title":"Get Team Credit Allocation","href":"/api-reference/generated/billing/get-team-credit-allocation"},{"title":"List Enterprise AI Team Usage","href":"/api-reference/generated/billing/list-enterprise-ai-team-usage"},{"title":"List Enterprise AI User Usage","href":"/api-reference/generated/billing/list-enterprise-ai-user-usage"},{"title":"List Enterprise User Credit Usage","href":"/api-reference/generated/billing/list-enterprise-user-credit-usage"},{"title":"Set Enterprise AI User Budget Policy","href":"/api-reference/generated/billing/set-enterprise-ai-user-budget-policy"},{"title":"Update Team Credit Allocation","href":"/api-reference/generated/billing/update-team-credit-allocation"}]},{"group":"Editors","pages":[{"title":"Editors","href":"/api-reference/generated/editor/overview"},{"title":"Get Editor","href":"/api-reference/generated/editor/get-editor"},{"title":"List Editors","href":"/api-reference/generated/editor/list-editors"},{"title":"Resolve Editor URL","href":"/api-reference/generated/editor/resolve-editor-url"}]},{"group":"Environment Automations","pages":[{"title":"Environment Automations","href":"/api-reference/generated/environment-automation/overview"},{"title":"Create Service","href":"/api-reference/generated/environment-automation/create-service"},{"title":"Create Task","href":"/api-reference/generated/environment-automation/create-task"},{"title":"Delete Service","href":"/api-reference/generated/environment-automation/delete-service"},{"title":"Delete Task","href":"/api-reference/generated/environment-automation/delete-task"},{"title":"Get Service","href":"/api-reference/generated/environment-automation/get-service"},{"title":"Get Task","href":"/api-reference/generated/environment-automation/get-task"},{"title":"Get Task Execution","href":"/api-reference/generated/environment-automation/get-task-execution"},{"title":"List Services","href":"/api-reference/generated/environment-automation/list-services"},{"title":"List Task Executions","href":"/api-reference/generated/environment-automation/list-task-executions"},{"title":"List Tasks","href":"/api-reference/generated/environment-automation/list-tasks"},{"title":"Start Service","href":"/api-reference/generated/environment-automation/start-service"},{"title":"Start Task","href":"/api-reference/generated/environment-automation/start-task"},{"title":"Stop Service","href":"/api-reference/generated/environment-automation/stop-service"},{"title":"Stop Task Execution","href":"/api-reference/generated/environment-automation/stop-task-execution"},{"title":"Update Service","href":"/api-reference/generated/environment-automation/update-service"},{"title":"Update Task","href":"/api-reference/generated/environment-automation/update-task"},{"title":"Upsert Automations File","href":"/api-reference/generated/environment-automation/upsert-automations-file"}]},{"group":"Environments","pages":[{"title":"Environments","href":"/api-reference/generated/environment/overview"},{"title":"Allow Port Access","href":"/api-reference/generated/environment/allow-port-access"},{"title":"Archive Environment","href":"/api-reference/generated/environment/archive-environment"},{"title":"Create Environment","href":"/api-reference/generated/environment/create-environment"},{"title":"Create Environment Access Token","description":"Creates an access token for the environment.","href":"/api-reference/generated/environment/create-environment-access-token"},{"title":"Create Environment From Project","href":"/api-reference/generated/environment/create-environment-from-project"},{"title":"Create Environment Logs Token","description":"Creates an access token for retrieving environment logs.","href":"/api-reference/generated/environment/create-environment-logs-token"},{"title":"Create Port Access Token","href":"/api-reference/generated/environment/create-port-access-token"},{"title":"Delete Environment","href":"/api-reference/generated/environment/delete-environment"},{"title":"Get Environment","href":"/api-reference/generated/environment/get-environment"},{"title":"List Environment Classes","href":"/api-reference/generated/environment/list-environment-classes"},{"title":"List Environments","href":"/api-reference/generated/environment/list-environments"},{"title":"Mark Environment Active","href":"/api-reference/generated/environment/mark-environment-active"},{"title":"Start Environment","href":"/api-reference/generated/environment/start-environment"},{"title":"Stop Environment","href":"/api-reference/generated/environment/stop-environment"},{"title":"Unarchive Environment","href":"/api-reference/generated/environment/unarchive-environment"},{"title":"Update Environment","href":"/api-reference/generated/environment/update-environment"}]},{"group":"Events","pages":[{"title":"Events","href":"/api-reference/generated/event/overview"},{"title":"Get Audit Log","href":"/api-reference/generated/event/get-audit-log"},{"title":"List Audit Logs","href":"/api-reference/generated/event/list-audit-logs"},{"title":"Watch Events","href":"/api-reference/generated/event/watch-events"}]},{"group":"Gateways","pages":[{"title":"Gateways","href":"/api-reference/generated/gateway/overview"},{"title":"List Gateways","href":"/api-reference/generated/gateway/list-gateways"}]},{"group":"Groups","pages":[{"title":"Groups","href":"/api-reference/generated/group/overview"},{"title":"Create Group","href":"/api-reference/generated/group/create-group"},{"title":"Create Membership","href":"/api-reference/generated/group/create-membership"},{"title":"Create Role Assignment","href":"/api-reference/generated/group/create-role-assignment"},{"title":"Delete Group","href":"/api-reference/generated/group/delete-group"},{"title":"Delete Membership","href":"/api-reference/generated/group/delete-membership"},{"title":"Delete Role Assignment","href":"/api-reference/generated/group/delete-role-assignment"},{"title":"Get Group","href":"/api-reference/generated/group/get-group"},{"title":"Get Membership","href":"/api-reference/generated/group/get-membership"},{"title":"List Groups","href":"/api-reference/generated/group/list-groups"},{"title":"List Memberships","href":"/api-reference/generated/group/list-memberships"},{"title":"List Role Assignments","href":"/api-reference/generated/group/list-role-assignments"},{"title":"Share Resource With Principal","href":"/api-reference/generated/group/share-resource-with-principal"},{"title":"Unshare Resource With Principal","href":"/api-reference/generated/group/unshare-resource-with-principal"},{"title":"Update Group","href":"/api-reference/generated/group/update-group"}]},{"group":"Identity","pages":[{"title":"Identity","href":"/api-reference/generated/identity/overview"},{"title":"Exchange Token","href":"/api-reference/generated/identity/exchange-token"},{"title":"Get Authenticated Identity","href":"/api-reference/generated/identity/get-authenticated-identity"},{"title":"Get ID Token","href":"/api-reference/generated/identity/get-id-token"}]},{"group":"Insights","pages":[{"title":"Insights","href":"/api-reference/generated/insights/overview"},{"title":"Disable Project Insights","href":"/api-reference/generated/insights/disable-project-insights"},{"title":"Enable Project Insights","href":"/api-reference/generated/insights/enable-project-insights"},{"title":"Get Insights Summary","href":"/api-reference/generated/insights/get-insights-summary"},{"title":"Get Project Insights Status","href":"/api-reference/generated/insights/get-project-insights-status"}]},{"group":"Integrations","pages":[{"title":"Integrations","href":"/api-reference/generated/integration/overview"},{"title":"Create Integration","href":"/api-reference/generated/integration/create-integration"},{"title":"Delete Integration","href":"/api-reference/generated/integration/delete-integration"},{"title":"Get Integration","href":"/api-reference/generated/integration/get-integration"},{"title":"Get Integration Definition","href":"/api-reference/generated/integration/get-integration-definition"},{"title":"List Integration Definitions","href":"/api-reference/generated/integration/list-integration-definitions"},{"title":"List Integrations","href":"/api-reference/generated/integration/list-integrations"},{"title":"Update Integration","href":"/api-reference/generated/integration/update-integration"},{"title":"Validate Integration","href":"/api-reference/generated/integration/validate-integration"}]},{"group":"Notifications","pages":[{"title":"Notifications","href":"/api-reference/generated/notification/overview"},{"title":"Delete Notifications","href":"/api-reference/generated/notification/delete-notifications"},{"title":"Get Notification","href":"/api-reference/generated/notification/get-notification"},{"title":"List Notifications","href":"/api-reference/generated/notification/list-notifications"},{"title":"Mark Notifications Read","href":"/api-reference/generated/notification/mark-notifications-read"},{"title":"Mark Notifications Unread","href":"/api-reference/generated/notification/mark-notifications-unread"}]},{"group":"Organizations","pages":[{"title":"Organizations","href":"/api-reference/generated/organization/overview"},{"title":"Accept Terms Of Service","href":"/api-reference/generated/organization/accept-terms-of-service"},{"title":"Create Custom Domain","href":"/api-reference/generated/organization/create-custom-domain"},{"title":"Create Domain Verification","href":"/api-reference/generated/organization/create-domain-verification"},{"title":"Create Organization","href":"/api-reference/generated/organization/create-organization"},{"title":"Create Organization Invite","href":"/api-reference/generated/organization/create-organization-invite"},{"title":"Create SCIM Configuration","href":"/api-reference/generated/organization/create-scim-configuration"},{"title":"Create SSO Configuration","href":"/api-reference/generated/organization/create-sso-configuration"},{"title":"Delete Custom Domain","href":"/api-reference/generated/organization/delete-custom-domain"},{"title":"Delete Domain Verification","href":"/api-reference/generated/organization/delete-domain-verification"},{"title":"Delete Organization","href":"/api-reference/generated/organization/delete-organization"},{"title":"Delete SCIM Configuration","href":"/api-reference/generated/organization/delete-scim-configuration"},{"title":"Delete SSO Configuration","href":"/api-reference/generated/organization/delete-sso-configuration"},{"title":"Get Announcement Banner","href":"/api-reference/generated/organization/get-announcement-banner"},{"title":"Get Custom Domain","href":"/api-reference/generated/organization/get-custom-domain"},{"title":"Get Domain Verification","href":"/api-reference/generated/organization/get-domain-verification"},{"title":"Get OIDC Config","href":"/api-reference/generated/organization/get-oidc-config"},{"title":"Get Organization","href":"/api-reference/generated/organization/get-organization"},{"title":"Get Organization Invite","href":"/api-reference/generated/organization/get-organization-invite"},{"title":"Get Organization Invite Summary","href":"/api-reference/generated/organization/get-organization-invite-summary"},{"title":"Get Organization Policies","href":"/api-reference/generated/organization/get-organization-policies"},{"title":"Get SCIM Configuration","href":"/api-reference/generated/organization/get-scim-configuration"},{"title":"Get SSO Configuration","href":"/api-reference/generated/organization/get-sso-configuration"},{"title":"Get Terms Of Service","href":"/api-reference/generated/organization/get-terms-of-service"},{"title":"Get Terms Of Service Acceptances Export","href":"/api-reference/generated/organization/get-terms-of-service-acceptances-export"},{"title":"Join Organization","href":"/api-reference/generated/organization/join-organization"},{"title":"Leave Organization","href":"/api-reference/generated/organization/leave-organization"},{"title":"List Domain Verifications","href":"/api-reference/generated/organization/list-domain-verifications"},{"title":"List Members","href":"/api-reference/generated/organization/list-members"},{"title":"List SCIM Configurations","href":"/api-reference/generated/organization/list-scim-configurations"},{"title":"List SSO Configurations","href":"/api-reference/generated/organization/list-sso-configurations"},{"title":"List Terms Of Service Acceptances","href":"/api-reference/generated/organization/list-terms-of-service-acceptances"},{"title":"List Terms Of Service Versions","href":"/api-reference/generated/organization/list-terms-of-service-versions"},{"title":"Regenerate SCIM Token","href":"/api-reference/generated/organization/regenerate-scim-token"},{"title":"Set Role","href":"/api-reference/generated/organization/set-role"},{"title":"Set Stripe Customer ID","href":"/api-reference/generated/organization/set-stripe-customer-id"},{"title":"Update Announcement Banner","href":"/api-reference/generated/organization/update-announcement-banner"},{"title":"Update Custom Domain","href":"/api-reference/generated/organization/update-custom-domain"},{"title":"Update OIDC Config","href":"/api-reference/generated/organization/update-oidc-config"},{"title":"Update Organization","href":"/api-reference/generated/organization/update-organization"},{"title":"Update Organization Policies","href":"/api-reference/generated/organization/update-organization-policies"},{"title":"Update SCIM Configuration","href":"/api-reference/generated/organization/update-scim-configuration"},{"title":"Update SSO Configuration","href":"/api-reference/generated/organization/update-sso-configuration"},{"title":"Update Terms Of Service","href":"/api-reference/generated/organization/update-terms-of-service"},{"title":"Verify Domain","href":"/api-reference/generated/organization/verify-domain"}]},{"group":"Prebuilds","pages":[{"title":"Prebuilds","href":"/api-reference/generated/prebuild/overview"},{"title":"Cancel Prebuild","href":"/api-reference/generated/prebuild/cancel-prebuild"},{"title":"Create Prebuild","href":"/api-reference/generated/prebuild/create-prebuild"},{"title":"Create Prebuild Logs Token","href":"/api-reference/generated/prebuild/create-prebuild-logs-token"},{"title":"Create Warm Pool","href":"/api-reference/generated/prebuild/create-warm-pool"},{"title":"Delete Prebuild","href":"/api-reference/generated/prebuild/delete-prebuild"},{"title":"Delete Warm Pool","href":"/api-reference/generated/prebuild/delete-warm-pool"},{"title":"Get Prebuild","href":"/api-reference/generated/prebuild/get-prebuild"},{"title":"Get Warm Pool","href":"/api-reference/generated/prebuild/get-warm-pool"},{"title":"List Prebuilds","href":"/api-reference/generated/prebuild/list-prebuilds"},{"title":"List Warm Pools","href":"/api-reference/generated/prebuild/list-warm-pools"},{"title":"Update Warm Pool","href":"/api-reference/generated/prebuild/update-warm-pool"}]},{"group":"Projects","pages":[{"title":"Projects","href":"/api-reference/generated/project/overview"},{"title":"Create Project","href":"/api-reference/generated/project/create-project"},{"title":"Create Project From Environment","href":"/api-reference/generated/project/create-project-from-environment"},{"title":"Create Project Policy","href":"/api-reference/generated/project/create-project-policy"},{"title":"Create Projects","href":"/api-reference/generated/project/create-projects"},{"title":"Delete Project","href":"/api-reference/generated/project/delete-project"},{"title":"Delete Project Policy","href":"/api-reference/generated/project/delete-project-policy"},{"title":"Delete Projects","href":"/api-reference/generated/project/delete-projects"},{"title":"Get Project","href":"/api-reference/generated/project/get-project"},{"title":"List Project Environment Classes","href":"/api-reference/generated/project/list-project-environment-classes"},{"title":"List Project Policies","href":"/api-reference/generated/project/list-project-policies"},{"title":"List Projects","href":"/api-reference/generated/project/list-projects"},{"title":"Update Project","href":"/api-reference/generated/project/update-project"},{"title":"Update Project Environment Classes","href":"/api-reference/generated/project/update-project-environment-classes"},{"title":"Update Project Policy","href":"/api-reference/generated/project/update-project-policy"},{"title":"Update Projects","href":"/api-reference/generated/project/update-projects"}]},{"group":"Runner Configurations","pages":[{"title":"Runner Configurations","href":"/api-reference/generated/runner-configuration/overview"},{"title":"Create Environment Class","href":"/api-reference/generated/runner-configuration/create-environment-class"},{"title":"Create Host Authentication Token","href":"/api-reference/generated/runner-configuration/create-host-authentication-token"},{"title":"Create LLM Integration","href":"/api-reference/generated/runner-configuration/create-llm-integration"},{"title":"Create SCM Integration","href":"/api-reference/generated/runner-configuration/create-scm-integration"},{"title":"Delete Host Authentication Token","href":"/api-reference/generated/runner-configuration/delete-host-authentication-token"},{"title":"Delete LLM Integration","href":"/api-reference/generated/runner-configuration/delete-llm-integration"},{"title":"Delete SCM Integration","href":"/api-reference/generated/runner-configuration/delete-scm-integration"},{"title":"Get Environment Class","href":"/api-reference/generated/runner-configuration/get-environment-class"},{"title":"Get Host Authentication Token","href":"/api-reference/generated/runner-configuration/get-host-authentication-token"},{"title":"Get LLM Integration","href":"/api-reference/generated/runner-configuration/get-llm-integration"},{"title":"Get Runner Configuration Schema","href":"/api-reference/generated/runner-configuration/get-runner-configuration-schema"},{"title":"Get SCM Integration","href":"/api-reference/generated/runner-configuration/get-scm-integration"},{"title":"List Environment Classes","href":"/api-reference/generated/runner-configuration/list-environment-classes"},{"title":"List Host Authentication Tokens","href":"/api-reference/generated/runner-configuration/list-host-authentication-tokens"},{"title":"List LLM Integrations","href":"/api-reference/generated/runner-configuration/list-llm-integrations"},{"title":"List SCM Integrations","href":"/api-reference/generated/runner-configuration/list-scm-integrations"},{"title":"Update Environment Class","href":"/api-reference/generated/runner-configuration/update-environment-class"},{"title":"Update Host Authentication Token","href":"/api-reference/generated/runner-configuration/update-host-authentication-token"},{"title":"Update LLM Integration","href":"/api-reference/generated/runner-configuration/update-llm-integration"},{"title":"Update SCM Integration","href":"/api-reference/generated/runner-configuration/update-scm-integration"},{"title":"Validate Runner Configuration","href":"/api-reference/generated/runner-configuration/validate-runner-configuration"}]},{"group":"Runners","pages":[{"title":"Runners","href":"/api-reference/generated/runner/overview"},{"title":"Check Authentication For Host","href":"/api-reference/generated/runner/check-authentication-for-host"},{"title":"Check Repository Access","href":"/api-reference/generated/runner/check-repository-access"},{"title":"Create Runner","href":"/api-reference/generated/runner/create-runner"},{"title":"Create Runner Logs Token","href":"/api-reference/generated/runner/create-runner-logs-token"},{"title":"Create Runner Policy","href":"/api-reference/generated/runner/create-runner-policy"},{"title":"Create Runner Token","href":"/api-reference/generated/runner/create-runner-token"},{"title":"Delete Runner","href":"/api-reference/generated/runner/delete-runner"},{"title":"Delete Runner Policy","href":"/api-reference/generated/runner/delete-runner-policy"},{"title":"Get Runner","href":"/api-reference/generated/runner/get-runner"},{"title":"List Runner Policies","href":"/api-reference/generated/runner/list-runner-policies"},{"title":"List Runners","href":"/api-reference/generated/runner/list-runners"},{"title":"List SCM Organizations","href":"/api-reference/generated/runner/list-scm-organizations"},{"title":"Parse Context URL","href":"/api-reference/generated/runner/parse-context-url"},{"title":"Search Repositories","href":"/api-reference/generated/runner/search-repositories"},{"title":"Update Runner","href":"/api-reference/generated/runner/update-runner"},{"title":"Update Runner Policy","href":"/api-reference/generated/runner/update-runner-policy"}]},{"group":"Secrets","pages":[{"title":"Secrets","href":"/api-reference/generated/secret/overview"},{"title":"Create Secret","href":"/api-reference/generated/secret/create-secret"},{"title":"Delete Secret","href":"/api-reference/generated/secret/delete-secret"},{"title":"Get Secret Value","href":"/api-reference/generated/secret/get-secret-value"},{"title":"List Secrets","href":"/api-reference/generated/secret/list-secrets"},{"title":"Update Secret Value","href":"/api-reference/generated/secret/update-secret-value"}]},{"group":"Security","pages":[{"title":"Security","href":"/api-reference/generated/security/overview"},{"title":"Create Security Policy","href":"/api-reference/generated/security/create-security-policy"},{"title":"Delete Security Policy","href":"/api-reference/generated/security/delete-security-policy"},{"title":"Get Security Policy","href":"/api-reference/generated/security/get-security-policy"},{"title":"List Security Policies","href":"/api-reference/generated/security/list-security-policies"},{"title":"Update Security Policy","href":"/api-reference/generated/security/update-security-policy"}]},{"group":"Service Accounts","pages":[{"title":"Service Accounts","href":"/api-reference/generated/service-account/overview"},{"title":"Create Service Account","href":"/api-reference/generated/service-account/create-service-account"},{"title":"Create Service Account Access Token","href":"/api-reference/generated/service-account/create-service-account-access-token"},{"title":"Create Service Account Token","href":"/api-reference/generated/service-account/create-service-account-token"},{"title":"Delete Service Account","href":"/api-reference/generated/service-account/delete-service-account"},{"title":"Delete Service Account Token","href":"/api-reference/generated/service-account/delete-service-account-token"},{"title":"Get Service Account","href":"/api-reference/generated/service-account/get-service-account"},{"title":"Get Service Account Token","href":"/api-reference/generated/service-account/get-service-account-token"},{"title":"List Service Account Tokens","href":"/api-reference/generated/service-account/list-service-account-tokens"},{"title":"List Service Accounts","href":"/api-reference/generated/service-account/list-service-accounts"},{"title":"Update Service Account","href":"/api-reference/generated/service-account/update-service-account"}]},{"group":"Teams","pages":[{"title":"Teams","href":"/api-reference/generated/team/overview"},{"title":"Add Team Member","href":"/api-reference/generated/team/add-team-member"},{"title":"Create Team","href":"/api-reference/generated/team/create-team"},{"title":"Delete Team","href":"/api-reference/generated/team/delete-team"},{"title":"Get Team","href":"/api-reference/generated/team/get-team"},{"title":"List Team Members","href":"/api-reference/generated/team/list-team-members"},{"title":"List Teams","href":"/api-reference/generated/team/list-teams"},{"title":"Remove Team Member","href":"/api-reference/generated/team/remove-team-member"},{"title":"Update Team","href":"/api-reference/generated/team/update-team"}]},{"group":"Usage","pages":[{"title":"Usage","href":"/api-reference/generated/usage/overview"},{"title":"Get Active Environments Count","href":"/api-reference/generated/usage/get-active-environments-count"},{"title":"Get Active Environments Time Series","href":"/api-reference/generated/usage/get-active-environments-time-series"},{"title":"Get Active Users Count","href":"/api-reference/generated/usage/get-active-users-count"},{"title":"Get Active Users Time Series","href":"/api-reference/generated/usage/get-active-users-time-series"},{"title":"Get Adoption Usage Summary","href":"/api-reference/generated/usage/get-adoption-usage-summary"},{"title":"Get Agent Trace Summary","href":"/api-reference/generated/usage/get-agent-trace-summary"},{"title":"Get Agent Trace Time Series","href":"/api-reference/generated/usage/get-agent-trace-time-series"},{"title":"Get Co Author Summary","href":"/api-reference/generated/usage/get-co-author-summary"},{"title":"Get Co Author Time Series","href":"/api-reference/generated/usage/get-co-author-time-series"},{"title":"Get Environment Runtime","href":"/api-reference/generated/usage/get-environment-runtime"},{"title":"Get Environment Runtime Time Series","href":"/api-reference/generated/usage/get-environment-runtime-time-series"},{"title":"Get Environment Sessions Time Series","href":"/api-reference/generated/usage/get-environment-sessions-time-series"},{"title":"Get Pr Summary","href":"/api-reference/generated/usage/get-pr-summary"},{"title":"Get Pr Time Series","href":"/api-reference/generated/usage/get-pr-time-series"},{"title":"Get Top Active Users","href":"/api-reference/generated/usage/get-top-active-users"},{"title":"Get Top Environment Classes","href":"/api-reference/generated/usage/get-top-environment-classes"},{"title":"Get Top Projects","href":"/api-reference/generated/usage/get-top-projects"},{"title":"List Environment Usage Records","href":"/api-reference/generated/usage/list-environment-usage-records"}]},{"group":"Users","pages":[{"title":"Users","href":"/api-reference/generated/user/overview"},{"title":"Create Personal Access Token","href":"/api-reference/generated/user/create-personal-access-token"},{"title":"Delete Personal Access Token","href":"/api-reference/generated/user/delete-personal-access-token"},{"title":"Delete Preference","href":"/api-reference/generated/user/delete-preference"},{"title":"Delete User","href":"/api-reference/generated/user/delete-user"},{"title":"Get Authenticated User","href":"/api-reference/generated/user/get-authenticated-user"},{"title":"Get Dotfiles Configuration","href":"/api-reference/generated/user/get-dotfiles-configuration"},{"title":"Get Personal Access Token","href":"/api-reference/generated/user/get-personal-access-token"},{"title":"Get Preference","href":"/api-reference/generated/user/get-preference"},{"title":"Get User","href":"/api-reference/generated/user/get-user"},{"title":"List Personal Access Tokens","href":"/api-reference/generated/user/list-personal-access-tokens"},{"title":"List Preferences","href":"/api-reference/generated/user/list-preferences"},{"title":"Set Dotfiles Configuration","href":"/api-reference/generated/user/set-dotfiles-configuration"},{"title":"Set Preference","href":"/api-reference/generated/user/set-preference"},{"title":"Set Suspended","href":"/api-reference/generated/user/set-suspended"}]},{"group":"Webhooks","pages":[{"title":"Webhooks","href":"/api-reference/generated/webhook/overview"},{"title":"Create Webhook","href":"/api-reference/generated/webhook/create-webhook"},{"title":"Delete Webhook","href":"/api-reference/generated/webhook/delete-webhook"},{"title":"Get Webhook","href":"/api-reference/generated/webhook/get-webhook"},{"title":"Get Webhook Secret","href":"/api-reference/generated/webhook/get-webhook-secret"},{"title":"List Webhook Workflows","href":"/api-reference/generated/webhook/list-webhook-workflows"},{"title":"List Webhooks","href":"/api-reference/generated/webhook/list-webhooks"},{"title":"Rotate Webhook Secret","href":"/api-reference/generated/webhook/rotate-webhook-secret"},{"title":"Update Webhook","href":"/api-reference/generated/webhook/update-webhook"}]},{"group":"Workflows","pages":[{"title":"Workflows","href":"/api-reference/generated/workflow/overview"},{"title":"Cancel Workflow Execution","href":"/api-reference/generated/workflow/cancel-workflow-execution"},{"title":"Cancel Workflow Execution Action","href":"/api-reference/generated/workflow/cancel-workflow-execution-action"},{"title":"Create Workflow","href":"/api-reference/generated/workflow/create-workflow"},{"title":"Delete Workflow","href":"/api-reference/generated/workflow/delete-workflow"},{"title":"Get Workflow","href":"/api-reference/generated/workflow/get-workflow"},{"title":"Get Workflow Execution","href":"/api-reference/generated/workflow/get-workflow-execution"},{"title":"Get Workflow Execution Action","href":"/api-reference/generated/workflow/get-workflow-execution-action"},{"title":"Get Workflow Execution Summary","href":"/api-reference/generated/workflow/get-workflow-execution-summary"},{"title":"Get Workflow Webhook Secret","href":"/api-reference/generated/workflow/get-workflow-webhook-secret"},{"title":"List Workflow Execution Actions","href":"/api-reference/generated/workflow/list-workflow-execution-actions"},{"title":"List Workflow Execution Outputs","href":"/api-reference/generated/workflow/list-workflow-execution-outputs"},{"title":"List Workflow Executions","href":"/api-reference/generated/workflow/list-workflow-executions"},{"title":"List Workflows","href":"/api-reference/generated/workflow/list-workflows"},{"title":"Rotate Workflow Webhook Secret","href":"/api-reference/generated/workflow/rotate-workflow-webhook-secret"},{"title":"Start Workflow","href":"/api-reference/generated/workflow/start-workflow"},{"title":"Update Workflow","href":"/api-reference/generated/workflow/update-workflow"}]}]}]},{"title":"CLI command reference","href":"/ona/reference/cli"},{"title":".ona/config.yaml schema","href":"/ona/reference/ona-config-schema"}]},{"group":"Support","pages":[{"title":"Troubleshooting guide","href":"/ona/troubleshooting"}]},{"group":"Releases","pages":[{"title":"AWS Runner Releases","sidebarTitle":"AWS Runner","href":"/release-notes/aws-runner"},{"title":"GCP Runner Releases","sidebarTitle":"GCP Runner","href":"/release-notes/gcp-runner"}]},{"group":"Additional documentation","hidden":true,"searchable":true,"pages":[{"title":"Getting started with agents","href":"/ona/agents"},{"title":"Prompt validation","href":"/ona/guardrails/prompt-validation"},{"title":"AWS OIDC Integration","href":"/ona/identity/aws-oidc"},{"title":"Azure OIDC Integration","href":"/ona/identity/azure-oidc"},{"title":"GCP OIDC Integration","href":"/ona/identity/gcp-oidc"},{"title":"HashiCorp Vault OIDC Integration","href":"/ona/identity/vault-oidc"},{"title":"Environment inventory","href":"/ona/organizations/environment-inventory"},{"title":"Auto-delete","href":"/ona/organizations/policies/auto-delete"},{"title":"Default image","href":"/ona/organizations/policies/default-image"},{"title":"Editor restrictions","href":"/ona/organizations/policies/editor-restrictions"},{"title":"Environment limits","href":"/ona/organizations/policies/environment-limits"},{"title":"Port sharing policy","href":"/ona/organizations/policies/port-sharing"},{"title":"Project creation","href":"/ona/organizations/policies/project-creation"},{"title":"SCM tools","href":"/ona/organizations/policies/scm-tools"},{"title":"View members","href":"/ona/organizations/view-members"},{"title":"Recommended Editors","href":"/ona/projects/recommended-editors"},{"title":"Environment variables reference","href":"/ona/reference/environment-variables"},{"title":"Delete runner","href":"/ona/runners/aws/delete-runner"},{"title":"AWS enterprise runner","href":"/ona/runners/aws/enterprise-runner/overview"},{"title":"Setup AWS enterprise runner","href":"/ona/runners/aws/enterprise-runner/setup"},{"title":"Sharing runners","href":"/ona/runners/aws/sharing-runners"},{"title":"Configure multiple instance types","href":"/ona/runners/multiple-instance-types"},{"title":"Security disclosure policy","href":"/ona/security/report"},{"title":"Thanks for your help","href":"/ona/security/thanks"}]}]},{"version":"Workshops","pages":[{"title":"Workshops","href":"/workshops/overview"}]},{"version":"Gitpod Classic","pages":[{"title":"Gitpod Classic","href":"/classic/user/introduction/overview"}]},{"version":"Examples","hidden":true,"pages":[{"title":"Examples","href":"/examples/introduction/getting-started","hidden":true}]}]},"title":"Create Environment From Project - Ona Documentation","buildId":"dpl_3DJU2xKhT5gDPFQL5Tqv7AFnkWsF","deploymentId":"dpl_3DJU2xKhT5gDPFQL5Tqv7AFnkWsF","dynamics":[],"chunks":[]}