import Runloop from '@runloop/api-client';const client = new Runloop({ bearerToken: process.env['RUNLOOP_API_KEY'], // This is the default and can be omitted});const blueprintView = await client.blueprints.create({ name: 'name' });console.log(blueprintView.id);
import os
from runloop_api_client import Runloop
client = Runloop(
bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
)
blueprint_view = client.blueprints.create(
name="name",
)
print(blueprint_view.id)
Starts build of custom defined container Blueprint. The Blueprint will begin in the ‘provisioning’ step and transition to the ‘building’ step once it is selected off the build queue., Upon build complete it will transition to ‘building_complete’ if the build is successful.
POST
/
v1
/
blueprints
JavaScript
import Runloop from '@runloop/api-client';const client = new Runloop({ bearerToken: process.env['RUNLOOP_API_KEY'], // This is the default and can be omitted});const blueprintView = await client.blueprints.create({ name: 'name' });console.log(blueprintView.id);
import os
from runloop_api_client import Runloop
client = Runloop(
bearer_token=os.environ.get("RUNLOOP_API_KEY"), # This is the default and can be omitted
)
blueprint_view = client.blueprints.create(
name="name",
)
print(blueprint_view.id)
(Optional) Name of previously built blueprint to use as a base blueprint for this build. When set, this will load the latest successfully built Blueprint with the given name. Only one of (base_blueprint_id, base_blueprint_name) should be specified.
(Optional) List of containerized services to include in the Blueprint. These services will be pre-pulled during the build phase for optimized startup performance.
(Optional) Map of mount IDs/environment variable names to secret names. Secrets will be available to commands during the build. Secrets are NOT stored in the blueprint image. Example: {"DB_PASS": "DATABASE_PASSWORD"} makes the secret 'DATABASE_PASSWORD' available as environment variable 'DB_PASS'.
(Optional) ID of the network policy to apply during blueprint build. This restricts network access during the build process. This does not affect devboxes created from this blueprint; if you want devboxes created from this blueprint to inherit the network policy, set the network_policy_id on the blueprint launch parameters.
Response
200 - application/json
OK
Blueprints are ways to create customized starting points for Devboxes. They allow you to define custom starting points for Devboxes such that environment set up can be cached to improve Devbox boot times.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Runloop AI Docs","colors":{"primary":"#118362","light":"#118362","dark":"#118362"},"logo":{"light":"https://mintcdn.com/runloopai/Us2eHV2_UnUki3-j/logo/runloop-logo.png?fit=max\u0026auto=format\u0026n=Us2eHV2_UnUki3-j\u0026q=85\u0026s=f3caaf67e1c45f535be611579f752bad","dark":"https://mintcdn.com/runloopai/Us2eHV2_UnUki3-j/logo/runloop-logo.png?fit=max\u0026auto=format\u0026n=Us2eHV2_UnUki3-j\u0026q=85\u0026s=f3caaf67e1c45f535be611579f752bad","href":"https://runloop.ai"},"favicon":"https://mintcdn.com/runloopai/fWPbnslqIgBTzYjS/icon.svg?fit=max\u0026auto=format\u0026n=fWPbnslqIgBTzYjS\u0026q=85\u0026s=42689e938126fab53c09e6aefd2125a7","appearance":{"default":"dark"},"background":{"color":{"light":"#F9F9F9","dark":"#191B2E"}},"navbar":{"links":[{"href":"mailto:support@runloop.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://platform.runloop.ai"}},"footer":{"socials":{"github":"https://github.com/runloopai","linkedin":"https://www.linkedin.com/company/runloopai","youtube":"https://www.youtube.com/@runloop-ai","x":"https://x.com/RunloopAI"}},"fonts":{"family":"Inter"},"styling":{"latex":false},"integrations":{"gtm":{"tagId":"G-DHKMJC9ETL"},"mixpanel":{"projectToken":"332c39ec74c2f00fba90d9e5cfd67791"},"posthog":{"apiKey":"phc_vW06f31Rk74Ey1ZbIS8Mfxx4oIQA3fIxTVn29qVr42c","sessionRecording":true}},"banner":{"content":"Runloop is winding down its services. Support for existing customers continues through November 13, 2026 at 11:59 PM PT. [Transition guides](/docs/transitions/overview).","dismissible":false},"contextual":{"options":["chatgpt","claude","copy"],"display":"header"},"interaction":{"drilldown":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"runloopai","hasAudioNarration":false,"actualSubdomain":"runloopai","customDomains":["docs.runloop.ai"],"gitSource":{"type":"github","owner":"runloopai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6add1e0f29f48133ead15d81","collectionId":"90fcf6c3-4dd4-4d17-8ab9-583c417733c2","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6add1e0f29f48133ead15d81"},"feedback":{"edits":false,"thumbs":true,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6add1e0f29f48133ead15d81","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API Reference","count":106},{"language":"default","tag":"Documentation","count":70},{"language":"default","tag":"Devbox","count":44},{"language":"default","tag":"Components","count":41},{"language":"default","tag":"Devboxes","count":22},{"language":"default","tag":"Overview","count":16},{"language":"default","tag":"axons","count":12},{"language":"default","tag":"Blueprint","count":11},{"language":"default","tag":"objects","count":9},{"language":"default","tag":"Transitions","count":8}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"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":"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":"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":"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":"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":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","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":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","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},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"theme.css","content":"code,pre{font-size:.85rem!important;line-height:1.4!important}"}],"page":{"pagePath":"api-reference/blueprint/create-and-build-a-blueprint","slug":"/api-reference/blueprint/create-and-build-a-blueprint","pageMetadata":{"title":"Create and build a Blueprint.","description":"Starts build of custom defined container Blueprint. The Blueprint will begin in the 'provisioning' step and transition to the 'building' step once it is selected off the build queue., Upon build complete it will transition to 'building_complete' if the build is successful.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/blueprints","href":"/api-reference/blueprint/create-and-build-a-blueprint","autogeneratedByOpenApi":true},"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: \"Starts build of custom defined container Blueprint. The Blueprint will begin in the ‘provisioning’ step and transition to the ‘building’ step once it is selected off the build queue., Upon build complete it will transition to ‘building_complete’ if the build is successful.\"\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}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create and build a Blueprint.","description":"Starts build of custom defined container Blueprint. The Blueprint will begin in the 'provisioning' step and transition to the 'building' step once it is selected off the build queue., Upon build complete it will transition to 'building_complete' if the build is successful.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/blueprints","href":"/api-reference/blueprint/create-and-build-a-blueprint","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/runloopai/70ccb22e7cd1529e/scripts/generate-changelog.js","/_mintlify/custom/runloopai/6440a26b64c8b606/scripts/generate-llms-index.js"],"openApiReferenceData":{"operation":{"tags":["Blueprint","Blueprint-Lifecycle"],"summary":"Create and build a Blueprint.","description":"Starts build of custom defined container Blueprint. The Blueprint will begin in the 'provisioning' step and transition to the 'building' step once it is selected off the build queue., Upon build complete it will transition to 'building_complete' if the build is successful.","operationId":"createBlueprint","requestBody":"0c95f4f1-ba26-4abe-944c-6de3640c6c69","responses":{"200":"e73a5789-7c64-4aa8-b2e9-e5120c6abd14"},"x-codeSamples":[{"lang":"JavaScript","source":"import Runloop from '@runloop/api-client';\n\nconst client = new Runloop({\n bearerToken: process.env['RUNLOOP_API_KEY'], // This is the default and can be omitted\n});\n\nconst blueprintView = await client.blueprints.create({ name: 'name' });\n\nconsole.log(blueprintView.id);"},{"lang":"Python","source":"import os\nfrom runloop_api_client import Runloop\n\nclient = Runloop(\n bearer_token=os.environ.get(\"RUNLOOP_API_KEY\"), # This is the default and can be omitted\n)\nblueprint_view = client.blueprints.create(\n name=\"name\",\n)\nprint(blueprint_view.id)"}],"method":"post","type":"path","servers":["1d631bad-0fd6-4617-a8c4-8377826d815d"],"security":["8ce27edf-f079-415e-937e-65fded4f9d46"],"path":"/v1/blueprints","baseUrlOptions":["https://api.runloop.ai"],"title":"Create and build a Blueprint.","codeSamples":[{"lang":"JavaScript","source":"import Runloop from '@runloop/api-client';\n\nconst client = new Runloop({\n bearerToken: process.env['RUNLOOP_API_KEY'], // This is the default and can be omitted\n});\n\nconst blueprintView = await client.blueprints.create({ name: 'name' });\n\nconsole.log(blueprintView.id);"},{"lang":"Python","source":"import os\nfrom runloop_api_client import Runloop\n\nclient = Runloop(\n bearer_token=os.environ.get(\"RUNLOOP_API_KEY\"), # This is the default and can be omitted\n)\nblueprint_view = client.blueprints.create(\n name=\"name\",\n)\nprint(blueprint_view.id)"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Blueprint.","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"dockerfile":{"oneOf":[{"description":"Dockerfile contents to be used to build the Blueprint.","type":"string","uniqueKey":"dockerfile.oneOf.0","typeLabel":"string"},{"description":"Dockerfile contents to be used to build the Blueprint.","type":"null","uniqueKey":"dockerfile.oneOf.1","typeLabel":"null"}],"uniqueKey":"dockerfile","typeLabel":"string | null"},"system_setup_commands":{"oneOf":[{"items":{"type":"string","uniqueKey":"system_setup_commands.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"A list of commands to run to set up your system.","type":"array","uniqueKey":"system_setup_commands.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"description":"A list of commands to run to set up your system.","type":"null","uniqueKey":"system_setup_commands.oneOf.1","typeLabel":"null"}],"uniqueKey":"system_setup_commands","typeLabel":"string[] | null"},"code_mounts":{"oneOf":[{"items":{"type":"object","properties":{"repo_name":{"type":"string","description":"The name of the repo to mount. By default, code will be mounted at /home/user/{repo_name}.","isRequired":true,"uniqueKey":"code_mounts.oneOf.0.items.[INDEX].repo_name","typeLabel":"string"},"repo_owner":{"type":"string","description":"The owner of the repo.","isRequired":true,"uniqueKey":"code_mounts.oneOf.0.items.[INDEX].repo_owner","typeLabel":"string"},"install_command":{"oneOf":[{"description":"Installation command to install and setup repository.","type":"string","uniqueKey":"code_mounts.oneOf.0.items.[INDEX].install_command.oneOf.0","typeLabel":"string"},{"description":"Installation command to install and setup repository.","type":"null","uniqueKey":"code_mounts.oneOf.0.items.[INDEX].install_command.oneOf.1","typeLabel":"null"}],"uniqueKey":"code_mounts.oneOf.0.items.[INDEX].install_command","typeLabel":"string | null"},"git_ref":{"oneOf":[{"description":"Optional git ref (branch or tag) to checkout. Defaults to the repository default branch.","type":"string","uniqueKey":"code_mounts.oneOf.0.items.[INDEX].git_ref.oneOf.0","typeLabel":"string"},{"description":"Optional git ref (branch or tag) to checkout. Defaults to the repository default branch.","type":"null","uniqueKey":"code_mounts.oneOf.0.items.[INDEX].git_ref.oneOf.1","typeLabel":"null"}],"uniqueKey":"code_mounts.oneOf.0.items.[INDEX].git_ref","typeLabel":"string | null"},"token":{"oneOf":[{"description":"The authentication token necessary to pull repo.","type":"string","uniqueKey":"code_mounts.oneOf.0.items.[INDEX].token.oneOf.0","typeLabel":"string"},{"description":"The authentication token necessary to pull repo.","type":"null","uniqueKey":"code_mounts.oneOf.0.items.[INDEX].token.oneOf.1","typeLabel":"null"}],"uniqueKey":"code_mounts.oneOf.0.items.[INDEX].token","typeLabel":"string | null"}},"required":["repo_name","repo_owner"],"uniqueKey":"code_mounts.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"A list of code mounts to be included in the Blueprint.","type":"array","uniqueKey":"code_mounts.oneOf.0","typeLabel":"object[]"},{"items":{"type":"object","properties":{"repo_name":{"type":"string","description":"The name of the repo to mount. By default, code will be mounted at /home/user/{repo_name}."},"repo_owner":{"type":"string","description":"The owner of the repo."},"install_command":{"oneOf":[{"description":"Installation command to install and setup repository.","type":"string"},{"description":"Installation command to install and setup repository.","type":"null"}]},"git_ref":{"oneOf":[{"description":"Optional git ref (branch or tag) to checkout. Defaults to the repository default branch.","type":"string"},{"description":"Optional git ref (branch or tag) to checkout. Defaults to the repository default branch.","type":"null"}]},"token":{"oneOf":[{"description":"The authentication token necessary to pull repo.","type":"string"},{"description":"The authentication token necessary to pull repo.","type":"null"}]}},"required":["repo_name","repo_owner"]},"description":"A list of code mounts to be included in the Blueprint.","type":"null","uniqueKey":"code_mounts.oneOf.1","typeLabel":"null"}],"uniqueKey":"code_mounts","typeLabel":"object[] | null"},"launch_parameters":{"oneOf":[{"type":"object","description":"Parameters to configure your Devbox at launch time.","properties":{"launch_commands":{"oneOf":[{"items":{"type":"string","uniqueKey":"launch_parameters.oneOf.0.launch_commands.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Set of commands to be run at launch time, before the entrypoint process is run.","type":"array","uniqueKey":"launch_parameters.oneOf.0.launch_commands.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"description":"Set of commands to be run at launch time, before the entrypoint process is run.","type":"null","uniqueKey":"launch_parameters.oneOf.0.launch_commands.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.launch_commands","typeLabel":"string[] | null"},"resource_size_request":{"oneOf":[{"type":"string","description":"Preset Devbox resources (vCPU, RAM in GiB, ephemeral disk in GiB). If not set, SMALL is used. X_SMALL: 0.5 vCPU, 1 GiB RAM, 4 GiB disk. SMALL: 1 vCPU, 2 GiB RAM, 4 GiB disk. MEDIUM: 2 vCPU, 4 GiB RAM, 8 GiB disk. LARGE: 2 vCPU, 8 GiB RAM, 16 GiB disk. X_LARGE: 4 vCPU, 16 GiB RAM, 16 GiB disk. XX_LARGE: 8 vCPU, 32 GiB RAM, 16 GiB disk. CUSTOM_SIZE: set custom_cpu_cores, custom_gb_memory, and optionally custom_disk_size.","enum":["X_SMALL","SMALL","MEDIUM","LARGE","X_LARGE","XX_LARGE","CUSTOM_SIZE"],"x-enum-descriptions":{"X_SMALL":"0.5 cpu x 1GiB memory x 4GiB disk","SMALL":"1 cpu x 2GiB memory x 4GiB disk","MEDIUM":"2 cpu x 4GiB memory x 8GiB disk","LARGE":"2 cpu x 8GiB memory x 16GiB disk","X_LARGE":"4 cpu x 16GiB memory x 16GiB disk","XX_LARGE":"8 cpu x 32GiB memory x 16GiB disk","CUSTOM_SIZE":"To choose a custom size, set this enum and also the custom_cpu_cores, custom_gb_memory, and optionally custom_disk_size in launch parameters. CPU must be 0.5, 1, or a multiple of 2 (max 16). Memory must be 1 or a multiple of 2 (max 64GiB). Disk must be a multiple of 2 (min 2GiB, max 64GiB). The cpu:memory ratio must be between 1:2 and 1:8 inclusive."},"uniqueKey":"launch_parameters.oneOf.0.resource_size_request.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Preset Devbox resources (vCPU, RAM in GiB, ephemeral disk in GiB). If not set, SMALL is used. X_SMALL: 0.5 vCPU, 1 GiB RAM, 4 GiB disk. SMALL: 1 vCPU, 2 GiB RAM, 4 GiB disk. MEDIUM: 2 vCPU, 4 GiB RAM, 8 GiB disk. LARGE: 2 vCPU, 8 GiB RAM, 16 GiB disk. X_LARGE: 4 vCPU, 16 GiB RAM, 16 GiB disk. XX_LARGE: 8 vCPU, 32 GiB RAM, 16 GiB disk. CUSTOM_SIZE: set custom_cpu_cores, custom_gb_memory, and optionally custom_disk_size.","uniqueKey":"launch_parameters.oneOf.0.resource_size_request.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.resource_size_request","typeLabel":"enum\u003cstring> | null"},"available_ports":{"oneOf":[{"items":{"type":"integer","format":"int32","uniqueKey":"launch_parameters.oneOf.0.available_ports.oneOf.0.items.[INDEX]","typeLabel":"integer\u003cint32>"},"description":"[Deprecated] A list of ports to make available on the Devbox. This field is ignored.","type":"array","uniqueKey":"launch_parameters.oneOf.0.available_ports.oneOf.0","typeLabel":"integer\u003cint32>[]"},{"items":{"type":"integer","format":"int32"},"description":"[Deprecated] A list of ports to make available on the Devbox. This field is ignored.","type":"null","uniqueKey":"launch_parameters.oneOf.0.available_ports.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.available_ports","typeLabel":"integer\u003cint32>[] | null"},"keep_alive_time_seconds":{"oneOf":[{"format":"int64","description":"Time in seconds after which Devbox will automatically shutdown. Default is 1 hour. Maximum is 48 hours (172800 seconds).","type":"integer","uniqueKey":"launch_parameters.oneOf.0.keep_alive_time_seconds.oneOf.0","typeLabel":"integer\u003cint64>"},{"format":"int64","description":"Time in seconds after which Devbox will automatically shutdown. Default is 1 hour. Maximum is 48 hours (172800 seconds).","type":"null","uniqueKey":"launch_parameters.oneOf.0.keep_alive_time_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.keep_alive_time_seconds","typeLabel":"integer\u003cint64> | null"},"after_idle":{"oneOf":[{"type":"object","description":"Configure Devbox lifecycle based on idle activity. If after_idle is set, Devbox will ignore keep_alive_time_seconds. If both after_idle and lifecycle.after_idle are set, they must have the same value. Use lifecycle.after_idle instead.","required":["idle_time_seconds","on_idle"],"properties":{"idle_time_seconds":{"type":"integer","format":"int32","description":"After idle_time_seconds, on_idle action will be taken.","isRequired":true,"uniqueKey":"launch_parameters.oneOf.0.after_idle.oneOf.0.idle_time_seconds","typeLabel":"integer\u003cint32>"},"on_idle":{"type":"string","enum":["shutdown","suspend"],"description":"Action to take after Devbox becomes idle.","x-enum-descriptions":{"shutdown":"Shutdown the Devbox.","suspend":"Suspend the Devbox."},"isRequired":true,"uniqueKey":"launch_parameters.oneOf.0.after_idle.oneOf.0.on_idle","typeLabel":"enum\u003cstring>"}},"uniqueKey":"launch_parameters.oneOf.0.after_idle.oneOf.0","typeLabel":"object"},{"type":"null","description":"Configure Devbox lifecycle based on idle activity. If after_idle is set, Devbox will ignore keep_alive_time_seconds. If both after_idle and lifecycle.after_idle are set, they must have the same value. Use lifecycle.after_idle instead.","uniqueKey":"launch_parameters.oneOf.0.after_idle.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.after_idle","typeLabel":"object | null"},"custom_cpu_cores":{"oneOf":[{"format":"double","description":"Custom CPU cores. Must be 0.5, 1, or a multiple of 2. Max is 16.","type":"number","uniqueKey":"launch_parameters.oneOf.0.custom_cpu_cores.oneOf.0","typeLabel":"number\u003cdouble>"},{"format":"double","description":"Custom CPU cores. Must be 0.5, 1, or a multiple of 2. Max is 16.","type":"null","uniqueKey":"launch_parameters.oneOf.0.custom_cpu_cores.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.custom_cpu_cores","typeLabel":"number\u003cdouble> | null"},"custom_gb_memory":{"oneOf":[{"format":"int32","description":"Custom memory size in GiB. Must be 1 or a multiple of 2. Max is 64GiB.","type":"integer","uniqueKey":"launch_parameters.oneOf.0.custom_gb_memory.oneOf.0","typeLabel":"integer\u003cint32>"},{"format":"int32","description":"Custom memory size in GiB. Must be 1 or a multiple of 2. Max is 64GiB.","type":"null","uniqueKey":"launch_parameters.oneOf.0.custom_gb_memory.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.custom_gb_memory","typeLabel":"integer\u003cint32> | null"},"custom_disk_size":{"oneOf":[{"format":"int32","description":"Custom disk size in GiB. Must be a multiple of 2. Min is 2GiB, max is 64GiB.","type":"integer","uniqueKey":"launch_parameters.oneOf.0.custom_disk_size.oneOf.0","typeLabel":"integer\u003cint32>"},{"format":"int32","description":"Custom disk size in GiB. Must be a multiple of 2. Min is 2GiB, max is 64GiB.","type":"null","uniqueKey":"launch_parameters.oneOf.0.custom_disk_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.custom_disk_size","typeLabel":"integer\u003cint32> | null"},"architecture":{"oneOf":[{"type":"string","description":"The target architecture for the Devbox. If unset, defaults to x86_64.","enum":["x86_64","arm64"],"uniqueKey":"launch_parameters.oneOf.0.architecture.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The target architecture for the Devbox. If unset, defaults to x86_64.","uniqueKey":"launch_parameters.oneOf.0.architecture.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.architecture","typeLabel":"enum\u003cstring> | null"},"user_parameters":{"oneOf":[{"type":"object","description":"Specify the user for execution on Devbox. If not set, default `user` will be used.","required":["username","uid"],"properties":{"username":{"type":"string","description":"Username for the Linux user.","isRequired":true,"uniqueKey":"launch_parameters.oneOf.0.user_parameters.oneOf.0.username","typeLabel":"string"},"uid":{"type":"integer","format":"int32","description":"User ID (UID) for the Linux user. Must be a non-negative integer.","isRequired":true,"uniqueKey":"launch_parameters.oneOf.0.user_parameters.oneOf.0.uid","typeLabel":"integer\u003cint32>"}},"uniqueKey":"launch_parameters.oneOf.0.user_parameters.oneOf.0","typeLabel":"object"},{"type":"null","description":"Specify the user for execution on Devbox. If not set, default `user` will be used.","uniqueKey":"launch_parameters.oneOf.0.user_parameters.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.user_parameters","typeLabel":"object | null"},"required_services":{"oneOf":[{"items":{"type":"string","uniqueKey":"launch_parameters.oneOf.0.required_services.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"A list of ContainerizedService names to be started when a Devbox is created. A valid ContainerizedService must be specified in Blueprint to be started.","type":"array","uniqueKey":"launch_parameters.oneOf.0.required_services.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"description":"A list of ContainerizedService names to be started when a Devbox is created. A valid ContainerizedService must be specified in Blueprint to be started.","type":"null","uniqueKey":"launch_parameters.oneOf.0.required_services.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.required_services","typeLabel":"string[] | null"},"network_policy_id":{"oneOf":[{"description":"(Optional) ID of the network policy to apply to Devboxes launched with these parameters. When set on a Blueprint launch parameters, Devboxes created from it will inherit this policy unless explicitly overridden.","type":"string","uniqueKey":"launch_parameters.oneOf.0.network_policy_id.oneOf.0","typeLabel":"string"},{"description":"(Optional) ID of the network policy to apply to Devboxes launched with these parameters. When set on a Blueprint launch parameters, Devboxes created from it will inherit this policy unless explicitly overridden.","type":"null","uniqueKey":"launch_parameters.oneOf.0.network_policy_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.network_policy_id","typeLabel":"string | null"},"lifecycle":{"oneOf":[{"type":"object","description":"Lifecycle configuration for idle and resume behavior. Configure idle policy via lifecycle.after_idle (if both this and the top-level after_idle are set, they must match), resume triggers via lifecycle.resume_triggers, and optional lifecycle hooks via lifecycle.lifecycle_hooks.","properties":{"after_idle":{"oneOf":[{"type":"object","description":"Configure Devbox lifecycle based on idle activity. If both this and the top-level after_idle are set, they must have the same value. Prefer this field for new integrations.","required":["idle_time_seconds","on_idle"],"properties":{"idle_time_seconds":{"type":"integer","format":"int32","description":"After idle_time_seconds, on_idle action will be taken.","isRequired":true,"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.after_idle.oneOf.0.idle_time_seconds","typeLabel":"integer\u003cint32>"},"on_idle":{"type":"string","enum":["shutdown","suspend"],"description":"Action to take after Devbox becomes idle.","x-enum-descriptions":{"shutdown":"Shutdown the Devbox.","suspend":"Suspend the Devbox."},"isRequired":true,"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.after_idle.oneOf.0.on_idle","typeLabel":"enum\u003cstring>"}},"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.after_idle.oneOf.0","typeLabel":"object"},{"type":"null","description":"Configure Devbox lifecycle based on idle activity. If both this and the top-level after_idle are set, they must have the same value. Prefer this field for new integrations.","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.after_idle.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.after_idle","typeLabel":"object | null"},"resume_triggers":{"oneOf":[{"type":"object","description":"Triggers that can resume a suspended Devbox.","properties":{"http":{"oneOf":[{"description":"When true, HTTP traffic to a suspended Devbox via tunnel will trigger a resume.","type":"boolean","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0.http.oneOf.0","typeLabel":"boolean"},{"description":"When true, HTTP traffic to a suspended Devbox via tunnel will trigger a resume.","type":"null","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0.http.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0.http","typeLabel":"boolean | null"},"axon_event":{"oneOf":[{"description":"When true, axon events targeting a suspended Devbox will trigger a resume.","type":"boolean","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0.axon_event.oneOf.0","typeLabel":"boolean"},{"description":"When true, axon events targeting a suspended Devbox will trigger a resume.","type":"null","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0.axon_event.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0.axon_event","typeLabel":"boolean | null"}},"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0","typeLabel":"object"},{"type":"null","description":"Triggers that can resume a suspended Devbox.","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers","typeLabel":"object | null"},"lifecycle_hooks":{"oneOf":[{"type":"object","description":"Optional lifecycle hooks. suspend_commands run through the suspend path before the Devbox suspends; see launch_commands for work on every startup.","properties":{"suspend_commands":{"oneOf":[{"items":{"type":"string","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_commands.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Commands to run through the suspend path before the Devbox suspends (e.g. cleanup, quiesce daemons).","type":"array","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_commands.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"description":"Commands to run through the suspend path before the Devbox suspends (e.g. cleanup, quiesce daemons).","type":"null","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_commands.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_commands","typeLabel":"string[] | null"},"suspend_deadline_ms":{"oneOf":[{"format":"int64","description":"Deadline in milliseconds for broker drain and suspend_commands during suspend. Defaults to 30000 ms and may not exceed 60000 ms. If exceeded, suspend work is abandoned, the timeout is logged, and the Devbox still proceeds to suspend by shutting down vmagent and killing the VM.","type":"integer","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_deadline_ms.oneOf.0","typeLabel":"integer\u003cint64>"},{"format":"int64","description":"Deadline in milliseconds for broker drain and suspend_commands during suspend. Defaults to 30000 ms and may not exceed 60000 ms. If exceeded, suspend work is abandoned, the timeout is logged, and the Devbox still proceeds to suspend by shutting down vmagent and killing the VM.","type":"null","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_deadline_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_deadline_ms","typeLabel":"integer\u003cint64> | null"}},"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0","typeLabel":"object"},{"type":"null","description":"Optional lifecycle hooks. suspend_commands run through the suspend path before the Devbox suspends; see launch_commands for work on every startup.","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks","typeLabel":"object | null"}},"uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.0","typeLabel":"object"},{"type":"null","description":"Lifecycle configuration for idle and resume behavior. Configure idle policy via lifecycle.after_idle (if both this and the top-level after_idle are set, they must match), resume triggers via lifecycle.resume_triggers, and optional lifecycle hooks via lifecycle.lifecycle_hooks.","uniqueKey":"launch_parameters.oneOf.0.lifecycle.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.lifecycle","typeLabel":"object | null"},"provisioning_tier":{"oneOf":[{"type":"string","description":"(Optional, Alpha) standard is default and flex is lazily provisioned and may be pre-empted. This is an alpha feature and its behavior may change without notice.","enum":["standard","flex"],"uniqueKey":"launch_parameters.oneOf.0.provisioning_tier.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"(Optional, Alpha) standard is default and flex is lazily provisioned and may be pre-empted. This is an alpha feature and its behavior may change without notice.","uniqueKey":"launch_parameters.oneOf.0.provisioning_tier.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters.oneOf.0.provisioning_tier","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"launch_parameters.oneOf.0","typeLabel":"object"},{"type":"null","description":"Parameters to configure your Devbox at launch time.","uniqueKey":"launch_parameters.oneOf.1","typeLabel":"null"}],"uniqueKey":"launch_parameters","typeLabel":"object | null"},"file_mounts":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"file_mounts.oneOf.0.additionalProperties","typeLabel":"string"},"description":"(Optional) Map of paths and file contents to write before setup.","type":"object","uniqueKey":"file_mounts.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"file_mounts.oneOf.1.additionalProperties","typeLabel":"string"},"description":"(Optional) Map of paths and file contents to write before setup.","type":"null","uniqueKey":"file_mounts.oneOf.1","typeLabel":"null"}],"uniqueKey":"file_mounts","typeLabel":"object | null"},"base_blueprint_id":{"oneOf":[{"description":"(Optional) ID of previously built blueprint to use as a base blueprint for this build.","type":"string","uniqueKey":"base_blueprint_id.oneOf.0","typeLabel":"string"},{"description":"(Optional) ID of previously built blueprint to use as a base blueprint for this build.","type":"null","uniqueKey":"base_blueprint_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"base_blueprint_id","typeLabel":"string | null"},"base_blueprint_name":{"oneOf":[{"description":"(Optional) Name of previously built blueprint to use as a base blueprint for this build. When set, this will load the latest successfully built Blueprint with the given name. Only one of (base_blueprint_id, base_blueprint_name) should be specified.","type":"string","uniqueKey":"base_blueprint_name.oneOf.0","typeLabel":"string"},{"description":"(Optional) Name of previously built blueprint to use as a base blueprint for this build. When set, this will load the latest successfully built Blueprint with the given name. Only one of (base_blueprint_id, base_blueprint_name) should be specified.","type":"null","uniqueKey":"base_blueprint_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"base_blueprint_name","typeLabel":"string | null"},"services":{"oneOf":[{"items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the container service.","isRequired":true,"uniqueKey":"services.oneOf.0.items.[INDEX].name","typeLabel":"string"},"image":{"type":"string","description":"The image of the container service.","isRequired":true,"uniqueKey":"services.oneOf.0.items.[INDEX].image","typeLabel":"string"},"credentials":{"oneOf":[{"type":"object","description":"The credentials of the container service.","required":["username","password"],"properties":{"username":{"type":"string","description":"The username of the container service.","isRequired":true,"uniqueKey":"services.oneOf.0.items.[INDEX].credentials.oneOf.0.username","typeLabel":"string"},"password":{"type":"string","description":"The password of the container service.","isRequired":true,"uniqueKey":"services.oneOf.0.items.[INDEX].credentials.oneOf.0.password","typeLabel":"string"}},"uniqueKey":"services.oneOf.0.items.[INDEX].credentials.oneOf.0","typeLabel":"object"},{"type":"null","description":"The credentials of the container service.","uniqueKey":"services.oneOf.0.items.[INDEX].credentials.oneOf.1","typeLabel":"null"}],"uniqueKey":"services.oneOf.0.items.[INDEX].credentials","typeLabel":"object | null"},"env":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"services.oneOf.0.items.[INDEX].env.oneOf.0.additionalProperties","typeLabel":"string"},"description":"The environment variables of the container service.","type":"object","uniqueKey":"services.oneOf.0.items.[INDEX].env.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"services.oneOf.0.items.[INDEX].env.oneOf.1.additionalProperties","typeLabel":"string"},"description":"The environment variables of the container service.","type":"null","uniqueKey":"services.oneOf.0.items.[INDEX].env.oneOf.1","typeLabel":"null"}],"uniqueKey":"services.oneOf.0.items.[INDEX].env","typeLabel":"object | null"},"port_mappings":{"oneOf":[{"items":{"type":"string","uniqueKey":"services.oneOf.0.items.[INDEX].port_mappings.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"The port mappings of the container service. Port mappings are in the format of \u003chost_port>:\u003ccontainer_port>.","type":"array","uniqueKey":"services.oneOf.0.items.[INDEX].port_mappings.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"description":"The port mappings of the container service. Port mappings are in the format of \u003chost_port>:\u003ccontainer_port>.","type":"null","uniqueKey":"services.oneOf.0.items.[INDEX].port_mappings.oneOf.1","typeLabel":"null"}],"uniqueKey":"services.oneOf.0.items.[INDEX].port_mappings","typeLabel":"string[] | null"},"options":{"oneOf":[{"description":"Additional Docker container create options.","type":"string","uniqueKey":"services.oneOf.0.items.[INDEX].options.oneOf.0","typeLabel":"string"},{"description":"Additional Docker container create options.","type":"null","uniqueKey":"services.oneOf.0.items.[INDEX].options.oneOf.1","typeLabel":"null"}],"uniqueKey":"services.oneOf.0.items.[INDEX].options","typeLabel":"string | null"}},"required":["name","image"],"uniqueKey":"services.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"(Optional) List of containerized services to include in the Blueprint. These services will be pre-pulled during the build phase for optimized startup performance.","type":"array","uniqueKey":"services.oneOf.0","typeLabel":"object[]"},{"items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the container service."},"image":{"type":"string","description":"The image of the container service."},"credentials":{"oneOf":[{"type":"object","description":"The credentials of the container service.","required":["username","password"],"properties":{"username":{"type":"string","description":"The username of the container service."},"password":{"type":"string","description":"The password of the container service."}}},{"type":"null","description":"The credentials of the container service."}]},"env":{"oneOf":[{"additionalProperties":{"type":"string"},"description":"The environment variables of the container service.","type":"object"},{"additionalProperties":{"type":"string"},"description":"The environment variables of the container service.","type":"null"}]},"port_mappings":{"oneOf":[{"items":{"type":"string"},"description":"The port mappings of the container service. Port mappings are in the format of \u003chost_port>:\u003ccontainer_port>.","type":"array"},{"items":{"type":"string"},"description":"The port mappings of the container service. Port mappings are in the format of \u003chost_port>:\u003ccontainer_port>.","type":"null"}]},"options":{"oneOf":[{"description":"Additional Docker container create options.","type":"string"},{"description":"Additional Docker container create options.","type":"null"}]}},"required":["name","image"]},"description":"(Optional) List of containerized services to include in the Blueprint. These services will be pre-pulled during the build phase for optimized startup performance.","type":"null","uniqueKey":"services.oneOf.1","typeLabel":"null"}],"uniqueKey":"services","typeLabel":"object[] | null"},"metadata":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"metadata.oneOf.0.additionalProperties","typeLabel":"string"},"description":"(Optional) User defined metadata for the Blueprint.","type":"object","uniqueKey":"metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"metadata.oneOf.1.additionalProperties","typeLabel":"string"},"description":"(Optional) User defined metadata for the Blueprint.","type":"null","uniqueKey":"metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"metadata","typeLabel":"object | null"},"build_args":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"build_args.oneOf.0.additionalProperties","typeLabel":"string"},"description":"(Optional) Arbitrary Docker build args to pass during build.","type":"object","uniqueKey":"build_args.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"build_args.oneOf.1.additionalProperties","typeLabel":"string"},"description":"(Optional) Arbitrary Docker build args to pass during build.","type":"null","uniqueKey":"build_args.oneOf.1","typeLabel":"null"}],"uniqueKey":"build_args","typeLabel":"object | null"},"secrets":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"secrets.oneOf.0.additionalProperties","typeLabel":"string"},"description":"(Optional) Map of mount IDs/environment variable names to secret names. Secrets will be available to commands during the build. Secrets are NOT stored in the blueprint image. Example: {\"DB_PASS\": \"DATABASE_PASSWORD\"} makes the secret 'DATABASE_PASSWORD' available as environment variable 'DB_PASS'.","type":"object","uniqueKey":"secrets.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"secrets.oneOf.1.additionalProperties","typeLabel":"string"},"description":"(Optional) Map of mount IDs/environment variable names to secret names. Secrets will be available to commands during the build. Secrets are NOT stored in the blueprint image. Example: {\"DB_PASS\": \"DATABASE_PASSWORD\"} makes the secret 'DATABASE_PASSWORD' available as environment variable 'DB_PASS'.","type":"null","uniqueKey":"secrets.oneOf.1","typeLabel":"null"}],"uniqueKey":"secrets","typeLabel":"object | null"},"build_context":{"oneOf":[{"type":"object","description":"(Optional) Build context to be attached to the Blueprint build. This context is the source of COPY and ADD directives.","required":["object_id","type"],"properties":{"object_id":{"type":"string","description":"The ID of an object, whose contents are to be used as a build context.","isRequired":true,"uniqueKey":"build_context.oneOf.0.object_id","typeLabel":"string"},"type":{"type":"string","enum":["object"],"default":"object","isRequired":true,"uniqueKey":"build_context.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"build_context.oneOf.0","typeLabel":"object"},{"type":"null","description":"(Optional) Build context to be attached to the Blueprint build. This context is the source of COPY and ADD directives.","uniqueKey":"build_context.oneOf.1","typeLabel":"null"}],"uniqueKey":"build_context","typeLabel":"object | null"},"network_policy_id":{"oneOf":[{"description":"(Optional) ID of the network policy to apply during blueprint build. This restricts network access during the build process. This does not affect devboxes created from this blueprint; if you want devboxes created from this blueprint to inherit the network policy, set the network_policy_id on the blueprint launch parameters.","type":"string","uniqueKey":"network_policy_id.oneOf.0","typeLabel":"string"},{"description":"(Optional) ID of the network policy to apply during blueprint build. This restricts network access during the build process. This does not affect devboxes created from this blueprint; if you want devboxes created from this blueprint to inherit the network policy, set the network_policy_id on the blueprint launch parameters.","type":"null","uniqueKey":"network_policy_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"network_policy_id","typeLabel":"string | null"}},"required":["name"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"\u003cstring>","dockerfile":"\u003cstring>","system_setup_commands":["\u003cstring>"],"code_mounts":[{"repo_name":"\u003cstring>","repo_owner":"\u003cstring>","install_command":"\u003cstring>","git_ref":"\u003cstring>","token":"\u003cstring>"}],"launch_parameters":{"launch_commands":["\u003cstring>"],"available_ports":[123],"keep_alive_time_seconds":123,"after_idle":{"idle_time_seconds":123},"custom_cpu_cores":123,"custom_gb_memory":123,"custom_disk_size":123,"user_parameters":{"username":"\u003cstring>","uid":123},"required_services":["\u003cstring>"],"network_policy_id":"\u003cstring>","lifecycle":{"after_idle":{"idle_time_seconds":123},"resume_triggers":{"http":true,"axon_event":true},"lifecycle_hooks":{"suspend_commands":["\u003cstring>"],"suspend_deadline_ms":123}}},"file_mounts":{},"base_blueprint_id":"\u003cstring>","base_blueprint_name":"\u003cstring>","services":[{"name":"\u003cstring>","image":"\u003cstring>","credentials":{"username":"\u003cstring>","password":"\u003cstring>"},"env":{},"port_mappings":["\u003cstring>"],"options":"\u003cstring>"}],"metadata":{},"build_args":{},"secrets":{},"build_context":{"object_id":"\u003cstring>","type":"object"},"network_policy_id":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"e73a5789-7c64-4aa8-b2e9-e5120c6abd14":{"description":"OK","content":{"application/json":{"schema":{"type":"object","description":"Blueprints are ways to create customized starting points for Devboxes. They allow you to define custom starting points for Devboxes such that environment set up can be cached to improve Devbox boot times.","properties":{"id":{"type":"string","description":"The id of the Blueprint.","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"name":{"type":"string","description":"The name of the Blueprint.","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"status":{"type":"string","enum":["queued","provisioning","building","awaiting_upload","failed","build_complete"],"description":"The status of the Blueprint build.","x-enum-descriptions":{"queued":"Blueprint is queued waiting for build capacity to become available.","provisioning":"Allocating and booting the necessary infrastructure resources to create the Blueprint image.","building":"Building the Blueprint image.","awaiting_upload":"Blueprint is created and awaiting its image to be pushed out-of-band via docker push.","failed":"Blueprint image failed to build. See the logs on the dashboard.","build_complete":"Blueprint image completed build. You can now use the ID to create Devboxes."},"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"state":{"type":"string","enum":["created","deleted"],"description":"The state of the Blueprint.","isRequired":true,"uniqueKey":"state","typeLabel":"enum\u003cstring>"},"create_time_ms":{"type":"integer","format":"int64","description":"Creation time of the Blueprint (Unix timestamp milliseconds).","isRequired":true,"uniqueKey":"create_time_ms","typeLabel":"integer\u003cint64>"},"parameters":{"type":"object","properties":{"name":{"type":"string","description":"Name of the Blueprint.","isRequired":true,"uniqueKey":"parameters.name","typeLabel":"string"},"dockerfile":{"oneOf":[{"description":"Dockerfile contents to be used to build the Blueprint.","type":"string","uniqueKey":"parameters.dockerfile.oneOf.0","typeLabel":"string"},{"description":"Dockerfile contents to be used to build the Blueprint.","type":"null","uniqueKey":"parameters.dockerfile.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.dockerfile","typeLabel":"string | null"},"system_setup_commands":{"oneOf":[{"items":{"type":"string","uniqueKey":"parameters.system_setup_commands.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"A list of commands to run to set up your system.","type":"array","uniqueKey":"parameters.system_setup_commands.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"description":"A list of commands to run to set up your system.","type":"null","uniqueKey":"parameters.system_setup_commands.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.system_setup_commands","typeLabel":"string[] | null"},"code_mounts":{"oneOf":[{"items":{"type":"object","properties":{"repo_name":{"type":"string","description":"The name of the repo to mount. By default, code will be mounted at /home/user/{repo_name}.","isRequired":true,"uniqueKey":"parameters.code_mounts.oneOf.0.items.[INDEX].repo_name","typeLabel":"string"},"repo_owner":{"type":"string","description":"The owner of the repo.","isRequired":true,"uniqueKey":"parameters.code_mounts.oneOf.0.items.[INDEX].repo_owner","typeLabel":"string"},"install_command":{"oneOf":[{"description":"Installation command to install and setup repository.","type":"string","uniqueKey":"parameters.code_mounts.oneOf.0.items.[INDEX].install_command.oneOf.0","typeLabel":"string"},{"description":"Installation command to install and setup repository.","type":"null","uniqueKey":"parameters.code_mounts.oneOf.0.items.[INDEX].install_command.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.code_mounts.oneOf.0.items.[INDEX].install_command","typeLabel":"string | null"},"git_ref":{"oneOf":[{"description":"Optional git ref (branch or tag) to checkout. Defaults to the repository default branch.","type":"string","uniqueKey":"parameters.code_mounts.oneOf.0.items.[INDEX].git_ref.oneOf.0","typeLabel":"string"},{"description":"Optional git ref (branch or tag) to checkout. Defaults to the repository default branch.","type":"null","uniqueKey":"parameters.code_mounts.oneOf.0.items.[INDEX].git_ref.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.code_mounts.oneOf.0.items.[INDEX].git_ref","typeLabel":"string | null"},"token":{"oneOf":[{"description":"The authentication token necessary to pull repo.","type":"string","uniqueKey":"parameters.code_mounts.oneOf.0.items.[INDEX].token.oneOf.0","typeLabel":"string"},{"description":"The authentication token necessary to pull repo.","type":"null","uniqueKey":"parameters.code_mounts.oneOf.0.items.[INDEX].token.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.code_mounts.oneOf.0.items.[INDEX].token","typeLabel":"string | null"}},"required":["repo_name","repo_owner"],"uniqueKey":"parameters.code_mounts.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"A list of code mounts to be included in the Blueprint.","type":"array","uniqueKey":"parameters.code_mounts.oneOf.0","typeLabel":"object[]"},{"items":{"type":"object","properties":{"repo_name":{"type":"string","description":"The name of the repo to mount. By default, code will be mounted at /home/user/{repo_name}."},"repo_owner":{"type":"string","description":"The owner of the repo."},"install_command":{"oneOf":[{"description":"Installation command to install and setup repository.","type":"string"},{"description":"Installation command to install and setup repository.","type":"null"}]},"git_ref":{"oneOf":[{"description":"Optional git ref (branch or tag) to checkout. Defaults to the repository default branch.","type":"string"},{"description":"Optional git ref (branch or tag) to checkout. Defaults to the repository default branch.","type":"null"}]},"token":{"oneOf":[{"description":"The authentication token necessary to pull repo.","type":"string"},{"description":"The authentication token necessary to pull repo.","type":"null"}]}},"required":["repo_name","repo_owner"]},"description":"A list of code mounts to be included in the Blueprint.","type":"null","uniqueKey":"parameters.code_mounts.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.code_mounts","typeLabel":"object[] | null"},"launch_parameters":{"oneOf":[{"type":"object","description":"Parameters to configure your Devbox at launch time.","properties":{"launch_commands":{"oneOf":[{"items":{"type":"string","uniqueKey":"parameters.launch_parameters.oneOf.0.launch_commands.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Set of commands to be run at launch time, before the entrypoint process is run.","type":"array","uniqueKey":"parameters.launch_parameters.oneOf.0.launch_commands.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"description":"Set of commands to be run at launch time, before the entrypoint process is run.","type":"null","uniqueKey":"parameters.launch_parameters.oneOf.0.launch_commands.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.launch_commands","typeLabel":"string[] | null"},"resource_size_request":{"oneOf":[{"type":"string","description":"Preset Devbox resources (vCPU, RAM in GiB, ephemeral disk in GiB). If not set, SMALL is used. X_SMALL: 0.5 vCPU, 1 GiB RAM, 4 GiB disk. SMALL: 1 vCPU, 2 GiB RAM, 4 GiB disk. MEDIUM: 2 vCPU, 4 GiB RAM, 8 GiB disk. LARGE: 2 vCPU, 8 GiB RAM, 16 GiB disk. X_LARGE: 4 vCPU, 16 GiB RAM, 16 GiB disk. XX_LARGE: 8 vCPU, 32 GiB RAM, 16 GiB disk. CUSTOM_SIZE: set custom_cpu_cores, custom_gb_memory, and optionally custom_disk_size.","enum":["X_SMALL","SMALL","MEDIUM","LARGE","X_LARGE","XX_LARGE","CUSTOM_SIZE"],"x-enum-descriptions":{"X_SMALL":"0.5 cpu x 1GiB memory x 4GiB disk","SMALL":"1 cpu x 2GiB memory x 4GiB disk","MEDIUM":"2 cpu x 4GiB memory x 8GiB disk","LARGE":"2 cpu x 8GiB memory x 16GiB disk","X_LARGE":"4 cpu x 16GiB memory x 16GiB disk","XX_LARGE":"8 cpu x 32GiB memory x 16GiB disk","CUSTOM_SIZE":"To choose a custom size, set this enum and also the custom_cpu_cores, custom_gb_memory, and optionally custom_disk_size in launch parameters. CPU must be 0.5, 1, or a multiple of 2 (max 16). Memory must be 1 or a multiple of 2 (max 64GiB). Disk must be a multiple of 2 (min 2GiB, max 64GiB). The cpu:memory ratio must be between 1:2 and 1:8 inclusive."},"uniqueKey":"parameters.launch_parameters.oneOf.0.resource_size_request.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"Preset Devbox resources (vCPU, RAM in GiB, ephemeral disk in GiB). If not set, SMALL is used. X_SMALL: 0.5 vCPU, 1 GiB RAM, 4 GiB disk. SMALL: 1 vCPU, 2 GiB RAM, 4 GiB disk. MEDIUM: 2 vCPU, 4 GiB RAM, 8 GiB disk. LARGE: 2 vCPU, 8 GiB RAM, 16 GiB disk. X_LARGE: 4 vCPU, 16 GiB RAM, 16 GiB disk. XX_LARGE: 8 vCPU, 32 GiB RAM, 16 GiB disk. CUSTOM_SIZE: set custom_cpu_cores, custom_gb_memory, and optionally custom_disk_size.","uniqueKey":"parameters.launch_parameters.oneOf.0.resource_size_request.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.resource_size_request","typeLabel":"enum\u003cstring> | null"},"available_ports":{"oneOf":[{"items":{"type":"integer","format":"int32","uniqueKey":"parameters.launch_parameters.oneOf.0.available_ports.oneOf.0.items.[INDEX]","typeLabel":"integer\u003cint32>"},"description":"[Deprecated] A list of ports to make available on the Devbox. This field is ignored.","type":"array","uniqueKey":"parameters.launch_parameters.oneOf.0.available_ports.oneOf.0","typeLabel":"integer\u003cint32>[]"},{"items":{"type":"integer","format":"int32"},"description":"[Deprecated] A list of ports to make available on the Devbox. This field is ignored.","type":"null","uniqueKey":"parameters.launch_parameters.oneOf.0.available_ports.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.available_ports","typeLabel":"integer\u003cint32>[] | null"},"keep_alive_time_seconds":{"oneOf":[{"format":"int64","description":"Time in seconds after which Devbox will automatically shutdown. Default is 1 hour. Maximum is 48 hours (172800 seconds).","type":"integer","uniqueKey":"parameters.launch_parameters.oneOf.0.keep_alive_time_seconds.oneOf.0","typeLabel":"integer\u003cint64>"},{"format":"int64","description":"Time in seconds after which Devbox will automatically shutdown. Default is 1 hour. Maximum is 48 hours (172800 seconds).","type":"null","uniqueKey":"parameters.launch_parameters.oneOf.0.keep_alive_time_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.keep_alive_time_seconds","typeLabel":"integer\u003cint64> | null"},"after_idle":{"oneOf":[{"type":"object","description":"Configure Devbox lifecycle based on idle activity. If after_idle is set, Devbox will ignore keep_alive_time_seconds. If both after_idle and lifecycle.after_idle are set, they must have the same value. Use lifecycle.after_idle instead.","required":["idle_time_seconds","on_idle"],"properties":{"idle_time_seconds":{"type":"integer","format":"int32","description":"After idle_time_seconds, on_idle action will be taken.","isRequired":true,"uniqueKey":"parameters.launch_parameters.oneOf.0.after_idle.oneOf.0.idle_time_seconds","typeLabel":"integer\u003cint32>"},"on_idle":{"type":"string","enum":["shutdown","suspend"],"description":"Action to take after Devbox becomes idle.","x-enum-descriptions":{"shutdown":"Shutdown the Devbox.","suspend":"Suspend the Devbox."},"isRequired":true,"uniqueKey":"parameters.launch_parameters.oneOf.0.after_idle.oneOf.0.on_idle","typeLabel":"enum\u003cstring>"}},"uniqueKey":"parameters.launch_parameters.oneOf.0.after_idle.oneOf.0","typeLabel":"object"},{"type":"null","description":"Configure Devbox lifecycle based on idle activity. If after_idle is set, Devbox will ignore keep_alive_time_seconds. If both after_idle and lifecycle.after_idle are set, they must have the same value. Use lifecycle.after_idle instead.","uniqueKey":"parameters.launch_parameters.oneOf.0.after_idle.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.after_idle","typeLabel":"object | null"},"custom_cpu_cores":{"oneOf":[{"format":"double","description":"Custom CPU cores. Must be 0.5, 1, or a multiple of 2. Max is 16.","type":"number","uniqueKey":"parameters.launch_parameters.oneOf.0.custom_cpu_cores.oneOf.0","typeLabel":"number\u003cdouble>"},{"format":"double","description":"Custom CPU cores. Must be 0.5, 1, or a multiple of 2. Max is 16.","type":"null","uniqueKey":"parameters.launch_parameters.oneOf.0.custom_cpu_cores.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.custom_cpu_cores","typeLabel":"number\u003cdouble> | null"},"custom_gb_memory":{"oneOf":[{"format":"int32","description":"Custom memory size in GiB. Must be 1 or a multiple of 2. Max is 64GiB.","type":"integer","uniqueKey":"parameters.launch_parameters.oneOf.0.custom_gb_memory.oneOf.0","typeLabel":"integer\u003cint32>"},{"format":"int32","description":"Custom memory size in GiB. Must be 1 or a multiple of 2. Max is 64GiB.","type":"null","uniqueKey":"parameters.launch_parameters.oneOf.0.custom_gb_memory.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.custom_gb_memory","typeLabel":"integer\u003cint32> | null"},"custom_disk_size":{"oneOf":[{"format":"int32","description":"Custom disk size in GiB. Must be a multiple of 2. Min is 2GiB, max is 64GiB.","type":"integer","uniqueKey":"parameters.launch_parameters.oneOf.0.custom_disk_size.oneOf.0","typeLabel":"integer\u003cint32>"},{"format":"int32","description":"Custom disk size in GiB. Must be a multiple of 2. Min is 2GiB, max is 64GiB.","type":"null","uniqueKey":"parameters.launch_parameters.oneOf.0.custom_disk_size.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.custom_disk_size","typeLabel":"integer\u003cint32> | null"},"architecture":{"oneOf":[{"type":"string","description":"The target architecture for the Devbox. If unset, defaults to x86_64.","enum":["x86_64","arm64"],"uniqueKey":"parameters.launch_parameters.oneOf.0.architecture.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The target architecture for the Devbox. If unset, defaults to x86_64.","uniqueKey":"parameters.launch_parameters.oneOf.0.architecture.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.architecture","typeLabel":"enum\u003cstring> | null"},"user_parameters":{"oneOf":[{"type":"object","description":"Specify the user for execution on Devbox. If not set, default `user` will be used.","required":["username","uid"],"properties":{"username":{"type":"string","description":"Username for the Linux user.","isRequired":true,"uniqueKey":"parameters.launch_parameters.oneOf.0.user_parameters.oneOf.0.username","typeLabel":"string"},"uid":{"type":"integer","format":"int32","description":"User ID (UID) for the Linux user. Must be a non-negative integer.","isRequired":true,"uniqueKey":"parameters.launch_parameters.oneOf.0.user_parameters.oneOf.0.uid","typeLabel":"integer\u003cint32>"}},"uniqueKey":"parameters.launch_parameters.oneOf.0.user_parameters.oneOf.0","typeLabel":"object"},{"type":"null","description":"Specify the user for execution on Devbox. If not set, default `user` will be used.","uniqueKey":"parameters.launch_parameters.oneOf.0.user_parameters.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.user_parameters","typeLabel":"object | null"},"required_services":{"oneOf":[{"items":{"type":"string","uniqueKey":"parameters.launch_parameters.oneOf.0.required_services.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"A list of ContainerizedService names to be started when a Devbox is created. A valid ContainerizedService must be specified in Blueprint to be started.","type":"array","uniqueKey":"parameters.launch_parameters.oneOf.0.required_services.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"description":"A list of ContainerizedService names to be started when a Devbox is created. A valid ContainerizedService must be specified in Blueprint to be started.","type":"null","uniqueKey":"parameters.launch_parameters.oneOf.0.required_services.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.required_services","typeLabel":"string[] | null"},"network_policy_id":{"oneOf":[{"description":"(Optional) ID of the network policy to apply to Devboxes launched with these parameters. When set on a Blueprint launch parameters, Devboxes created from it will inherit this policy unless explicitly overridden.","type":"string","uniqueKey":"parameters.launch_parameters.oneOf.0.network_policy_id.oneOf.0","typeLabel":"string"},{"description":"(Optional) ID of the network policy to apply to Devboxes launched with these parameters. When set on a Blueprint launch parameters, Devboxes created from it will inherit this policy unless explicitly overridden.","type":"null","uniqueKey":"parameters.launch_parameters.oneOf.0.network_policy_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.network_policy_id","typeLabel":"string | null"},"lifecycle":{"oneOf":[{"type":"object","description":"Lifecycle configuration for idle and resume behavior. Configure idle policy via lifecycle.after_idle (if both this and the top-level after_idle are set, they must match), resume triggers via lifecycle.resume_triggers, and optional lifecycle hooks via lifecycle.lifecycle_hooks.","properties":{"after_idle":{"oneOf":[{"type":"object","description":"Configure Devbox lifecycle based on idle activity. If both this and the top-level after_idle are set, they must have the same value. Prefer this field for new integrations.","required":["idle_time_seconds","on_idle"],"properties":{"idle_time_seconds":{"type":"integer","format":"int32","description":"After idle_time_seconds, on_idle action will be taken.","isRequired":true,"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.after_idle.oneOf.0.idle_time_seconds","typeLabel":"integer\u003cint32>"},"on_idle":{"type":"string","enum":["shutdown","suspend"],"description":"Action to take after Devbox becomes idle.","x-enum-descriptions":{"shutdown":"Shutdown the Devbox.","suspend":"Suspend the Devbox."},"isRequired":true,"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.after_idle.oneOf.0.on_idle","typeLabel":"enum\u003cstring>"}},"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.after_idle.oneOf.0","typeLabel":"object"},{"type":"null","description":"Configure Devbox lifecycle based on idle activity. If both this and the top-level after_idle are set, they must have the same value. Prefer this field for new integrations.","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.after_idle.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.after_idle","typeLabel":"object | null"},"resume_triggers":{"oneOf":[{"type":"object","description":"Triggers that can resume a suspended Devbox.","properties":{"http":{"oneOf":[{"description":"When true, HTTP traffic to a suspended Devbox via tunnel will trigger a resume.","type":"boolean","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0.http.oneOf.0","typeLabel":"boolean"},{"description":"When true, HTTP traffic to a suspended Devbox via tunnel will trigger a resume.","type":"null","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0.http.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0.http","typeLabel":"boolean | null"},"axon_event":{"oneOf":[{"description":"When true, axon events targeting a suspended Devbox will trigger a resume.","type":"boolean","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0.axon_event.oneOf.0","typeLabel":"boolean"},{"description":"When true, axon events targeting a suspended Devbox will trigger a resume.","type":"null","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0.axon_event.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0.axon_event","typeLabel":"boolean | null"}},"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.0","typeLabel":"object"},{"type":"null","description":"Triggers that can resume a suspended Devbox.","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.resume_triggers","typeLabel":"object | null"},"lifecycle_hooks":{"oneOf":[{"type":"object","description":"Optional lifecycle hooks. suspend_commands run through the suspend path before the Devbox suspends; see launch_commands for work on every startup.","properties":{"suspend_commands":{"oneOf":[{"items":{"type":"string","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_commands.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"Commands to run through the suspend path before the Devbox suspends (e.g. cleanup, quiesce daemons).","type":"array","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_commands.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"description":"Commands to run through the suspend path before the Devbox suspends (e.g. cleanup, quiesce daemons).","type":"null","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_commands.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_commands","typeLabel":"string[] | null"},"suspend_deadline_ms":{"oneOf":[{"format":"int64","description":"Deadline in milliseconds for broker drain and suspend_commands during suspend. Defaults to 30000 ms and may not exceed 60000 ms. If exceeded, suspend work is abandoned, the timeout is logged, and the Devbox still proceeds to suspend by shutting down vmagent and killing the VM.","type":"integer","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_deadline_ms.oneOf.0","typeLabel":"integer\u003cint64>"},{"format":"int64","description":"Deadline in milliseconds for broker drain and suspend_commands during suspend. Defaults to 30000 ms and may not exceed 60000 ms. If exceeded, suspend work is abandoned, the timeout is logged, and the Devbox still proceeds to suspend by shutting down vmagent and killing the VM.","type":"null","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_deadline_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0.suspend_deadline_ms","typeLabel":"integer\u003cint64> | null"}},"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.0","typeLabel":"object"},{"type":"null","description":"Optional lifecycle hooks. suspend_commands run through the suspend path before the Devbox suspends; see launch_commands for work on every startup.","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0.lifecycle_hooks","typeLabel":"object | null"}},"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.0","typeLabel":"object"},{"type":"null","description":"Lifecycle configuration for idle and resume behavior. Configure idle policy via lifecycle.after_idle (if both this and the top-level after_idle are set, they must match), resume triggers via lifecycle.resume_triggers, and optional lifecycle hooks via lifecycle.lifecycle_hooks.","uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.lifecycle","typeLabel":"object | null"},"provisioning_tier":{"oneOf":[{"type":"string","description":"(Optional, Alpha) standard is default and flex is lazily provisioned and may be pre-empted. This is an alpha feature and its behavior may change without notice.","enum":["standard","flex"],"uniqueKey":"parameters.launch_parameters.oneOf.0.provisioning_tier.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"(Optional, Alpha) standard is default and flex is lazily provisioned and may be pre-empted. This is an alpha feature and its behavior may change without notice.","uniqueKey":"parameters.launch_parameters.oneOf.0.provisioning_tier.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters.oneOf.0.provisioning_tier","typeLabel":"enum\u003cstring> | null"}},"uniqueKey":"parameters.launch_parameters.oneOf.0","typeLabel":"object"},{"type":"null","description":"Parameters to configure your Devbox at launch time.","uniqueKey":"parameters.launch_parameters.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.launch_parameters","typeLabel":"object | null"},"file_mounts":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"parameters.file_mounts.oneOf.0.additionalProperties","typeLabel":"string"},"description":"(Optional) Map of paths and file contents to write before setup.","type":"object","uniqueKey":"parameters.file_mounts.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"parameters.file_mounts.oneOf.1.additionalProperties","typeLabel":"string"},"description":"(Optional) Map of paths and file contents to write before setup.","type":"null","uniqueKey":"parameters.file_mounts.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.file_mounts","typeLabel":"object | null"},"base_blueprint_id":{"oneOf":[{"description":"(Optional) ID of previously built blueprint to use as a base blueprint for this build.","type":"string","uniqueKey":"parameters.base_blueprint_id.oneOf.0","typeLabel":"string"},{"description":"(Optional) ID of previously built blueprint to use as a base blueprint for this build.","type":"null","uniqueKey":"parameters.base_blueprint_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.base_blueprint_id","typeLabel":"string | null"},"base_blueprint_name":{"oneOf":[{"description":"(Optional) Name of previously built blueprint to use as a base blueprint for this build. When set, this will load the latest successfully built Blueprint with the given name. Only one of (base_blueprint_id, base_blueprint_name) should be specified.","type":"string","uniqueKey":"parameters.base_blueprint_name.oneOf.0","typeLabel":"string"},{"description":"(Optional) Name of previously built blueprint to use as a base blueprint for this build. When set, this will load the latest successfully built Blueprint with the given name. Only one of (base_blueprint_id, base_blueprint_name) should be specified.","type":"null","uniqueKey":"parameters.base_blueprint_name.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.base_blueprint_name","typeLabel":"string | null"},"services":{"oneOf":[{"items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the container service.","isRequired":true,"uniqueKey":"parameters.services.oneOf.0.items.[INDEX].name","typeLabel":"string"},"image":{"type":"string","description":"The image of the container service.","isRequired":true,"uniqueKey":"parameters.services.oneOf.0.items.[INDEX].image","typeLabel":"string"},"credentials":{"oneOf":[{"type":"object","description":"The credentials of the container service.","required":["username","password"],"properties":{"username":{"type":"string","description":"The username of the container service.","isRequired":true,"uniqueKey":"parameters.services.oneOf.0.items.[INDEX].credentials.oneOf.0.username","typeLabel":"string"},"password":{"type":"string","description":"The password of the container service.","isRequired":true,"uniqueKey":"parameters.services.oneOf.0.items.[INDEX].credentials.oneOf.0.password","typeLabel":"string"}},"uniqueKey":"parameters.services.oneOf.0.items.[INDEX].credentials.oneOf.0","typeLabel":"object"},{"type":"null","description":"The credentials of the container service.","uniqueKey":"parameters.services.oneOf.0.items.[INDEX].credentials.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.services.oneOf.0.items.[INDEX].credentials","typeLabel":"object | null"},"env":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"parameters.services.oneOf.0.items.[INDEX].env.oneOf.0.additionalProperties","typeLabel":"string"},"description":"The environment variables of the container service.","type":"object","uniqueKey":"parameters.services.oneOf.0.items.[INDEX].env.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"parameters.services.oneOf.0.items.[INDEX].env.oneOf.1.additionalProperties","typeLabel":"string"},"description":"The environment variables of the container service.","type":"null","uniqueKey":"parameters.services.oneOf.0.items.[INDEX].env.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.services.oneOf.0.items.[INDEX].env","typeLabel":"object | null"},"port_mappings":{"oneOf":[{"items":{"type":"string","uniqueKey":"parameters.services.oneOf.0.items.[INDEX].port_mappings.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"The port mappings of the container service. Port mappings are in the format of \u003chost_port>:\u003ccontainer_port>.","type":"array","uniqueKey":"parameters.services.oneOf.0.items.[INDEX].port_mappings.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"description":"The port mappings of the container service. Port mappings are in the format of \u003chost_port>:\u003ccontainer_port>.","type":"null","uniqueKey":"parameters.services.oneOf.0.items.[INDEX].port_mappings.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.services.oneOf.0.items.[INDEX].port_mappings","typeLabel":"string[] | null"},"options":{"oneOf":[{"description":"Additional Docker container create options.","type":"string","uniqueKey":"parameters.services.oneOf.0.items.[INDEX].options.oneOf.0","typeLabel":"string"},{"description":"Additional Docker container create options.","type":"null","uniqueKey":"parameters.services.oneOf.0.items.[INDEX].options.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.services.oneOf.0.items.[INDEX].options","typeLabel":"string | null"}},"required":["name","image"],"uniqueKey":"parameters.services.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"(Optional) List of containerized services to include in the Blueprint. These services will be pre-pulled during the build phase for optimized startup performance.","type":"array","uniqueKey":"parameters.services.oneOf.0","typeLabel":"object[]"},{"items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the container service."},"image":{"type":"string","description":"The image of the container service."},"credentials":{"oneOf":[{"type":"object","description":"The credentials of the container service.","required":["username","password"],"properties":{"username":{"type":"string","description":"The username of the container service."},"password":{"type":"string","description":"The password of the container service."}}},{"type":"null","description":"The credentials of the container service."}]},"env":{"oneOf":[{"additionalProperties":{"type":"string"},"description":"The environment variables of the container service.","type":"object"},{"additionalProperties":{"type":"string"},"description":"The environment variables of the container service.","type":"null"}]},"port_mappings":{"oneOf":[{"items":{"type":"string"},"description":"The port mappings of the container service. Port mappings are in the format of \u003chost_port>:\u003ccontainer_port>.","type":"array"},{"items":{"type":"string"},"description":"The port mappings of the container service. Port mappings are in the format of \u003chost_port>:\u003ccontainer_port>.","type":"null"}]},"options":{"oneOf":[{"description":"Additional Docker container create options.","type":"string"},{"description":"Additional Docker container create options.","type":"null"}]}},"required":["name","image"]},"description":"(Optional) List of containerized services to include in the Blueprint. These services will be pre-pulled during the build phase for optimized startup performance.","type":"null","uniqueKey":"parameters.services.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.services","typeLabel":"object[] | null"},"metadata":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"parameters.metadata.oneOf.0.additionalProperties","typeLabel":"string"},"description":"(Optional) User defined metadata for the Blueprint.","type":"object","uniqueKey":"parameters.metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"parameters.metadata.oneOf.1.additionalProperties","typeLabel":"string"},"description":"(Optional) User defined metadata for the Blueprint.","type":"null","uniqueKey":"parameters.metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.metadata","typeLabel":"object | null"},"build_args":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"parameters.build_args.oneOf.0.additionalProperties","typeLabel":"string"},"description":"(Optional) Arbitrary Docker build args to pass during build.","type":"object","uniqueKey":"parameters.build_args.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"parameters.build_args.oneOf.1.additionalProperties","typeLabel":"string"},"description":"(Optional) Arbitrary Docker build args to pass during build.","type":"null","uniqueKey":"parameters.build_args.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.build_args","typeLabel":"object | null"},"secrets":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"parameters.secrets.oneOf.0.additionalProperties","typeLabel":"string"},"description":"(Optional) Map of mount IDs/environment variable names to secret names. Secrets will be available to commands during the build. Secrets are NOT stored in the blueprint image. Example: {\"DB_PASS\": \"DATABASE_PASSWORD\"} makes the secret 'DATABASE_PASSWORD' available as environment variable 'DB_PASS'.","type":"object","uniqueKey":"parameters.secrets.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"parameters.secrets.oneOf.1.additionalProperties","typeLabel":"string"},"description":"(Optional) Map of mount IDs/environment variable names to secret names. Secrets will be available to commands during the build. Secrets are NOT stored in the blueprint image. Example: {\"DB_PASS\": \"DATABASE_PASSWORD\"} makes the secret 'DATABASE_PASSWORD' available as environment variable 'DB_PASS'.","type":"null","uniqueKey":"parameters.secrets.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.secrets","typeLabel":"object | null"},"build_context":{"oneOf":[{"type":"object","description":"(Optional) Build context to be attached to the Blueprint build. This context is the source of COPY and ADD directives.","required":["object_id","type"],"properties":{"object_id":{"type":"string","description":"The ID of an object, whose contents are to be used as a build context.","isRequired":true,"uniqueKey":"parameters.build_context.oneOf.0.object_id","typeLabel":"string"},"type":{"type":"string","enum":["object"],"default":"object","isRequired":true,"uniqueKey":"parameters.build_context.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"uniqueKey":"parameters.build_context.oneOf.0","typeLabel":"object"},{"type":"null","description":"(Optional) Build context to be attached to the Blueprint build. This context is the source of COPY and ADD directives.","uniqueKey":"parameters.build_context.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.build_context","typeLabel":"object | null"},"network_policy_id":{"oneOf":[{"description":"(Optional) ID of the network policy to apply during blueprint build. This restricts network access during the build process. This does not affect devboxes created from this blueprint; if you want devboxes created from this blueprint to inherit the network policy, set the network_policy_id on the blueprint launch parameters.","type":"string","uniqueKey":"parameters.network_policy_id.oneOf.0","typeLabel":"string"},{"description":"(Optional) ID of the network policy to apply during blueprint build. This restricts network access during the build process. This does not affect devboxes created from this blueprint; if you want devboxes created from this blueprint to inherit the network policy, set the network_policy_id on the blueprint launch parameters.","type":"null","uniqueKey":"parameters.network_policy_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"parameters.network_policy_id","typeLabel":"string | null"}},"required":["name"],"description":"The parameters used to create Blueprint.","isRequired":true,"uniqueKey":"parameters","typeLabel":"object"},"build_finish_time_ms":{"oneOf":[{"format":"int64","description":"Build completion time of the Blueprint (Unix timestamp milliseconds).","type":"integer","uniqueKey":"build_finish_time_ms.oneOf.0","typeLabel":"integer\u003cint64>"},{"format":"int64","description":"Build completion time of the Blueprint (Unix timestamp milliseconds).","type":"null","uniqueKey":"build_finish_time_ms.oneOf.1","typeLabel":"null"}],"uniqueKey":"build_finish_time_ms","typeLabel":"integer\u003cint64> | null"},"failure_reason":{"oneOf":[{"type":"string","description":"The failure reason if the Blueprint build failed, if any.","enum":["out_of_memory","out_of_disk","build_failed"],"x-enum-descriptions":{"out_of_memory":"The build has run out of memory. Contact support if this is unexpected.","out_of_disk":"The build has run out of disk. Contact support if this is unexpected.","build_failed":"The build has failed. Use the dashboard to look at Blueprint build logs for more info."},"uniqueKey":"failure_reason.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","description":"The failure reason if the Blueprint build failed, if any.","uniqueKey":"failure_reason.oneOf.1","typeLabel":"null"}],"uniqueKey":"failure_reason","typeLabel":"enum\u003cstring> | null"},"base_blueprint_id":{"oneOf":[{"description":"The ID of the base Blueprint.","type":"string","uniqueKey":"base_blueprint_id.oneOf.0","typeLabel":"string"},{"description":"The ID of the base Blueprint.","type":"null","uniqueKey":"base_blueprint_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"base_blueprint_id","typeLabel":"string | null"},"containerized_services":{"oneOf":[{"items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the container service.","isRequired":true,"uniqueKey":"containerized_services.oneOf.0.items.[INDEX].name","typeLabel":"string"},"image":{"type":"string","description":"The image of the container service.","isRequired":true,"uniqueKey":"containerized_services.oneOf.0.items.[INDEX].image","typeLabel":"string"},"credentials":{"oneOf":[{"type":"object","description":"The credentials of the container service.","required":["username","password"],"properties":{"username":{"type":"string","description":"The username of the container service.","isRequired":true,"uniqueKey":"containerized_services.oneOf.0.items.[INDEX].credentials.oneOf.0.username","typeLabel":"string"},"password":{"type":"string","description":"The password of the container service.","isRequired":true,"uniqueKey":"containerized_services.oneOf.0.items.[INDEX].credentials.oneOf.0.password","typeLabel":"string"}},"uniqueKey":"containerized_services.oneOf.0.items.[INDEX].credentials.oneOf.0","typeLabel":"object"},{"type":"null","description":"The credentials of the container service.","uniqueKey":"containerized_services.oneOf.0.items.[INDEX].credentials.oneOf.1","typeLabel":"null"}],"uniqueKey":"containerized_services.oneOf.0.items.[INDEX].credentials","typeLabel":"object | null"},"env":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"containerized_services.oneOf.0.items.[INDEX].env.oneOf.0.additionalProperties","typeLabel":"string"},"description":"The environment variables of the container service.","type":"object","uniqueKey":"containerized_services.oneOf.0.items.[INDEX].env.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"containerized_services.oneOf.0.items.[INDEX].env.oneOf.1.additionalProperties","typeLabel":"string"},"description":"The environment variables of the container service.","type":"null","uniqueKey":"containerized_services.oneOf.0.items.[INDEX].env.oneOf.1","typeLabel":"null"}],"uniqueKey":"containerized_services.oneOf.0.items.[INDEX].env","typeLabel":"object | null"},"port_mappings":{"oneOf":[{"items":{"type":"string","uniqueKey":"containerized_services.oneOf.0.items.[INDEX].port_mappings.oneOf.0.items.[INDEX]","typeLabel":"string"},"description":"The port mappings of the container service. Port mappings are in the format of \u003chost_port>:\u003ccontainer_port>.","type":"array","uniqueKey":"containerized_services.oneOf.0.items.[INDEX].port_mappings.oneOf.0","typeLabel":"string[]"},{"items":{"type":"string"},"description":"The port mappings of the container service. Port mappings are in the format of \u003chost_port>:\u003ccontainer_port>.","type":"null","uniqueKey":"containerized_services.oneOf.0.items.[INDEX].port_mappings.oneOf.1","typeLabel":"null"}],"uniqueKey":"containerized_services.oneOf.0.items.[INDEX].port_mappings","typeLabel":"string[] | null"},"options":{"oneOf":[{"description":"Additional Docker container create options.","type":"string","uniqueKey":"containerized_services.oneOf.0.items.[INDEX].options.oneOf.0","typeLabel":"string"},{"description":"Additional Docker container create options.","type":"null","uniqueKey":"containerized_services.oneOf.0.items.[INDEX].options.oneOf.1","typeLabel":"null"}],"uniqueKey":"containerized_services.oneOf.0.items.[INDEX].options","typeLabel":"string | null"}},"required":["name","image"],"uniqueKey":"containerized_services.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"List of ContainerizedServices available in the Blueprint. Services can be explicitly started when creating a Devbox.","type":"array","uniqueKey":"containerized_services.oneOf.0","typeLabel":"object[]"},{"items":{"type":"object","properties":{"name":{"type":"string","description":"The name of the container service."},"image":{"type":"string","description":"The image of the container service."},"credentials":{"oneOf":[{"type":"object","description":"The credentials of the container service.","required":["username","password"],"properties":{"username":{"type":"string","description":"The username of the container service."},"password":{"type":"string","description":"The password of the container service."}}},{"type":"null","description":"The credentials of the container service."}]},"env":{"oneOf":[{"additionalProperties":{"type":"string"},"description":"The environment variables of the container service.","type":"object"},{"additionalProperties":{"type":"string"},"description":"The environment variables of the container service.","type":"null"}]},"port_mappings":{"oneOf":[{"items":{"type":"string"},"description":"The port mappings of the container service. Port mappings are in the format of \u003chost_port>:\u003ccontainer_port>.","type":"array"},{"items":{"type":"string"},"description":"The port mappings of the container service. Port mappings are in the format of \u003chost_port>:\u003ccontainer_port>.","type":"null"}]},"options":{"oneOf":[{"description":"Additional Docker container create options.","type":"string"},{"description":"Additional Docker container create options.","type":"null"}]}},"required":["name","image"]},"description":"List of ContainerizedServices available in the Blueprint. Services can be explicitly started when creating a Devbox.","type":"null","uniqueKey":"containerized_services.oneOf.1","typeLabel":"null"}],"uniqueKey":"containerized_services","typeLabel":"object[] | null"},"is_public":{"type":"boolean","description":"Whether this Blueprint is publicly accessible to all users.","uniqueKey":"is_public","typeLabel":"boolean"},"metadata":{"oneOf":[{"additionalProperties":{"type":"string","uniqueKey":"metadata.oneOf.0.additionalProperties","typeLabel":"string"},"description":"User defined metadata associated with the blueprint.","type":"object","uniqueKey":"metadata.oneOf.0","typeLabel":"object"},{"additionalProperties":{"type":"string","uniqueKey":"metadata.oneOf.1.additionalProperties","typeLabel":"string"},"description":"User defined metadata associated with the blueprint.","type":"null","uniqueKey":"metadata.oneOf.1","typeLabel":"null"}],"uniqueKey":"metadata","typeLabel":"object | null"},"devbox_capabilities":{"oneOf":[{"items":{"type":"string","enum":["unknown","docker_in_docker"],"uniqueKey":"devbox_capabilities.oneOf.0.items.[INDEX]","typeLabel":"enum\u003cstring>"},"description":"Capabilities that will be available on Devbox.","type":"array","uniqueKey":"devbox_capabilities.oneOf.0","typeLabel":"enum\u003cstring>[]"},{"items":{"type":"string","enum":["unknown","docker_in_docker"]},"description":"Capabilities that will be available on Devbox.","type":"null","uniqueKey":"devbox_capabilities.oneOf.1","typeLabel":"null"}],"uniqueKey":"devbox_capabilities","typeLabel":"enum\u003cstring>[] | null"}},"required":["id","name","status","state","create_time_ms","parameters"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","name":"\u003cstring>","status":"queued","state":"created","create_time_ms":123,"parameters":{"name":"\u003cstring>","dockerfile":"\u003cstring>","system_setup_commands":["\u003cstring>"],"code_mounts":[{"repo_name":"\u003cstring>","repo_owner":"\u003cstring>","install_command":"\u003cstring>","git_ref":"\u003cstring>","token":"\u003cstring>"}],"launch_parameters":{"launch_commands":["\u003cstring>"],"resource_size_request":"X_SMALL","available_ports":[123],"keep_alive_time_seconds":123,"after_idle":{"idle_time_seconds":123,"on_idle":"shutdown"},"custom_cpu_cores":123,"custom_gb_memory":123,"custom_disk_size":123,"architecture":"x86_64","user_parameters":{"username":"\u003cstring>","uid":123},"required_services":["\u003cstring>"],"network_policy_id":"\u003cstring>","lifecycle":{"after_idle":{"idle_time_seconds":123,"on_idle":"shutdown"},"resume_triggers":{"http":true,"axon_event":true},"lifecycle_hooks":{"suspend_commands":["\u003cstring>"],"suspend_deadline_ms":123}},"provisioning_tier":"standard"},"file_mounts":{},"base_blueprint_id":"\u003cstring>","base_blueprint_name":"\u003cstring>","services":[{"name":"\u003cstring>","image":"\u003cstring>","credentials":{"username":"\u003cstring>","password":"\u003cstring>"},"env":{},"port_mappings":["\u003cstring>"],"options":"\u003cstring>"}],"metadata":{},"build_args":{},"secrets":{},"build_context":{"object_id":"\u003cstring>","type":"object"},"network_policy_id":"\u003cstring>"},"build_finish_time_ms":123,"failure_reason":"out_of_memory","base_blueprint_id":"\u003cstring>","containerized_services":[{"name":"\u003cstring>","image":"\u003cstring>","credentials":{"username":"\u003cstring>","password":"\u003cstring>"},"env":{},"port_mappings":["\u003cstring>"],"options":"\u003cstring>"}],"is_public":true,"metadata":{},"devbox_capabilities":["unknown"]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"8ce27edf-f079-415e-937e-65fded4f9d46":{"bearerAuth":{"scheme":"bearer","type":"http","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"1d631bad-0fd6-4617-a8c4-8377826d815d":{"url":"https://api.runloop.ai","description":"Runloop API","variables":{}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"scheme":"bearer","type":"http","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi-specs/stainless-processed-openapi.json"},"subdomain":"runloopai","siteName":"Runloop AI Docs","title":"Create and build a Blueprint. - Runloop AI Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-24T21:07:34.197Z","originalFileLocation":"api-reference/blueprint/create-and-build-a-blueprint.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=\"dark\"}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=\"Starts build of custom defined container Blueprint. The Blueprint will begin in the \u0026#x27;provisioning\u0026#x27; step and transition to the \u0026#x27;building\u0026#x27; step once it is selected off the build queue., Upon build complete it will transition to \u0026#x27;building_complete\u0026#x27; if the build is successful.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Runloop AI Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/runloopai/pjXnHMZq1DfDYUjd/_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=\"/mintlify-assets/_mintlify/favicons/runloopai/pjXnHMZq1DfDYUjd/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/runloopai/pjXnHMZq1DfDYUjd/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/runloopai/pjXnHMZq1DfDYUjd/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/runloopai/pjXnHMZq1DfDYUjd/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/runloopai/pjXnHMZq1DfDYUjd/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/runloopai/pjXnHMZq1DfDYUjd/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/runloopai/pjXnHMZq1DfDYUjd/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/runloopai/pjXnHMZq1DfDYUjd/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create and build a Blueprint. - Runloop AI Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Starts build of custom defined container Blueprint. The Blueprint will begin in the \u0026#x27;provisioning\u0026#x27; step and transition to the \u0026#x27;building\u0026#x27; step once it is selected off the build queue., Upon build complete it will transition to \u0026#x27;building_complete\u0026#x27; if the build is successful.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Runloop AI Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.runloop.ai/api-reference/blueprint/create-and-build-a-blueprint\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://runloopai.mintlify.app/_mintlify/api/og/v2?division=Blueprint\u0026amp;title=Create+and+build+a+Blueprint.\u0026amp;description=Starts+build+of+custom+defined+container+Blueprint.+The+Blueprint+will+begin+in+the+%27provisioning%27+step+and+transition+to+the+%27building%27+step+once+it+is+selecte\u0026amp;theme=640224b746a7c52ddd40c033\u0026amp;signature=dc9460c54dfd0fca80e2f402207f8c49e8aef7ad00882b6f65ad4791190f5893\">\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 and build a Blueprint. - Runloop AI Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Starts build of custom defined container Blueprint. The Blueprint will begin in the \u0026#x27;provisioning\u0026#x27; step and transition to the \u0026#x27;building\u0026#x27; step once it is selected off the build queue., Upon build complete it will transition to \u0026#x27;building_complete\u0026#x27; if the build is successful.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://runloopai.mintlify.app/_mintlify/api/og/v2?division=Blueprint\u0026amp;title=Create+and+build+a+Blueprint.\u0026amp;description=Starts+build+of+custom+defined+container+Blueprint.+The+Blueprint+will+begin+in+the+%27provisioning%27+step+and+transition+to+the+%27building%27+step+once+it+is+selecte\u0026amp;theme=640224b746a7c52ddd40c033\u0026amp;signature=dc9460c54dfd0fca80e2f402207f8c49e8aef7ad00882b6f65ad4791190f5893\">\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=\"/mintlify-assets/_mintlify/favicons/runloopai/pjXnHMZq1DfDYUjd/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Runloop AI Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#118362\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.runloop.ai/api-reference/blueprint/create-and-build-a-blueprint\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/blueprint/create-and-build-a-blueprint.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.runloop.ai/#organization\",\"name\":\"Runloop AI Docs\",\"url\":\"https://docs.runloop.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/runloopai/Us2eHV2_UnUki3-j/logo/runloop-logo.png?fit=max\u0026auto=format\u0026n=Us2eHV2_UnUki3-j\u0026q=85\u0026s=f3caaf67e1c45f535be611579f752bad\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.runloop.ai#website\",\"name\":\"Runloop AI Docs\",\"url\":\"https://docs.runloop.ai\",\"publisher\":{\"@id\":\"https://docs.runloop.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.runloop.ai/api-reference/blueprint/create-and-build-a-blueprint#webpage\",\"url\":\"https://docs.runloop.ai/api-reference/blueprint/create-and-build-a-blueprint\",\"name\":\"Create and build a Blueprint.\",\"description\":\"Starts build of custom defined container Blueprint. The Blueprint will begin in the 'provisioning' step and transition to the 'building' step once it is selected off the build queue., Upon build complete it will transition to 'building_complete' if the build is successful.\",\"dateModified\":\"2026-10-24T21:07:34.197Z\",\"isPartOf\":{\"@id\":\"https://docs.runloop.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.runloop.ai/api-reference/blueprint/create-and-build-a-blueprint#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.runloop.ai/api-reference/blueprint/create-and-build-a-blueprint#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blueprint\",\"item\":\"https://docs.runloop.ai/api-reference/blueprint/list-blueprints\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create and build a Blueprint.\",\"item\":\"https://docs.runloop.ai/api-reference/blueprint/create-and-build-a-blueprint\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.runloop.ai/api-reference/blueprint/create-and-build-a-blueprint#apireference\",\"headline\":\"Create and build a Blueprint.\",\"name\":\"Create and build a Blueprint.\",\"description\":\"Starts build of custom defined container Blueprint. The Blueprint will begin in the 'provisioning' step and transition to the 'building' step once it is selected off the build queue., Upon build complete it will transition to 'building_complete' if the build is successful.\",\"url\":\"https://docs.runloop.ai/api-reference/blueprint/create-and-build-a-blueprint\",\"mainEntityOfPage\":{\"@id\":\"https://docs.runloop.ai/api-reference/blueprint/create-and-build-a-blueprint#webpage\"},\"dateModified\":\"2026-10-24T21:07:34.197Z\",\"publisher\":{\"@id\":\"https://docs.runloop.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.runloop.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Runloop AI Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Runloop AI Docs","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/docs/overview/what-is-runloop"}]},{"tab":"API Reference","groups":[{"group":"Devbox","pages":[{"title":"Create or reconnect to a PTY session.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /pty/{session_name}","href":"/api-reference/devbox/create-or-reconnect-to-a-pty-session"},{"title":"Send a control command to a PTY session.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /pty/{session_name}/control","href":"/api-reference/devbox/send-a-control-command-to-a-pty-session"},{"title":"List Devboxes.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes","href":"/api-reference/devbox/list-devboxes"},{"title":"Create a Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes","href":"/api-reference/devbox/create-a-devbox"},{"title":"List disk snapshots of a Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/disk_snapshots","href":"/api-reference/devbox/list-disk-snapshots-of-a-devbox"},{"title":"List public disk snapshots.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/disk_snapshots/list_public","href":"/api-reference/devbox/list-public-disk-snapshots"},{"title":"List available snapshot metadata keys.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/disk_snapshots/metadata/keys","href":"/api-reference/devbox/list-available-snapshot-metadata-keys"},{"title":"List values for a specific snapshot metadata key.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/disk_snapshots/metadata/keys/{key}/values","href":"/api-reference/devbox/list-values-for-a-specific-snapshot-metadata-key"},{"title":"List available public snapshot metadata keys.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/disk_snapshots/public/metadata/keys","href":"/api-reference/devbox/list-available-public-snapshot-metadata-keys"},{"title":"List values for a specific public snapshot metadata key.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/disk_snapshots/public/metadata/keys/{key}/values","href":"/api-reference/devbox/list-values-for-a-specific-public-snapshot-metadata-key"},{"title":"Update metadata of Disk Snapshot.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/disk_snapshots/{id}","href":"/api-reference/devbox/update-metadata-of-disk-snapshot"},{"title":"Delete a disk snapshot of a Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/disk_snapshots/{id}/delete","href":"/api-reference/devbox/delete-a-disk-snapshot-of-a-devbox"},{"title":"Query the status of an asynchronous disk snapshot.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/disk_snapshots/{id}/status","href":"/api-reference/devbox/query-the-status-of-an-asynchronous-disk-snapshot"},{"title":"List available devbox metadata keys.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/metadata/keys","href":"/api-reference/devbox/list-available-devbox-metadata-keys"},{"title":"List values for a specific devbox metadata key.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/metadata/keys/{key}/values","href":"/api-reference/devbox/list-values-for-a-specific-devbox-metadata-key"},{"title":"Get status of an asynchronous execution on a Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/{devbox_id}/executions/{execution_id}","href":"/api-reference/devbox/get-status-of-an-asynchronous-execution-on-a-devbox"},{"title":"Kill an asynchronous execution currently running on a devbox","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{devbox_id}/executions/{execution_id}/kill","href":"/api-reference/devbox/kill-an-asynchronous-execution-currently-running-on-a-devbox"},{"title":"Send Content to Std In for a running execution.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{devbox_id}/executions/{execution_id}/send_std_in","href":"/api-reference/devbox/send-content-to-std-in-for-a-running-execution"},{"title":"Wait for an asynchronous execution to reach a specific status.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{devbox_id}/executions/{execution_id}/wait_for_status","href":"/api-reference/devbox/wait-for-an-asynchronous-execution-to-reach-a-specific-status"},{"title":"Get Devbox details.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/{id}","href":"/api-reference/devbox/get-devbox-details"},{"title":"Update a Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}","href":"/api-reference/devbox/update-a-devbox"},{"title":"Mint an agent gateway token for a Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/create_gateway_token","href":"/api-reference/devbox/mint-an-agent-gateway-token-for-a-devbox"},{"title":"[Beta] Mint an MCP token for a Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/create_mcp_token","href":"/api-reference/devbox/[beta]-mint-an-mcp-token-for-a-devbox"},{"title":"Create an ephemeral PTY tunnel for a running Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/create_pty_tunnel","href":"/api-reference/devbox/create-an-ephemeral-pty-tunnel-for-a-running-devbox"},{"title":"Create an SSH key for a Devbox","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/create_ssh_key","href":"/api-reference/devbox/create-an-ssh-key-for-a-devbox"},{"title":"Download binary file contents from Devbox filesystem.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/download_file","href":"/api-reference/devbox/download-binary-file-contents-from-devbox-filesystem"},{"title":"Enable a tunnel for a running Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/enable_tunnel","href":"/api-reference/devbox/enable-a-tunnel-for-a-running-devbox"},{"title":"Execute a command with a known ID, optimistically waiting for completion","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/execute","href":"/api-reference/devbox/execute-a-command-with-a-known-id-optimistically-waiting-for-completion"},{"title":"Asynchronously execute a command via the Devbox shell","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/execute_async","href":"/api-reference/devbox/asynchronously-execute-a-command-via-the-devbox-shell"},{"title":"(Deprecated, please use /execute_async) Synchronously execute a shell command on a Devbox","deprecated":true,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/execute_sync","href":"/api-reference/devbox/deprecated-please-use-execute_async-synchronously-execute-a-shell-command-on-a-devbox"},{"title":"Reset the idle timer of a running Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/keep_alive","href":"/api-reference/devbox/reset-the-idle-timer-of-a-running-devbox"},{"title":"Get Devbox logs.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/{id}/logs","href":"/api-reference/devbox/get-devbox-logs"},{"title":"Live Tail Devbox Logs.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/{id}/logs/tail","href":"/api-reference/devbox/live-tail-devbox-logs"},{"title":"Read text file contents from Devbox filesystem.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/read_file_contents","href":"/api-reference/devbox/read-text-file-contents-from-devbox-filesystem"},{"title":"Remove a tunnel from the Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/remove_tunnel","href":"/api-reference/devbox/remove-a-tunnel-from-the-devbox"},{"title":"Resume a suspended Devbox","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/resume","href":"/api-reference/devbox/resume-a-suspended-devbox"},{"title":"Shutdown a running Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/shutdown","href":"/api-reference/devbox/shutdown-a-running-devbox"},{"title":"Synchronously create a disk snapshot of a running Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/snapshot_disk","href":"/api-reference/devbox/synchronously-create-a-disk-snapshot-of-a-running-devbox"},{"title":"Start an asynchronous disk snapshot of a running Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/snapshot_disk_async","href":"/api-reference/devbox/start-an-asynchronous-disk-snapshot-of-a-running-devbox"},{"title":"Suspend a running Devbox","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/suspend","href":"/api-reference/devbox/suspend-a-running-devbox"},{"title":"Upload binary file contents to Devbox filesystem.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/upload_file","href":"/api-reference/devbox/upload-binary-file-contents-to-devbox-filesystem"},{"title":"Get resource usage for a Devbox.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/{id}/usage","href":"/api-reference/devbox/get-resource-usage-for-a-devbox"},{"title":"Wait for a Devbox to reach one of the specified statuses.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/wait_for_status","href":"/api-reference/devbox/wait-for-a-devbox-to-reach-one-of-the-specified-statuses"},{"title":"Write text file contents to Devbox filesystem.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/devboxes/{id}/write_file_contents","href":"/api-reference/devbox/write-text-file-contents-to-devbox-filesystem"}]},{"group":"accounts","pages":[{"title":"Get the authenticated caller's account.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/accounts/me","href":"/api-reference/accounts/get-the-authenticated-callers-account"}]},{"group":"apikeys","pages":[{"title":"Create API Key.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/apikeys","href":"/api-reference/apikeys/create-api-key"}]},{"group":"axons","pages":[{"title":"[Beta] List axons.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/axons","href":"/api-reference/axons/[beta]-list-axons"},{"title":"[Beta] Create an axon.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/axons","href":"/api-reference/axons/[beta]-create-an-axon"},{"title":"[Beta] List available axon metadata keys.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/axons/metadata/keys","href":"/api-reference/axons/[beta]-list-available-axon-metadata-keys"},{"title":"[Beta] List values for a specific axon metadata key.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/axons/metadata/keys/{key}/values","href":"/api-reference/axons/[beta]-list-values-for-a-specific-axon-metadata-key"},{"title":"[Beta] Get an axon.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/axons/{id}","href":"/api-reference/axons/[beta]-get-an-axon"},{"title":"[Beta] Update an axon.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/axons/{id}","href":"/api-reference/axons/[beta]-update-an-axon"},{"title":"[Beta] Delete an axon.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json delete /v1/axons/{id}","href":"/api-reference/axons/[beta]-delete-an-axon"},{"title":"[Beta] List events for an axon.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/axons/{id}/events","href":"/api-reference/axons/[beta]-list-events-for-an-axon"},{"title":"[Beta] Publish an event to an axon.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/axons/{id}/publish","href":"/api-reference/axons/[beta]-publish-an-event-to-an-axon"},{"title":"[Beta] Execute a batch of SQL statements against an axon's database.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/axons/{id}/sql/batch","href":"/api-reference/axons/[beta]-execute-a-batch-of-sql-statements-against-an-axons-database"},{"title":"[Beta] Execute a SQL query against an axon's database.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/axons/{id}/sql/query","href":"/api-reference/axons/[beta]-execute-a-sql-query-against-an-axons-database"},{"title":"[Beta] Subscribe to an axon event stream via SSE.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/axons/{id}/subscribe/sse","href":"/api-reference/axons/[beta]-subscribe-to-an-axon-event-stream-via-sse"}]},{"group":"Blueprint","pages":[{"title":"List Blueprints.","description":"List all Blueprints or filter by name.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/blueprints","href":"/api-reference/blueprint/list-blueprints"},{"title":"Create and build a Blueprint.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/blueprints","href":"/api-reference/blueprint/create-and-build-a-blueprint"},{"title":"List Public Blueprints.","description":"List all public Blueprints that are available to all users.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/blueprints/list_public","href":"/api-reference/blueprint/list-public-blueprints"},{"title":"List available blueprint metadata keys.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/blueprints/metadata/keys","href":"/api-reference/blueprint/list-available-blueprint-metadata-keys"},{"title":"List values for a specific blueprint metadata key.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/blueprints/metadata/keys/{key}/values","href":"/api-reference/blueprint/list-values-for-a-specific-blueprint-metadata-key"},{"title":"Preview Dockerfile definition for a Blueprint.","deprecated":true,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/blueprints/preview","href":"/api-reference/blueprint/preview-dockerfile-definition-for-a-blueprint"},{"title":"List available public blueprint metadata keys.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/blueprints/public/metadata/keys","href":"/api-reference/blueprint/list-available-public-blueprint-metadata-keys"},{"title":"List values for a specific public blueprint metadata key.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/blueprints/public/metadata/keys/{key}/values","href":"/api-reference/blueprint/list-values-for-a-specific-public-blueprint-metadata-key"},{"title":"Get a Blueprint.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/blueprints/{id}","href":"/api-reference/blueprint/get-a-blueprint"},{"title":"Delete a Blueprint.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/blueprints/{id}/delete","href":"/api-reference/blueprint/delete-a-blueprint"},{"title":"Get Blueprint build logs.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/blueprints/{id}/logs","href":"/api-reference/blueprint/get-blueprint-build-logs"}]},{"group":"API Reference","pages":[{"title":"Stream infrastructure eviction warnings for the account via SSE.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/evictions/watch","href":"/api-reference/stream-infrastructure-eviction-warnings-for-the-account-via-sse"}]},{"group":"executions","pages":[{"title":"Tails the stderr logs for the given execution with SSE streaming","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/{devbox_id}/executions/{execution_id}/stream_stderr_updates","href":"/api-reference/executions/tails-the-stderr-logs-for-the-given-execution-with-sse-streaming"},{"title":"Tails the stdout logs for the given execution with SSE streaming","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/devboxes/{devbox_id}/executions/{execution_id}/stream_stdout_updates","href":"/api-reference/executions/tails-the-stdout-logs-for-the-given-execution-with-sse-streaming"}]},{"group":"gateway-configs","pages":[{"title":"List GatewayConfigs.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/gateway-configs","href":"/api-reference/gateway-configs/list-gatewayconfigs"},{"title":"Create a GatewayConfig.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/gateway-configs","href":"/api-reference/gateway-configs/create-a-gatewayconfig"},{"title":"Get a GatewayConfig.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/gateway-configs/{id}","href":"/api-reference/gateway-configs/get-a-gatewayconfig"},{"title":"Update a GatewayConfig.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/gateway-configs/{id}","href":"/api-reference/gateway-configs/update-a-gatewayconfig"},{"title":"Delete a GatewayConfig.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/gateway-configs/{id}/delete","href":"/api-reference/gateway-configs/delete-a-gatewayconfig"}]},{"group":"mcp-configs","pages":[{"title":"[Beta] List McpConfigs.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/mcp-configs","href":"/api-reference/mcp-configs/[beta]-list-mcpconfigs"},{"title":"[Beta] Create an McpConfig.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/mcp-configs","href":"/api-reference/mcp-configs/[beta]-create-an-mcpconfig"},{"title":"[Beta] Get an McpConfig.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/mcp-configs/{id}","href":"/api-reference/mcp-configs/[beta]-get-an-mcpconfig"},{"title":"[Beta] Update an McpConfig.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/mcp-configs/{id}","href":"/api-reference/mcp-configs/[beta]-update-an-mcpconfig"},{"title":"[Beta] Delete an McpConfig.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/mcp-configs/{id}/delete","href":"/api-reference/mcp-configs/[beta]-delete-an-mcpconfig"}]},{"group":"network-policies","pages":[{"title":"List NetworkPolicies.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/network-policies","href":"/api-reference/network-policies/list-networkpolicies"},{"title":"Create a NetworkPolicy.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/network-policies","href":"/api-reference/network-policies/create-a-networkpolicy"},{"title":"Get a NetworkPolicy.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/network-policies/{id}","href":"/api-reference/network-policies/get-a-networkpolicy"},{"title":"Update a NetworkPolicy.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/network-policies/{id}","href":"/api-reference/network-policies/update-a-networkpolicy"},{"title":"Delete a NetworkPolicy.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/network-policies/{id}/delete","href":"/api-reference/network-policies/delete-a-networkpolicy"}]},{"group":"objects","pages":[{"title":"List Objects.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/objects","href":"/api-reference/objects/list-objects"},{"title":"Create an Object.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/objects","href":"/api-reference/objects/create-an-object"},{"title":"List Public Objects.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/objects/list_public","href":"/api-reference/objects/list-public-objects"},{"title":"List available object metadata keys.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/objects/metadata/keys","href":"/api-reference/objects/list-available-object-metadata-keys"},{"title":"List values for a specific object metadata key.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/objects/metadata/keys/{key}/values","href":"/api-reference/objects/list-values-for-a-specific-object-metadata-key"},{"title":"Get an Object.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/objects/{id}","href":"/api-reference/objects/get-an-object"},{"title":"Complete Object Upload.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/objects/{id}/complete","href":"/api-reference/objects/complete-object-upload"},{"title":"Delete an Object.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/objects/{id}/delete","href":"/api-reference/objects/delete-an-object"},{"title":"Generate Download URL for Object.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/objects/{id}/download","href":"/api-reference/objects/generate-download-url-for-object"}]},{"group":"restricted_keys","pages":[{"title":"Create a restricted API key.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/restricted_keys","href":"/api-reference/restricted_keys/create-a-restricted-api-key"}]},{"group":"secrets","pages":[{"title":"List Secrets.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/secrets","href":"/api-reference/secrets/list-secrets"},{"title":"Create a Secret.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/secrets","href":"/api-reference/secrets/create-a-secret"},{"title":"Get a Secret by ID.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/secrets/id/{id}","href":"/api-reference/secrets/get-a-secret-by-id"},{"title":"Delete a Secret by ID.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/secrets/id/{id}/delete","href":"/api-reference/secrets/delete-a-secret-by-id"},{"title":"Update a Secret by ID.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/secrets/id/{id}/update","href":"/api-reference/secrets/update-a-secret-by-id"},{"title":"Get a Secret.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json get /v1/secrets/{name}","href":"/api-reference/secrets/get-a-secret"},{"title":"Update a Secret.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/secrets/{name}","href":"/api-reference/secrets/update-a-secret"},{"title":"Delete a Secret.","deprecated":null,"version":null,"openapi":"/openapi-specs/stainless-processed-openapi.json post /v1/secrets/{name}/delete","href":"/api-reference/secrets/delete-a-secret"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/docs/overview/release-notes"}]}]},"basePath":"","title":"Create and build a Blueprint. - Runloop AI Docs","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["10e4515597","c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["BannerMarkdown-DHaG7hr_.js","dist-DKZWslLH.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-BIWXJmsZ.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","AssistantPageLink-UDqbR6xh.js"]}