Retry a template build from its persisted definition
Starts a new build attempt from the sanitized persisted build definition. Builds that used private base-image credentials require fresh base_image_auth; inline build context bytes are not persisted and must have reusable blob references to be retryable.
POST
/
v1
/
templates
/
builds
/
{build_id}
/
retry
Retry a template build from its persisted definition
Fresh request-time BuildKit secret values for this retry. When the original build used secrets, the retry must provide the same secret IDs again; historical request-time values are not replayed.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Nullspace","description":"Nullspace is composable machines for AI agents: on-demand microVM compute that agents create, scale, pause, and fork.","colors":{"primary":"#1a1d23","light":"#d7dae0","dark":"#1a1d23"},"logo":{"light":"https://mintcdn.com/catamaranresearch/IKCWYZugMKgGJaLI/images/logo-light.svg?fit=max\u0026auto=format\u0026n=IKCWYZugMKgGJaLI\u0026q=85\u0026s=fbbc2f6e5c18d0cc912d4eb6bd3af8ca","dark":"https://mintcdn.com/catamaranresearch/IKCWYZugMKgGJaLI/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=IKCWYZugMKgGJaLI\u0026q=85\u0026s=45090618928ba93bf1541f1237343216"},"favicon":"https://mintcdn.com/catamaranresearch/Nr4-Qd7vJxaLolgu/images/favicon.svg?fit=max\u0026auto=format\u0026n=Nr4-Qd7vJxaLolgu\u0026q=85\u0026s=af5b7478b24f7fa69691fdc785300537","api":{"openapi":"openapi.yaml","playground":{"display":"interactive","proxy":true},"examples":{"defaults":"required","languages":["python","curl"],"prefill":true,"autogenerate":true},"url":"full"},"appearance":{"default":"system"},"background":{"color":{"light":"#fafafa","dark":"#121212"}},"navbar":{"links":[{"href":"https://github.com/catamaran-research/nullspace","type":"github"}]},"footer":{"socials":{"github":"https://github.com/catamaran-research/nullspace"}},"search":{"prompt":"Search Nullspace docs"},"seo":{"indexing":"navigable"},"fonts":{"heading":{"family":"JetBrains Mono"}},"icons":{"library":"lucide"},"styling":{"codeblocks":{"theme":{"light":"one-light","dark":"one-dark-pro"}},"latex":false},"contextual":{"options":["copy","assistant","chatgpt","claude","cursor","vscode","mcp"],"display":"header"},"thumbnails":{"appearance":"dark","background":"https://mintcdn.com/catamaranresearch/bD-Cd21B2-kH3wuD/images/og-card.svg?fit=max\u0026auto=format\u0026n=bD-Cd21B2-kH3wuD\u0026q=85\u0026s=c0f0e8a21a89402d5babb5b32aaf4786"},"interaction":{"drilldown":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"catamaranresearch","hasAudioNarration":false,"actualSubdomain":"catamaranresearch","customDomains":["docs.ns.rocks"],"gitSource":{"type":"github","owner":"catamaran-hq","repo":"nullspace","deployBranch":"main","contentDirectory":"docs/site","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6a3822b512441f3b9589a265","collectionId":"7fc4efa0-bd9b-434b-a45f-b0aeb2b88e14","schemaVersion":"v3"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6a3822b512441f3b9589a265:success","clientVersion":"0.0.4006","searchFilterCounts":[{"language":"default","tag":"API Reference","count":258},{"language":"default","tag":"Endpoints","count":256},{"language":"default","tag":"Documentation","count":95},{"language":"default","tag":"Templates","count":62},{"language":"default","tag":"Machines","count":51},{"language":"default","tag":"Reference","count":48},{"language":"default","tag":"Volumes","count":42},{"language":"default","tag":"Desktop","count":38},{"language":"default","tag":"Agent Deployments","count":23},{"language":"default","tag":"Files","count":23}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/templates/retry-a-template-build-from-its-persisted-definition","slug":"/api-reference/templates/retry-a-template-build-from-its-persisted-definition","pageMetadata":{"title":"Retry a template build from its persisted definition","description":"Starts a new build attempt from the sanitized persisted build definition. Builds that used private base-image credentials require fresh `base_image_auth`; inline build context bytes are not persisted and must have reusable blob references to be retryable.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/builds/{build_id}/retry","href":"/api-reference/templates/retry-a-template-build-from-its-persisted-definition","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Starts a new build attempt from the sanitized persisted build definition. Builds that used private base-image credentials require fresh \", _jsx(_components.code, {\n children: \"base_image_auth\"\n }), \"; inline build context bytes are not persisted and must have reusable blob references to be retryable.\"]\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":{"codeStyling":{"theme":{"light":"one-light","dark":"one-dark-pro"}},"config":{},"pageMetadata":{"title":"Retry a template build from its persisted definition","description":"Starts a new build attempt from the sanitized persisted build definition. Builds that used private base-image credentials require fresh `base_image_auth`; inline build context bytes are not persisted and must have reusable blob references to be retryable.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/builds/{build_id}/retry","href":"/api-reference/templates/retry-a-template-build-from-its-persisted-definition","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"retryTemplateBuild","tags":["Templates"],"summary":"Retry a template build from its persisted definition","description":"Starts a new build attempt from the sanitized persisted build definition. Builds that used private base-image credentials require fresh `base_image_auth`; inline build context bytes are not persisted and must have reusable blob references to be retryable.\n","requestBody":"18061066-f86b-4343-b968-438ddc90e1bf","responses":{"202":"2c18fccd-a950-4c2f-8572-76200734adcb","400":"ebba4dce-92df-498d-8706-74ba656e0e76","401":"cc951dc3-6752-4e4c-9d60-51810759604e","404":"11661ea6-af01-4acf-b934-79a15365d70d","503":"239cb0a2-6623-4a6b-a1ec-eee3b9521111"},"method":"post","type":"path","servers":["f71276dc-ef86-4d4f-985f-09c832d1de19","a0e428dc-322f-4ccd-9734-92e4de588316","749ab2a6-3532-4028-b71c-05bbf14deb12","a433d02e-5c00-4042-8b8c-7e9096206976"],"security":["0074367e-5f75-43db-afc2-3b1ecac22146"],"path":"/v1/templates/builds/{build_id}/retry","baseUrlOptions":["https://api.13-215-85-171.sslip.io","https://nullspace.example","http://localhost","http://localhost:3000"],"title":"Retry a template build from its persisted definition","codeSamples":[],"requestExampleLanguages":["python","bash"],"requiredOnlyExamples":true,"requestExampleType":"generated","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.tags.items.0":"\u003cstring>","body.base_image_auth.oneOf.0.kind":"basic","body.base_image_auth.oneOf.0.username":"\u003cstring>","body.base_image_auth.oneOf.0.password":"\u003cstring>","body.registry_auth.items.0.registry":"\u003cstring>","body.registry_auth.items.0.auth.oneOf.0.kind":"basic","body.registry_auth.items.0.auth.oneOf.0.username":"\u003cstring>","body.registry_auth.items.0.auth.oneOf.0.password":"\u003cstring>","body.build_secrets.items.0.id":"\u003cstring>","body.build_secrets.items.0.value":"\u003cstring>"}],"urlDisplay":"full"},"dependencies":{"parameters":{"08eabfcb-1b3f-47fa-b73f-5b577e44c0a9":{"name":"build_id","in":"path","required":true,"schema":{"type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"tags":{"type":"array","items":{"type":"string","uniqueKey":"tags.items.[INDEX]","typeLabel":"string"},"description":"Optional replacement tags for the retry attempt.","uniqueKey":"tags","typeLabel":"string[]"},"base_image_auth":{"oneOf":[{"type":"object","required":["kind","username","password"],"properties":{"kind":{"type":"string","enum":["basic"],"isRequired":true,"uniqueKey":"base_image_auth.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"username":{"type":"string","isRequired":true,"uniqueKey":"base_image_auth.oneOf.0.username","typeLabel":"string"},"password":{"type":"string","isRequired":true,"uniqueKey":"base_image_auth.oneOf.0.password","typeLabel":"string"}},"uniqueKey":"base_image_auth.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","service_account_json"],"properties":{"kind":{"type":"string","enum":["gcp_artifact_registry"],"isRequired":true,"uniqueKey":"base_image_auth.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"service_account_json":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"base_image_auth.oneOf.1.service_account_json.oneOf.0","typeLabel":"string"},{"type":"object","description":"Parsed GCP service-account key JSON; the shape is defined by Google Cloud, deliberately open.","additionalProperties":true,"isRequired":true,"uniqueKey":"base_image_auth.oneOf.1.service_account_json.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"base_image_auth.oneOf.1.service_account_json","typeLabel":"string | object"}},"uniqueKey":"base_image_auth.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","access_key_id","secret_access_key","region"],"properties":{"kind":{"type":"string","enum":["aws_ecr"],"isRequired":true,"uniqueKey":"base_image_auth.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"access_key_id":{"type":"string","isRequired":true,"uniqueKey":"base_image_auth.oneOf.2.access_key_id","typeLabel":"string"},"secret_access_key":{"type":"string","isRequired":true,"uniqueKey":"base_image_auth.oneOf.2.secret_access_key","typeLabel":"string"},"region":{"type":"string","isRequired":true,"uniqueKey":"base_image_auth.oneOf.2.region","typeLabel":"string"},"session_token":{"type":"string","uniqueKey":"base_image_auth.oneOf.2.session_token","typeLabel":"string"}},"uniqueKey":"base_image_auth.oneOf.2","typeLabel":"object"}],"uniqueKey":"base_image_auth","typeLabel":"object"},"registry_auth":{"type":"array","items":{"type":"object","required":["registry","auth"],"properties":{"registry":{"type":"string","description":"Registry host such as `registry.example.com` or `docker.io`.","isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].registry","typeLabel":"string"},"auth":{"oneOf":[{"type":"object","required":["kind","username","password"],"properties":{"kind":{"type":"string","enum":["basic"],"isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"username":{"type":"string","isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.0.username","typeLabel":"string"},"password":{"type":"string","isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.0.password","typeLabel":"string"}},"isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","service_account_json"],"properties":{"kind":{"type":"string","enum":["gcp_artifact_registry"],"isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"service_account_json":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.1.service_account_json.oneOf.0","typeLabel":"string"},{"type":"object","description":"Parsed GCP service-account key JSON; the shape is defined by Google Cloud, deliberately open.","additionalProperties":true,"isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.1.service_account_json.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.1.service_account_json","typeLabel":"string | object"}},"isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","access_key_id","secret_access_key","region"],"properties":{"kind":{"type":"string","enum":["aws_ecr"],"isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"access_key_id":{"type":"string","isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.2.access_key_id","typeLabel":"string"},"secret_access_key":{"type":"string","isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.2.secret_access_key","typeLabel":"string"},"region":{"type":"string","isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.2.region","typeLabel":"string"},"session_token":{"type":"string","uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.2.session_token","typeLabel":"string"}},"isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth.oneOf.2","typeLabel":"object"}],"isRequired":true,"uniqueKey":"registry_auth.items.[INDEX].auth","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"registry_auth.items.[INDEX]","typeLabel":"object"},"description":"Fresh request-time BuildKit registry credentials for this retry.","uniqueKey":"registry_auth","typeLabel":"object[]"},"build_secrets":{"type":"array","items":{"type":"object","required":["id","value"],"properties":{"id":{"type":"string","description":"BuildKit secret ID used by Dockerfile `RUN --mount=type=secret,id=\u003cid>` instructions. IDs may contain letters, numbers, `.`, `_`, and `-`.","isRequired":true,"uniqueKey":"build_secrets.items.[INDEX].id","typeLabel":"string"},"value":{"type":"string","description":"Request-time secret value. The value is forwarded to the build worker as a temporary BuildKit secret file and is not stored.","isRequired":true,"uniqueKey":"build_secrets.items.[INDEX].value","typeLabel":"string"},"source":{"type":"string","enum":["value","env","file"],"description":"Client-side source hint for the secret value. The API receives a request-time value either way; env and file sources should be resolved by SDKs or CLIs before submission.","uniqueKey":"build_secrets.items.[INDEX].source","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"build_secrets.items.[INDEX]","typeLabel":"object"},"description":"Fresh request-time BuildKit secret values for this retry. When the original build used secrets, the retry must provide the same secret IDs again; historical request-time values are not replayed.","uniqueKey":"build_secrets","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"tags":["\u003cstring>"],"base_image_auth":{"kind":"basic","username":"\u003cstring>","password":"\u003cstring>"},"registry_auth":[{"registry":"\u003cstring>","auth":{"kind":"basic","username":"\u003cstring>","password":"\u003cstring>"}}],"build_secrets":[{"id":"\u003cstring>","value":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"2c18fccd-a950-4c2f-8572-76200734adcb":{"description":"Retry build accepted","content":{"application/json":{"schema":{"type":"object","required":["build_id","template_id","name","tags","status","build_backend","source_type","canonical_ref","namespace_slug","visibility","created_at","updated_at"],"properties":{"build_id":{"type":"string","isRequired":true,"uniqueKey":"build_id","typeLabel":"string"},"template_id":{"type":"string","isRequired":true,"uniqueKey":"template_id","typeLabel":"string"},"name":{"type":"string","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"tags":{"type":"array","items":{"type":"string","uniqueKey":"tags.items.[INDEX]","typeLabel":"string"},"isRequired":true,"uniqueKey":"tags","typeLabel":"string[]"},"status":{"type":"string","enum":["waiting","building","ready","error","cancelled"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"build_backend":{"type":"string","description":"Template build backend. `native` is retained for declarative/OCI build requests and historical filters; Dockerfile build requests use `buildkit`.","enum":["native","buildkit"],"isRequired":true,"uniqueKey":"build_backend","typeLabel":"enum\u003cstring>"},"source_type":{"type":"string","enum":["declarative","dockerfile","oci_import","template_base"],"isRequired":true,"uniqueKey":"source_type","typeLabel":"enum\u003cstring>"},"canonical_ref":{"type":"string","isRequired":true,"uniqueKey":"canonical_ref","typeLabel":"string"},"namespace_slug":{"type":"string","isRequired":true,"uniqueKey":"namespace_slug","typeLabel":"string"},"visibility":{"type":"string","enum":["private","public"],"isRequired":true,"uniqueKey":"visibility","typeLabel":"enum\u003cstring>"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"updated_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"source_digest":{"type":"string","uniqueKey":"source_digest","typeLabel":"string"},"context_digest":{"type":"string","uniqueKey":"context_digest","typeLabel":"string"},"dockerfile_digest":{"type":"string","uniqueKey":"dockerfile_digest","typeLabel":"string"},"build_config":{"type":"object","description":"Build VM resource configuration","properties":{"vcpus":{"type":"integer","description":"Number of vCPUs for the build VM (default 1)","uniqueKey":"build_config.vcpus","typeLabel":"integer"},"memory_mib":{"type":"integer","description":"Memory in MiB for the build VM (default 512)","uniqueKey":"build_config.memory_mib","typeLabel":"integer"},"internet_access":{"type":"boolean","description":"Whether the build VM has internet access (default true)","uniqueKey":"build_config.internet_access","typeLabel":"boolean"},"disk_mb":{"type":"integer","minimum":512,"description":"Minimum rootfs size in MiB baked into the built template. The build VM's rootfs is grown to this size before its snapshot is captured, so every machine created from the template (cold, warm-pool, fork, resume) inherits the larger disk. Omit to use the default headroom.","uniqueKey":"build_config.disk_mb","typeLabel":"integer"}},"uniqueKey":"build_config","typeLabel":"object"},"triggered_by":{"type":"string","uniqueKey":"triggered_by","typeLabel":"string"},"queued_at":{"type":"string","format":"date-time","uniqueKey":"queued_at","typeLabel":"string\u003cdate-time>"},"started_at":{"type":"string","format":"date-time","uniqueKey":"started_at","typeLabel":"string\u003cdate-time>"},"finished_at":{"type":"string","format":"date-time","uniqueKey":"finished_at","typeLabel":"string\u003cdate-time>"},"duration_ms":{"type":"integer","format":"uint64","uniqueKey":"duration_ms","typeLabel":"integer\u003cuint64>"},"failure_phase":{"type":"string","uniqueKey":"failure_phase","typeLabel":"string"},"cache_summary":{"type":"object","properties":{"final_artifact_hits":{"type":"integer","uniqueKey":"cache_summary.final_artifact_hits","typeLabel":"integer"},"final_artifact_misses":{"type":"integer","uniqueKey":"cache_summary.final_artifact_misses","typeLabel":"integer"},"final_artifact_bypasses":{"type":"integer","uniqueKey":"cache_summary.final_artifact_bypasses","typeLabel":"integer"},"final_artifact_stores":{"type":"integer","uniqueKey":"cache_summary.final_artifact_stores","typeLabel":"integer"},"layer_hits":{"type":"integer","uniqueKey":"cache_summary.layer_hits","typeLabel":"integer"},"layer_misses":{"type":"integer","uniqueKey":"cache_summary.layer_misses","typeLabel":"integer"},"layer_bypasses":{"type":"integer","uniqueKey":"cache_summary.layer_bypasses","typeLabel":"integer"},"layer_stores":{"type":"integer","uniqueKey":"cache_summary.layer_stores","typeLabel":"integer"},"file_blob_hits":{"type":"integer","uniqueKey":"cache_summary.file_blob_hits","typeLabel":"integer"},"file_blob_misses":{"type":"integer","uniqueKey":"cache_summary.file_blob_misses","typeLabel":"integer"},"file_blob_bypasses":{"type":"integer","uniqueKey":"cache_summary.file_blob_bypasses","typeLabel":"integer"},"file_blob_stores":{"type":"integer","uniqueKey":"cache_summary.file_blob_stores","typeLabel":"integer"}},"uniqueKey":"cache_summary","typeLabel":"object"},"artifact_availability":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["available","publishing","warming","unavailable","failed"],"isRequired":true,"uniqueKey":"artifact_availability.status","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","uniqueKey":"artifact_availability.reason","typeLabel":"string"}},"uniqueKey":"artifact_availability","typeLabel":"object"},"promotability":{"type":"object","required":["status","promotable"],"properties":{"status":{"type":"string","enum":["promotable","not_ready","expired","purged","unavailable"],"isRequired":true,"uniqueKey":"promotability.status","typeLabel":"enum\u003cstring>"},"promotable":{"type":"boolean","isRequired":true,"uniqueKey":"promotability.promotable","typeLabel":"boolean"},"reason":{"type":"string","uniqueKey":"promotability.reason","typeLabel":"string"}},"uniqueKey":"promotability","typeLabel":"object"},"retention_expires_at":{"type":"string","format":"date-time","uniqueKey":"retention_expires_at","typeLabel":"string\u003cdate-time>"},"runtime_defaults":{"type":"object","description":"Effective runtime defaults retained for a built template. Environment values are intentionally omitted; only keys are exposed.","properties":{"default_env_keys":{"type":"array","items":{"type":"string","uniqueKey":"runtime_defaults.default_env_keys.items.[INDEX]","typeLabel":"string"},"uniqueKey":"runtime_defaults.default_env_keys","typeLabel":"string[]"},"start_cmd":{"type":"string","uniqueKey":"runtime_defaults.start_cmd","typeLabel":"string"},"default_user":{"type":"string","uniqueKey":"runtime_defaults.default_user","typeLabel":"string"},"default_workdir":{"type":"string","uniqueKey":"runtime_defaults.default_workdir","typeLabel":"string"},"readiness":{"oneOf":[{"type":"object","required":["kind","port"],"example":{"kind":"tcp","port":3000,"timeout_secs":30,"interval_ms":500,"startup_grace_secs":2},"properties":{"kind":{"type":"string","enum":["tcp"],"isRequired":true,"uniqueKey":"runtime_defaults.readiness.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"port":{"type":"integer","format":"int32","isRequired":true,"uniqueKey":"runtime_defaults.readiness.oneOf.0.port","typeLabel":"integer\u003cint32>"},"timeout_secs":{"type":"integer","format":"int32","uniqueKey":"runtime_defaults.readiness.oneOf.0.timeout_secs","typeLabel":"integer\u003cint32>"},"interval_ms":{"type":"integer","format":"int64","uniqueKey":"runtime_defaults.readiness.oneOf.0.interval_ms","typeLabel":"integer\u003cint64>"},"startup_grace_secs":{"type":"integer","format":"int32","uniqueKey":"runtime_defaults.readiness.oneOf.0.startup_grace_secs","typeLabel":"integer\u003cint32>"}},"uniqueKey":"runtime_defaults.readiness.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","timeout_ms"],"example":{"kind":"timeout","timeout_ms":20000},"properties":{"kind":{"type":"string","enum":["timeout"],"isRequired":true,"uniqueKey":"runtime_defaults.readiness.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"timeout_ms":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"runtime_defaults.readiness.oneOf.1.timeout_ms","typeLabel":"integer\u003cint64>"}},"uniqueKey":"runtime_defaults.readiness.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","port","path"],"example":{"kind":"http","port":3000,"path":"/ready","timeout_secs":30,"interval_ms":500,"startup_grace_secs":2},"properties":{"kind":{"type":"string","enum":["http"],"isRequired":true,"uniqueKey":"runtime_defaults.readiness.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"port":{"type":"integer","format":"int32","isRequired":true,"uniqueKey":"runtime_defaults.readiness.oneOf.2.port","typeLabel":"integer\u003cint32>"},"path":{"type":"string","isRequired":true,"uniqueKey":"runtime_defaults.readiness.oneOf.2.path","typeLabel":"string"},"timeout_secs":{"type":"integer","format":"int32","uniqueKey":"runtime_defaults.readiness.oneOf.2.timeout_secs","typeLabel":"integer\u003cint32>"},"interval_ms":{"type":"integer","format":"int64","uniqueKey":"runtime_defaults.readiness.oneOf.2.interval_ms","typeLabel":"integer\u003cint64>"},"startup_grace_secs":{"type":"integer","format":"int32","uniqueKey":"runtime_defaults.readiness.oneOf.2.startup_grace_secs","typeLabel":"integer\u003cint32>"}},"uniqueKey":"runtime_defaults.readiness.oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","command"],"example":{"kind":"command","command":"test -e /tmp/template-ready","timeout_secs":30,"interval_ms":500,"startup_grace_secs":2},"properties":{"kind":{"type":"string","enum":["command"],"isRequired":true,"uniqueKey":"runtime_defaults.readiness.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"command":{"type":"string","isRequired":true,"uniqueKey":"runtime_defaults.readiness.oneOf.3.command","typeLabel":"string"},"timeout_secs":{"type":"integer","format":"int32","uniqueKey":"runtime_defaults.readiness.oneOf.3.timeout_secs","typeLabel":"integer\u003cint32>"},"interval_ms":{"type":"integer","format":"int64","uniqueKey":"runtime_defaults.readiness.oneOf.3.interval_ms","typeLabel":"integer\u003cint64>"},"startup_grace_secs":{"type":"integer","format":"int32","uniqueKey":"runtime_defaults.readiness.oneOf.3.startup_grace_secs","typeLabel":"integer\u003cint32>"}},"uniqueKey":"runtime_defaults.readiness.oneOf.3","typeLabel":"object"}],"uniqueKey":"runtime_defaults.readiness","typeLabel":"object"}},"uniqueKey":"runtime_defaults","typeLabel":"object"},"oci_metadata":{"type":"object","description":"OCI image metadata retained from Dockerfile or OCI imports. Volume declarations are metadata only and do not create persistent Nullspace volumes.","properties":{"labels":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"oci_metadata.labels.additionalProperties","typeLabel":"string"},"uniqueKey":"oci_metadata.labels","typeLabel":"object"},"exposed_ports":{"type":"array","items":{"type":"string","uniqueKey":"oci_metadata.exposed_ports.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oci_metadata.exposed_ports","typeLabel":"string[]"},"volumes":{"type":"array","items":{"type":"string","uniqueKey":"oci_metadata.volumes.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oci_metadata.volumes","typeLabel":"string[]"},"healthcheck":{"type":"object","properties":{"test":{"type":"array","items":{"type":"string","uniqueKey":"oci_metadata.healthcheck.test.items.[INDEX]","typeLabel":"string"},"uniqueKey":"oci_metadata.healthcheck.test","typeLabel":"string[]"},"interval_ns":{"type":"integer","format":"int64","uniqueKey":"oci_metadata.healthcheck.interval_ns","typeLabel":"integer\u003cint64>"},"timeout_ns":{"type":"integer","format":"int64","uniqueKey":"oci_metadata.healthcheck.timeout_ns","typeLabel":"integer\u003cint64>"},"start_period_ns":{"type":"integer","format":"int64","uniqueKey":"oci_metadata.healthcheck.start_period_ns","typeLabel":"integer\u003cint64>"},"retries":{"type":"integer","format":"int32","uniqueKey":"oci_metadata.healthcheck.retries","typeLabel":"integer\u003cint32>"},"mapped_readiness":{"oneOf":[{"type":"object","required":["kind","port"],"example":{"kind":"tcp","port":3000,"timeout_secs":30,"interval_ms":500,"startup_grace_secs":2},"properties":{"kind":{"type":"string","enum":["tcp"],"isRequired":true,"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.0.kind","typeLabel":"enum\u003cstring>"},"port":{"type":"integer","format":"int32","isRequired":true,"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.0.port","typeLabel":"integer\u003cint32>"},"timeout_secs":{"type":"integer","format":"int32","uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.0.timeout_secs","typeLabel":"integer\u003cint32>"},"interval_ms":{"type":"integer","format":"int64","uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.0.interval_ms","typeLabel":"integer\u003cint64>"},"startup_grace_secs":{"type":"integer","format":"int32","uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.0.startup_grace_secs","typeLabel":"integer\u003cint32>"}},"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.0","typeLabel":"object"},{"type":"object","required":["kind","timeout_ms"],"example":{"kind":"timeout","timeout_ms":20000},"properties":{"kind":{"type":"string","enum":["timeout"],"isRequired":true,"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.1.kind","typeLabel":"enum\u003cstring>"},"timeout_ms":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.1.timeout_ms","typeLabel":"integer\u003cint64>"}},"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.1","typeLabel":"object"},{"type":"object","required":["kind","port","path"],"example":{"kind":"http","port":3000,"path":"/ready","timeout_secs":30,"interval_ms":500,"startup_grace_secs":2},"properties":{"kind":{"type":"string","enum":["http"],"isRequired":true,"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.2.kind","typeLabel":"enum\u003cstring>"},"port":{"type":"integer","format":"int32","isRequired":true,"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.2.port","typeLabel":"integer\u003cint32>"},"path":{"type":"string","isRequired":true,"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.2.path","typeLabel":"string"},"timeout_secs":{"type":"integer","format":"int32","uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.2.timeout_secs","typeLabel":"integer\u003cint32>"},"interval_ms":{"type":"integer","format":"int64","uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.2.interval_ms","typeLabel":"integer\u003cint64>"},"startup_grace_secs":{"type":"integer","format":"int32","uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.2.startup_grace_secs","typeLabel":"integer\u003cint32>"}},"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.2","typeLabel":"object"},{"type":"object","required":["kind","command"],"example":{"kind":"command","command":"test -e /tmp/template-ready","timeout_secs":30,"interval_ms":500,"startup_grace_secs":2},"properties":{"kind":{"type":"string","enum":["command"],"isRequired":true,"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.3.kind","typeLabel":"enum\u003cstring>"},"command":{"type":"string","isRequired":true,"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.3.command","typeLabel":"string"},"timeout_secs":{"type":"integer","format":"int32","uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.3.timeout_secs","typeLabel":"integer\u003cint32>"},"interval_ms":{"type":"integer","format":"int64","uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.3.interval_ms","typeLabel":"integer\u003cint64>"},"startup_grace_secs":{"type":"integer","format":"int32","uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.3.startup_grace_secs","typeLabel":"integer\u003cint32>"}},"uniqueKey":"oci_metadata.healthcheck.mapped_readiness.oneOf.3","typeLabel":"object"}],"uniqueKey":"oci_metadata.healthcheck.mapped_readiness","typeLabel":"object"}},"uniqueKey":"oci_metadata.healthcheck","typeLabel":"object"}},"uniqueKey":"oci_metadata","typeLabel":"object"},"artifact_ids":{"type":"array","items":{"type":"string","uniqueKey":"artifact_ids.items.[INDEX]","typeLabel":"string"},"uniqueKey":"artifact_ids","typeLabel":"string[]"},"retry_of_build_id":{"type":"string","uniqueKey":"retry_of_build_id","typeLabel":"string"},"original_build_id":{"type":"string","uniqueKey":"original_build_id","typeLabel":"string"},"cancel_requested_at":{"type":"string","format":"date-time","uniqueKey":"cancel_requested_at","typeLabel":"string\u003cdate-time>"},"cancel_requested_by":{"type":"string","uniqueKey":"cancel_requested_by","typeLabel":"string"},"cancellation_reason":{"type":"string","uniqueKey":"cancellation_reason","typeLabel":"string"},"error":{"type":"string","uniqueKey":"error","typeLabel":"string"},"error_detail":{"type":"object","required":["code","message","phase","retryable","suggested_action"],"properties":{"code":{"type":"string","enum":["unauthorized","file_upload_error","build_error","internal_error"],"isRequired":true,"uniqueKey":"error_detail.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error_detail.message","typeLabel":"string"},"phase":{"type":"string","enum":["auth","preflight","blob_upload","prepare","build_step","readiness","snapshot","finalize","interrupted"],"isRequired":true,"uniqueKey":"error_detail.phase","typeLabel":"enum\u003cstring>"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error_detail.retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","isRequired":true,"uniqueKey":"error_detail.suggested_action","typeLabel":"string"},"step_index":{"type":"integer","uniqueKey":"error_detail.step_index","typeLabel":"integer"},"attempt":{"type":"integer","uniqueKey":"error_detail.attempt","typeLabel":"integer"},"max_attempts":{"type":"integer","uniqueKey":"error_detail.max_attempts","typeLabel":"integer"},"cache_subject":{"type":"string","uniqueKey":"error_detail.cache_subject","typeLabel":"string"},"build_id":{"type":"string","uniqueKey":"error_detail.build_id","typeLabel":"string"},"request_id":{"type":"string","description":"Present on terminal request-originated failures and blocking error responses.","uniqueKey":"error_detail.request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"description":"Stable failure metadata. Includes a `reason` key plus phase-specific fields such as `blob_id`, `path`, digest/size mismatch values, `command`, or `alias`.","uniqueKey":"error_detail.details","typeLabel":"object"}},"uniqueKey":"error_detail","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"build_id":"\u003cstring>","template_id":"\u003cstring>","name":"\u003cstring>","tags":["\u003cstring>"],"status":"waiting","build_backend":"native","source_type":"declarative","canonical_ref":"\u003cstring>","namespace_slug":"\u003cstring>","visibility":"private","created_at":"2023-11-07T05:31:56Z","updated_at":"2023-11-07T05:31:56Z","source_digest":"\u003cstring>","context_digest":"\u003cstring>","dockerfile_digest":"\u003cstring>","build_config":{"vcpus":123,"memory_mib":123,"internet_access":true,"disk_mb":513},"triggered_by":"\u003cstring>","queued_at":"2023-11-07T05:31:56Z","started_at":"2023-11-07T05:31:56Z","finished_at":"2023-11-07T05:31:56Z","duration_ms":123,"failure_phase":"\u003cstring>","cache_summary":{"final_artifact_hits":123,"final_artifact_misses":123,"final_artifact_bypasses":123,"final_artifact_stores":123,"layer_hits":123,"layer_misses":123,"layer_bypasses":123,"layer_stores":123,"file_blob_hits":123,"file_blob_misses":123,"file_blob_bypasses":123,"file_blob_stores":123},"artifact_availability":{"status":"available","reason":"\u003cstring>"},"promotability":{"status":"promotable","promotable":true,"reason":"\u003cstring>"},"retention_expires_at":"2023-11-07T05:31:56Z","runtime_defaults":{"default_env_keys":["\u003cstring>"],"start_cmd":"\u003cstring>","default_user":"\u003cstring>","default_workdir":"\u003cstring>","readiness":{"kind":"tcp","port":3000,"timeout_secs":30,"interval_ms":500,"startup_grace_secs":2}},"oci_metadata":{"labels":{},"exposed_ports":["\u003cstring>"],"volumes":["\u003cstring>"],"healthcheck":{"test":["\u003cstring>"],"interval_ns":123,"timeout_ns":123,"start_period_ns":123,"retries":123,"mapped_readiness":{"kind":"tcp","port":3000,"timeout_secs":30,"interval_ms":500,"startup_grace_secs":2}}},"artifact_ids":["\u003cstring>"],"retry_of_build_id":"\u003cstring>","original_build_id":"\u003cstring>","cancel_requested_at":"2023-11-07T05:31:56Z","cancel_requested_by":"\u003cstring>","cancellation_reason":"\u003cstring>","error":"\u003cstring>","error_detail":{"code":"unauthorized","message":"\u003cstring>","phase":"auth","retryable":true,"suggested_action":"\u003cstring>","step_index":123,"attempt":123,"max_attempts":123,"cache_subject":"\u003cstring>","build_id":"\u003cstring>","request_id":"\u003cstring>","details":{}}}}},"exampleType":"generated"}},"exampleType":"generated"},"ebba4dce-92df-498d-8706-74ba656e0e76":{"description":"Invalid request parameters","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code","enum":["invalid_request","machine_not_found","snapshot_not_found","template_not_found","template_build_not_found","template_name_claim_not_found","machine_not_ready","unauthorized","auth_failed","auth_locked","auth_proxy_error","auth_proxy_unavailable","invalid_auth_redirect","invalid_oauth_provider","captcha_required","captcha_failed","captcha_unavailable","disposable_email","signup_rate_limited","oauth_rate_limited","email_action_rate_limited","database_error","email_not_verified","account_deleted","operator_required","account_not_found","account_not_soft_deleted","account_hard_delete_active_resources","file_upload_error","build_error","exec_timeout","exec_failed","file_error","not_implemented","capacity_exceeded","QUOTA_EXCEEDED","feature_unavailable","snapshot_in_use","no_eligible_runtime_host","same_host_required","incompatible_snapshot","rebuild_required","rate_limit_exceeded","transition_in_progress","transition_conflict","agent_deployment_not_found","agent_deployment_version_not_found","agent_run_not_found","agent_service_instance_not_found","agent_deployment_name_conflict","agent_deployment_idempotency_mismatch","agent_deployment_invalid_config","agent_deployment_invalid_state","volume_beta_restriction","volume_invalid_mount_path","volume_overlapping_mounts","volume_backend_capability_unsupported","volume_quota_exceeded","volume_mount_credential_issue_failed","volume_backend_unavailable","volume_stale_revision","volume_busy","volume_read_only","volume_limit_exceeded","internal_error"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"error_detail":{"oneOf":[{"type":"object","required":["code","message","phase","retryable","suggested_action"],"properties":{"code":{"type":"string","enum":["unauthorized","file_upload_error","build_error","internal_error"],"isRequired":true,"uniqueKey":"error_detail.oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error_detail.oneOf.0.message","typeLabel":"string"},"phase":{"type":"string","enum":["auth","preflight","blob_upload","prepare","build_step","readiness","snapshot","finalize","interrupted"],"isRequired":true,"uniqueKey":"error_detail.oneOf.0.phase","typeLabel":"enum\u003cstring>"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error_detail.oneOf.0.retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","isRequired":true,"uniqueKey":"error_detail.oneOf.0.suggested_action","typeLabel":"string"},"step_index":{"type":"integer","uniqueKey":"error_detail.oneOf.0.step_index","typeLabel":"integer"},"attempt":{"type":"integer","uniqueKey":"error_detail.oneOf.0.attempt","typeLabel":"integer"},"max_attempts":{"type":"integer","uniqueKey":"error_detail.oneOf.0.max_attempts","typeLabel":"integer"},"cache_subject":{"type":"string","uniqueKey":"error_detail.oneOf.0.cache_subject","typeLabel":"string"},"build_id":{"type":"string","uniqueKey":"error_detail.oneOf.0.build_id","typeLabel":"string"},"request_id":{"type":"string","description":"Present on terminal request-originated failures and blocking error responses.","uniqueKey":"error_detail.oneOf.0.request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"description":"Stable failure metadata. Includes a `reason` key plus phase-specific fields such as `blob_id`, `path`, digest/size mismatch values, `command`, or `alias`.","uniqueKey":"error_detail.oneOf.0.details","typeLabel":"object"}},"uniqueKey":"error_detail.oneOf.0","typeLabel":"object"},{"type":"object","required":["reason","message","retryable"],"properties":{"reason":{"type":"string","enum":["insufficient_staging_space","size_limit_exceeded","invalid_part_checksum","part_out_of_range","part_size_mismatch","whole_checksum_mismatch","upload_expired","upload_aborted","upload_already_completed","target_conflict","directory_extract_invalid_path","directory_extract_invalid_symlink","directory_extract_unsupported_entry","missing_parts"],"isRequired":true,"uniqueKey":"error_detail.oneOf.1.reason","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error_detail.oneOf.1.message","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error_detail.oneOf.1.retryable","typeLabel":"boolean"},"upload_id":{"type":"string","uniqueKey":"error_detail.oneOf.1.upload_id","typeLabel":"string"},"request_id":{"type":"string","uniqueKey":"error_detail.oneOf.1.request_id","typeLabel":"string"},"path":{"type":"string","description":"Normalized absolute machine path associated with the failed upload when available.","uniqueKey":"error_detail.oneOf.1.path","typeLabel":"string"},"part_number":{"type":"integer","format":"uint32","uniqueKey":"error_detail.oneOf.1.part_number","typeLabel":"integer\u003cuint32>"},"details":{"type":"object","additionalProperties":true,"description":"Additional failure diagnostics; keys depend on the failure reason, deliberately open.","uniqueKey":"error_detail.oneOf.1.details","typeLabel":"object"}},"uniqueKey":"error_detail.oneOf.1","typeLabel":"object"}],"uniqueKey":"error_detail","typeLabel":"object"},"request_id":{"type":"string","description":"Request correlation ID returned in the `x-request-id` header","uniqueKey":"request_id","typeLabel":"string"},"build_id":{"type":"string","description":"Template build ID when the error is associated with a tracked build","uniqueKey":"build_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"invalid_request","error_detail":{"code":"unauthorized","message":"\u003cstring>","phase":"auth","retryable":true,"suggested_action":"\u003cstring>","step_index":123,"attempt":123,"max_attempts":123,"cache_subject":"\u003cstring>","build_id":"\u003cstring>","request_id":"\u003cstring>","details":{}},"request_id":"\u003cstring>","build_id":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"cc951dc3-6752-4e4c-9d60-51810759604e":{"description":"Missing or invalid bearer credential","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code","enum":["invalid_request","machine_not_found","snapshot_not_found","template_not_found","template_build_not_found","template_name_claim_not_found","machine_not_ready","unauthorized","auth_failed","auth_locked","auth_proxy_error","auth_proxy_unavailable","invalid_auth_redirect","invalid_oauth_provider","captcha_required","captcha_failed","captcha_unavailable","disposable_email","signup_rate_limited","oauth_rate_limited","email_action_rate_limited","database_error","email_not_verified","account_deleted","operator_required","account_not_found","account_not_soft_deleted","account_hard_delete_active_resources","file_upload_error","build_error","exec_timeout","exec_failed","file_error","not_implemented","capacity_exceeded","QUOTA_EXCEEDED","feature_unavailable","snapshot_in_use","no_eligible_runtime_host","same_host_required","incompatible_snapshot","rebuild_required","rate_limit_exceeded","transition_in_progress","transition_conflict","agent_deployment_not_found","agent_deployment_version_not_found","agent_run_not_found","agent_service_instance_not_found","agent_deployment_name_conflict","agent_deployment_idempotency_mismatch","agent_deployment_invalid_config","agent_deployment_invalid_state","volume_beta_restriction","volume_invalid_mount_path","volume_overlapping_mounts","volume_backend_capability_unsupported","volume_quota_exceeded","volume_mount_credential_issue_failed","volume_backend_unavailable","volume_stale_revision","volume_busy","volume_read_only","volume_limit_exceeded","internal_error"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"error_detail":{"oneOf":[{"type":"object","required":["code","message","phase","retryable","suggested_action"],"properties":{"code":{"type":"string","enum":["unauthorized","file_upload_error","build_error","internal_error"],"isRequired":true,"uniqueKey":"error_detail.oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error_detail.oneOf.0.message","typeLabel":"string"},"phase":{"type":"string","enum":["auth","preflight","blob_upload","prepare","build_step","readiness","snapshot","finalize","interrupted"],"isRequired":true,"uniqueKey":"error_detail.oneOf.0.phase","typeLabel":"enum\u003cstring>"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error_detail.oneOf.0.retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","isRequired":true,"uniqueKey":"error_detail.oneOf.0.suggested_action","typeLabel":"string"},"step_index":{"type":"integer","uniqueKey":"error_detail.oneOf.0.step_index","typeLabel":"integer"},"attempt":{"type":"integer","uniqueKey":"error_detail.oneOf.0.attempt","typeLabel":"integer"},"max_attempts":{"type":"integer","uniqueKey":"error_detail.oneOf.0.max_attempts","typeLabel":"integer"},"cache_subject":{"type":"string","uniqueKey":"error_detail.oneOf.0.cache_subject","typeLabel":"string"},"build_id":{"type":"string","uniqueKey":"error_detail.oneOf.0.build_id","typeLabel":"string"},"request_id":{"type":"string","description":"Present on terminal request-originated failures and blocking error responses.","uniqueKey":"error_detail.oneOf.0.request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"description":"Stable failure metadata. Includes a `reason` key plus phase-specific fields such as `blob_id`, `path`, digest/size mismatch values, `command`, or `alias`.","uniqueKey":"error_detail.oneOf.0.details","typeLabel":"object"}},"uniqueKey":"error_detail.oneOf.0","typeLabel":"object"},{"type":"object","required":["reason","message","retryable"],"properties":{"reason":{"type":"string","enum":["insufficient_staging_space","size_limit_exceeded","invalid_part_checksum","part_out_of_range","part_size_mismatch","whole_checksum_mismatch","upload_expired","upload_aborted","upload_already_completed","target_conflict","directory_extract_invalid_path","directory_extract_invalid_symlink","directory_extract_unsupported_entry","missing_parts"],"isRequired":true,"uniqueKey":"error_detail.oneOf.1.reason","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error_detail.oneOf.1.message","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error_detail.oneOf.1.retryable","typeLabel":"boolean"},"upload_id":{"type":"string","uniqueKey":"error_detail.oneOf.1.upload_id","typeLabel":"string"},"request_id":{"type":"string","uniqueKey":"error_detail.oneOf.1.request_id","typeLabel":"string"},"path":{"type":"string","description":"Normalized absolute machine path associated with the failed upload when available.","uniqueKey":"error_detail.oneOf.1.path","typeLabel":"string"},"part_number":{"type":"integer","format":"uint32","uniqueKey":"error_detail.oneOf.1.part_number","typeLabel":"integer\u003cuint32>"},"details":{"type":"object","additionalProperties":true,"description":"Additional failure diagnostics; keys depend on the failure reason, deliberately open.","uniqueKey":"error_detail.oneOf.1.details","typeLabel":"object"}},"uniqueKey":"error_detail.oneOf.1","typeLabel":"object"}],"uniqueKey":"error_detail","typeLabel":"object"},"request_id":{"type":"string","description":"Request correlation ID returned in the `x-request-id` header","uniqueKey":"request_id","typeLabel":"string"},"build_id":{"type":"string","description":"Template build ID when the error is associated with a tracked build","uniqueKey":"build_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"unauthorized":{"title":"unauthorized","value":{"error":"Missing or invalid bearer credential","code":"unauthorized","request_id":"req_123"}}},"exampleType":"examples"}},"exampleType":"examples"},"11661ea6-af01-4acf-b934-79a15365d70d":{"description":"Template or template build not found","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code","enum":["invalid_request","machine_not_found","snapshot_not_found","template_not_found","template_build_not_found","template_name_claim_not_found","machine_not_ready","unauthorized","auth_failed","auth_locked","auth_proxy_error","auth_proxy_unavailable","invalid_auth_redirect","invalid_oauth_provider","captcha_required","captcha_failed","captcha_unavailable","disposable_email","signup_rate_limited","oauth_rate_limited","email_action_rate_limited","database_error","email_not_verified","account_deleted","operator_required","account_not_found","account_not_soft_deleted","account_hard_delete_active_resources","file_upload_error","build_error","exec_timeout","exec_failed","file_error","not_implemented","capacity_exceeded","QUOTA_EXCEEDED","feature_unavailable","snapshot_in_use","no_eligible_runtime_host","same_host_required","incompatible_snapshot","rebuild_required","rate_limit_exceeded","transition_in_progress","transition_conflict","agent_deployment_not_found","agent_deployment_version_not_found","agent_run_not_found","agent_service_instance_not_found","agent_deployment_name_conflict","agent_deployment_idempotency_mismatch","agent_deployment_invalid_config","agent_deployment_invalid_state","volume_beta_restriction","volume_invalid_mount_path","volume_overlapping_mounts","volume_backend_capability_unsupported","volume_quota_exceeded","volume_mount_credential_issue_failed","volume_backend_unavailable","volume_stale_revision","volume_busy","volume_read_only","volume_limit_exceeded","internal_error"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"error_detail":{"oneOf":[{"type":"object","required":["code","message","phase","retryable","suggested_action"],"properties":{"code":{"type":"string","enum":["unauthorized","file_upload_error","build_error","internal_error"],"isRequired":true,"uniqueKey":"error_detail.oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error_detail.oneOf.0.message","typeLabel":"string"},"phase":{"type":"string","enum":["auth","preflight","blob_upload","prepare","build_step","readiness","snapshot","finalize","interrupted"],"isRequired":true,"uniqueKey":"error_detail.oneOf.0.phase","typeLabel":"enum\u003cstring>"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error_detail.oneOf.0.retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","isRequired":true,"uniqueKey":"error_detail.oneOf.0.suggested_action","typeLabel":"string"},"step_index":{"type":"integer","uniqueKey":"error_detail.oneOf.0.step_index","typeLabel":"integer"},"attempt":{"type":"integer","uniqueKey":"error_detail.oneOf.0.attempt","typeLabel":"integer"},"max_attempts":{"type":"integer","uniqueKey":"error_detail.oneOf.0.max_attempts","typeLabel":"integer"},"cache_subject":{"type":"string","uniqueKey":"error_detail.oneOf.0.cache_subject","typeLabel":"string"},"build_id":{"type":"string","uniqueKey":"error_detail.oneOf.0.build_id","typeLabel":"string"},"request_id":{"type":"string","description":"Present on terminal request-originated failures and blocking error responses.","uniqueKey":"error_detail.oneOf.0.request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"description":"Stable failure metadata. Includes a `reason` key plus phase-specific fields such as `blob_id`, `path`, digest/size mismatch values, `command`, or `alias`.","uniqueKey":"error_detail.oneOf.0.details","typeLabel":"object"}},"uniqueKey":"error_detail.oneOf.0","typeLabel":"object"},{"type":"object","required":["reason","message","retryable"],"properties":{"reason":{"type":"string","enum":["insufficient_staging_space","size_limit_exceeded","invalid_part_checksum","part_out_of_range","part_size_mismatch","whole_checksum_mismatch","upload_expired","upload_aborted","upload_already_completed","target_conflict","directory_extract_invalid_path","directory_extract_invalid_symlink","directory_extract_unsupported_entry","missing_parts"],"isRequired":true,"uniqueKey":"error_detail.oneOf.1.reason","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error_detail.oneOf.1.message","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error_detail.oneOf.1.retryable","typeLabel":"boolean"},"upload_id":{"type":"string","uniqueKey":"error_detail.oneOf.1.upload_id","typeLabel":"string"},"request_id":{"type":"string","uniqueKey":"error_detail.oneOf.1.request_id","typeLabel":"string"},"path":{"type":"string","description":"Normalized absolute machine path associated with the failed upload when available.","uniqueKey":"error_detail.oneOf.1.path","typeLabel":"string"},"part_number":{"type":"integer","format":"uint32","uniqueKey":"error_detail.oneOf.1.part_number","typeLabel":"integer\u003cuint32>"},"details":{"type":"object","additionalProperties":true,"description":"Additional failure diagnostics; keys depend on the failure reason, deliberately open.","uniqueKey":"error_detail.oneOf.1.details","typeLabel":"object"}},"uniqueKey":"error_detail.oneOf.1","typeLabel":"object"}],"uniqueKey":"error_detail","typeLabel":"object"},"request_id":{"type":"string","description":"Request correlation ID returned in the `x-request-id` header","uniqueKey":"request_id","typeLabel":"string"},"build_id":{"type":"string","description":"Template build ID when the error is associated with a tracked build","uniqueKey":"build_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"invalid_request","error_detail":{"code":"unauthorized","message":"\u003cstring>","phase":"auth","retryable":true,"suggested_action":"\u003cstring>","step_index":123,"attempt":123,"max_attempts":123,"cache_subject":"\u003cstring>","build_id":"\u003cstring>","request_id":"\u003cstring>","details":{}},"request_id":"\u003cstring>","build_id":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"239cb0a2-6623-4a6b-a1ec-eee3b9521111":{"description":"Feature is unavailable in current deployment mode","content":{"application/json":{"schema":{"type":"object","required":["error","code"],"properties":{"error":{"type":"string","description":"Human-readable error message","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Machine-readable error code","enum":["invalid_request","machine_not_found","snapshot_not_found","template_not_found","template_build_not_found","template_name_claim_not_found","machine_not_ready","unauthorized","auth_failed","auth_locked","auth_proxy_error","auth_proxy_unavailable","invalid_auth_redirect","invalid_oauth_provider","captcha_required","captcha_failed","captcha_unavailable","disposable_email","signup_rate_limited","oauth_rate_limited","email_action_rate_limited","database_error","email_not_verified","account_deleted","operator_required","account_not_found","account_not_soft_deleted","account_hard_delete_active_resources","file_upload_error","build_error","exec_timeout","exec_failed","file_error","not_implemented","capacity_exceeded","QUOTA_EXCEEDED","feature_unavailable","snapshot_in_use","no_eligible_runtime_host","same_host_required","incompatible_snapshot","rebuild_required","rate_limit_exceeded","transition_in_progress","transition_conflict","agent_deployment_not_found","agent_deployment_version_not_found","agent_run_not_found","agent_service_instance_not_found","agent_deployment_name_conflict","agent_deployment_idempotency_mismatch","agent_deployment_invalid_config","agent_deployment_invalid_state","volume_beta_restriction","volume_invalid_mount_path","volume_overlapping_mounts","volume_backend_capability_unsupported","volume_quota_exceeded","volume_mount_credential_issue_failed","volume_backend_unavailable","volume_stale_revision","volume_busy","volume_read_only","volume_limit_exceeded","internal_error"],"isRequired":true,"uniqueKey":"code","typeLabel":"enum\u003cstring>"},"error_detail":{"oneOf":[{"type":"object","required":["code","message","phase","retryable","suggested_action"],"properties":{"code":{"type":"string","enum":["unauthorized","file_upload_error","build_error","internal_error"],"isRequired":true,"uniqueKey":"error_detail.oneOf.0.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error_detail.oneOf.0.message","typeLabel":"string"},"phase":{"type":"string","enum":["auth","preflight","blob_upload","prepare","build_step","readiness","snapshot","finalize","interrupted"],"isRequired":true,"uniqueKey":"error_detail.oneOf.0.phase","typeLabel":"enum\u003cstring>"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error_detail.oneOf.0.retryable","typeLabel":"boolean"},"suggested_action":{"type":"string","isRequired":true,"uniqueKey":"error_detail.oneOf.0.suggested_action","typeLabel":"string"},"step_index":{"type":"integer","uniqueKey":"error_detail.oneOf.0.step_index","typeLabel":"integer"},"attempt":{"type":"integer","uniqueKey":"error_detail.oneOf.0.attempt","typeLabel":"integer"},"max_attempts":{"type":"integer","uniqueKey":"error_detail.oneOf.0.max_attempts","typeLabel":"integer"},"cache_subject":{"type":"string","uniqueKey":"error_detail.oneOf.0.cache_subject","typeLabel":"string"},"build_id":{"type":"string","uniqueKey":"error_detail.oneOf.0.build_id","typeLabel":"string"},"request_id":{"type":"string","description":"Present on terminal request-originated failures and blocking error responses.","uniqueKey":"error_detail.oneOf.0.request_id","typeLabel":"string"},"details":{"type":"object","additionalProperties":true,"description":"Stable failure metadata. Includes a `reason` key plus phase-specific fields such as `blob_id`, `path`, digest/size mismatch values, `command`, or `alias`.","uniqueKey":"error_detail.oneOf.0.details","typeLabel":"object"}},"uniqueKey":"error_detail.oneOf.0","typeLabel":"object"},{"type":"object","required":["reason","message","retryable"],"properties":{"reason":{"type":"string","enum":["insufficient_staging_space","size_limit_exceeded","invalid_part_checksum","part_out_of_range","part_size_mismatch","whole_checksum_mismatch","upload_expired","upload_aborted","upload_already_completed","target_conflict","directory_extract_invalid_path","directory_extract_invalid_symlink","directory_extract_unsupported_entry","missing_parts"],"isRequired":true,"uniqueKey":"error_detail.oneOf.1.reason","typeLabel":"enum\u003cstring>"},"message":{"type":"string","isRequired":true,"uniqueKey":"error_detail.oneOf.1.message","typeLabel":"string"},"retryable":{"type":"boolean","isRequired":true,"uniqueKey":"error_detail.oneOf.1.retryable","typeLabel":"boolean"},"upload_id":{"type":"string","uniqueKey":"error_detail.oneOf.1.upload_id","typeLabel":"string"},"request_id":{"type":"string","uniqueKey":"error_detail.oneOf.1.request_id","typeLabel":"string"},"path":{"type":"string","description":"Normalized absolute machine path associated with the failed upload when available.","uniqueKey":"error_detail.oneOf.1.path","typeLabel":"string"},"part_number":{"type":"integer","format":"uint32","uniqueKey":"error_detail.oneOf.1.part_number","typeLabel":"integer\u003cuint32>"},"details":{"type":"object","additionalProperties":true,"description":"Additional failure diagnostics; keys depend on the failure reason, deliberately open.","uniqueKey":"error_detail.oneOf.1.details","typeLabel":"object"}},"uniqueKey":"error_detail.oneOf.1","typeLabel":"object"}],"uniqueKey":"error_detail","typeLabel":"object"},"request_id":{"type":"string","description":"Request correlation ID returned in the `x-request-id` header","uniqueKey":"request_id","typeLabel":"string"},"build_id":{"type":"string","description":"Template build ID when the error is associated with a tracked build","uniqueKey":"build_id","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","code":"invalid_request","error_detail":{"code":"unauthorized","message":"\u003cstring>","phase":"auth","retryable":true,"suggested_action":"\u003cstring>","step_index":123,"attempt":123,"max_attempts":123,"cache_subject":"\u003cstring>","build_id":"\u003cstring>","request_id":"\u003cstring>","details":{}},"request_id":"\u003cstring>","build_id":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"0074367e-5f75-43db-afc2-3b1ecac22146":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key passed as Bearer token","scopes":[]}}},"servers":{"f71276dc-ef86-4d4f-985f-09c832d1de19":{"url":"https://api.13-215-85-171.sslip.io","description":"Private beta"},"a0e428dc-322f-4ccd-9734-92e4de588316":{"url":"https://nullspace.example","description":"Self-hosted single-host owned-domain"},"749ab2a6-3532-4028-b71c-05bbf14deb12":{"url":"http://localhost","description":"Self-hosted single-host localhost/no-domain via Caddy"},"a433d02e-5c00-4042-8b8c-7e9096206976":{"url":"http://localhost:3000","description":"Local development direct API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key passed as Bearer token","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key passed as Bearer token","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"catamaranresearch","siteName":"Nullspace","title":"Retry a template build from its persisted definition - Nullspace","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-06-21T17:43:31.588Z","originalFileLocation":"api-reference/templates/retry-a-template-build-from-its-persisted-definition.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Starts a new build attempt from the sanitized persisted build definition. Builds that used private base-image credentials require fresh base_image_auth; inline build context bytes are not persisted and must have reusable blob references to be retryable.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Nullspace\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/catamaranresearch/u9xmdi3i1cKfEW81/_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/catamaranresearch/u9xmdi3i1cKfEW81/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/catamaranresearch/u9xmdi3i1cKfEW81/_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/catamaranresearch/u9xmdi3i1cKfEW81/_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/catamaranresearch/u9xmdi3i1cKfEW81/_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/catamaranresearch/u9xmdi3i1cKfEW81/_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/catamaranresearch/u9xmdi3i1cKfEW81/_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/catamaranresearch/u9xmdi3i1cKfEW81/_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/catamaranresearch/u9xmdi3i1cKfEW81/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Retry a template build from its persisted definition - Nullspace\">\u003cmeta data-mint-head property=\"og:description\" content=\"Starts a new build attempt from the sanitized persisted build definition. Builds that used private base-image credentials require fresh base_image_auth; inline build context bytes are not persisted and must have reusable blob references to be retryable.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Nullspace\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.ns.rocks/api-reference/templates/retry-a-template-build-from-its-persisted-definition\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://catamaranresearch.mintlify.app/_mintlify/api/og/v2?division=Templates\u0026amp;title=Retry+a+template+build+from+its+persisted+definition\u0026amp;description=Starts+a+new+build+attempt+from+the+sanitized+persisted+build+definition.+Builds+that+used+private+base-image+credentials+require+fresh+%60base_image_auth%60%3B+inlin\u0026amp;theme=09658a1c05675b16b601ee5f\u0026amp;signature=be5dc967152aa4365cede57658750e8707634c7445aaf85e1ea3762bad240fdb\">\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=\"Retry a template build from its persisted definition - Nullspace\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Starts a new build attempt from the sanitized persisted build definition. Builds that used private base-image credentials require fresh base_image_auth; inline build context bytes are not persisted and must have reusable blob references to be retryable.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://catamaranresearch.mintlify.app/_mintlify/api/og/v2?division=Templates\u0026amp;title=Retry+a+template+build+from+its+persisted+definition\u0026amp;description=Starts+a+new+build+attempt+from+the+sanitized+persisted+build+definition.+Builds+that+used+private+base-image+credentials+require+fresh+%60base_image_auth%60%3B+inlin\u0026amp;theme=09658a1c05675b16b601ee5f\u0026amp;signature=be5dc967152aa4365cede57658750e8707634c7445aaf85e1ea3762bad240fdb\">\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/catamaranresearch/u9xmdi3i1cKfEW81/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Nullspace\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1a1d23\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.ns.rocks/api-reference/templates/retry-a-template-build-from-its-persisted-definition\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/templates/retry-a-template-build-from-its-persisted-definition.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.ns.rocks/#organization\",\"name\":\"Nullspace\",\"url\":\"https://docs.ns.rocks\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/catamaranresearch/IKCWYZugMKgGJaLI/images/logo-light.svg?fit=max\u0026auto=format\u0026n=IKCWYZugMKgGJaLI\u0026q=85\u0026s=fbbc2f6e5c18d0cc912d4eb6bd3af8ca\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.ns.rocks#website\",\"name\":\"Nullspace\",\"url\":\"https://docs.ns.rocks\",\"publisher\":{\"@id\":\"https://docs.ns.rocks/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.ns.rocks/api-reference/templates/retry-a-template-build-from-its-persisted-definition#webpage\",\"url\":\"https://docs.ns.rocks/api-reference/templates/retry-a-template-build-from-its-persisted-definition\",\"name\":\"Retry a template build from its persisted definition\",\"description\":\"Starts a new build attempt from the sanitized persisted build definition. Builds that used private base-image credentials require fresh base_image_auth; inline build context bytes are not persisted and must have reusable blob references to be retryable.\",\"dateModified\":\"2026-06-21T17:43:31.588Z\",\"isPartOf\":{\"@id\":\"https://docs.ns.rocks#website\"},\"breadcrumb\":{\"@id\":\"https://docs.ns.rocks/api-reference/templates/retry-a-template-build-from-its-persisted-definition#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.ns.rocks/api-reference/templates/retry-a-template-build-from-its-persisted-definition#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.ns.rocks/api-reference/health/process-liveness-check\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Templates\",\"item\":\"https://docs.ns.rocks/api-reference/templates/list-template-warm-pools\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Retry a template build from its persisted definition\",\"item\":\"https://docs.ns.rocks/api-reference/templates/retry-a-template-build-from-its-persisted-definition\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.ns.rocks/api-reference/templates/retry-a-template-build-from-its-persisted-definition#apireference\",\"headline\":\"Retry a template build from its persisted definition\",\"name\":\"Retry a template build from its persisted definition\",\"description\":\"Starts a new build attempt from the sanitized persisted build definition. Builds that used private base-image credentials require fresh base_image_auth; inline build context bytes are not persisted and must have reusable blob references to be retryable.\",\"url\":\"https://docs.ns.rocks/api-reference/templates/retry-a-template-build-from-its-persisted-definition\",\"mainEntityOfPage\":{\"@id\":\"https://docs.ns.rocks/api-reference/templates/retry-a-template-build-from-its-persisted-definition#webpage\"},\"dateModified\":\"2026-06-21T17:43:31.588Z\",\"publisher\":{\"@id\":\"https://docs.ns.rocks/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.ns.rocks#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Nullspace\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Nullspace","nav":{"global":null,"tabs":[{"tab":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/introduction"}]},{"tab":"Examples","icon":"code","pages":[{"title":"Examples","href":"/examples"}]},{"tab":"Agents","icon":"bot","pages":[{"title":"Agents","href":"/agents/overview"}]},{"tab":"Reference","icon":"terminal","pages":[{"title":"Reference","href":"/sdk-reference"}]},{"tab":"API Reference","icon":"braces","groups":[{"group":"Overview","icon":"compass","pages":[{"title":"API Reference","href":"/api-reference"},{"title":"API Reference Scope","href":"/reference/api-scope"}]},{"group":"Endpoints","icon":"braces","pages":[{"group":"Health","pages":[{"title":"Process liveness check","deprecated":null,"version":null,"openapi":"/openapi.yaml get /healthz","href":"/api-reference/health/process-liveness-check"}]},{"group":"Auth","pages":[{"title":"Create a Supabase Auth user through the gated abuse-controlled proxy","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/signup","href":"/api-reference/auth/create-a-supabase-auth-user-through-the-gated-abuse-controlled-proxy"},{"title":"Sign in through the gated failed-login lockout proxy","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/signin","href":"/api-reference/auth/sign-in-through-the-gated-failed-login-lockout-proxy"},{"title":"Start an explicitly enabled OAuth flow through the API proxy","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/oauth/start","href":"/api-reference/auth/start-an-explicitly-enabled-oauth-flow-through-the-api-proxy"},{"title":"Send a password reset email through the gated abuse-controlled proxy","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/password/reset","href":"/api-reference/auth/send-a-password-reset-email-through-the-gated-abuse-controlled-proxy"},{"title":"Resend signup verification through the gated abuse-controlled proxy","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/auth/verification/resend","href":"/api-reference/auth/resend-signup-verification-through-the-gated-abuse-controlled-proxy"}]},{"group":"API Keys","pages":[{"title":"List API keys for the authenticated user","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/keys","href":"/api-reference/api-keys/list-api-keys-for-the-authenticated-user"},{"title":"Create an API key for the authenticated user","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/keys","href":"/api-reference/api-keys/create-an-api-key-for-the-authenticated-user"},{"title":"Idempotently create the first runtime API key","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/keys/default","href":"/api-reference/api-keys/idempotently-create-the-first-runtime-api-key"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/keys/{id}","href":"/api-reference/api-keys/revoke-an-api-key"},{"title":"Rotate an API key","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/keys/{id}/rotate","href":"/api-reference/api-keys/rotate-an-api-key"}]},{"group":"Account","pages":[{"title":"Get the current account","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/account/me","href":"/api-reference/account/get-the-current-account"},{"title":"Update current account profile metadata","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/account/me","href":"/api-reference/account/update-current-account-profile-metadata"},{"title":"Export account data","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/account/export","href":"/api-reference/account/export-account-data"},{"title":"Soft-delete the current account","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/account","href":"/api-reference/account/soft-delete-the-current-account"}]},{"group":"Admin","pages":[{"title":"Search self-serve users","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/admin/users","href":"/api-reference/admin/search-self-serve-users"},{"title":"Get operator account detail","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/admin/users/{user_id}","href":"/api-reference/admin/get-operator-account-detail"},{"title":"Hard-delete a soft-deleted account","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/admin/users/{user_id}","href":"/api-reference/admin/hard-delete-a-soft-deleted-account"},{"title":"Update a user's quota tier","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/admin/users/{user_id}/quota","href":"/api-reference/admin/update-a-users-quota-tier"},{"title":"Mint an operator beta key for a user","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/admin/users/{user_id}/keys","href":"/api-reference/admin/mint-an-operator-beta-key-for-a-user"},{"title":"List quota tiers for operator override UI","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/admin/quota-tiers","href":"/api-reference/admin/list-quota-tiers-for-operator-override-ui"}]},{"group":"Machines","pages":[{"title":"List all machines","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines","href":"/api-reference/machines/list-all-machines"},{"title":"Create a new machine","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines","href":"/api-reference/machines/create-a-new-machine"},{"title":"Get machine details","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}","href":"/api-reference/machines/get-machine-details"},{"title":"Destroy a machine","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/machines/{id}","href":"/api-reference/machines/destroy-a-machine"},{"title":"Set machine timeout","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/timeout","href":"/api-reference/machines/set-machine-timeout"},{"title":"Update the egress policy of a running machine","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/machines/{id}/egress","href":"/api-reference/machines/update-the-egress-policy-of-a-running-machine"},{"title":"Get machine resource metrics","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/metrics","href":"/api-reference/machines/get-machine-resource-metrics"},{"title":"Execute a command in the machine","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/exec","href":"/api-reference/machines/execute-a-command-in-the-machine"},{"title":"List running processes in the machine","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/processes","href":"/api-reference/machines/list-running-processes-in-the-machine"},{"title":"Kill a process by PID","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/processes/{pid}/kill","href":"/api-reference/machines/kill-a-process-by-pid"},{"title":"Send data to a process's stdin","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/processes/{pid}/stdin","href":"/api-reference/machines/send-data-to-a-processs-stdin"},{"title":"Get process stdout/stderr logs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/processes/{pid}/logs","href":"/api-reference/machines/get-process-stdoutstderr-logs"},{"title":"Get host address for a forwarded port","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/host","href":"/api-reference/machines/get-host-address-for-a-forwarded-port"},{"title":"Create a default signed browser preview URL","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/ports/{port}/preview-url","href":"/api-reference/machines/create-a-default-signed-browser-preview-url"},{"title":"Create a signed browser preview URL","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/ports/{port}/signed-preview-url","href":"/api-reference/machines/create-a-signed-browser-preview-url"},{"title":"Create a custom preview proxy target","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/ports/{port}/preview-proxy-target","href":"/api-reference/machines/create-a-custom-preview-proxy-target"},{"title":"Check preview service readiness","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/ports/{port}/readiness","href":"/api-reference/machines/check-preview-service-readiness"},{"title":"List browser preview grants","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/preview-urls","href":"/api-reference/machines/list-browser-preview-grants"},{"title":"Revoke a browser preview grant","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/machines/{id}/preview-urls/{grant_id}","href":"/api-reference/machines/revoke-a-browser-preview-grant"},{"title":"Mint certificate-backed OpenSSH relay access","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/ssh-access","href":"/api-reference/machines/mint-certificate-backed-openssh-relay-access"},{"title":"Hibernate a machine","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/hibernate","href":"/api-reference/machines/hibernate-a-machine"},{"title":"Create a reusable snapshot","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/snapshots","href":"/api-reference/machines/create-a-reusable-snapshot"},{"title":"Resume paused machine state","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{snapshot_id}/resume","href":"/api-reference/machines/resume-paused-machine-state"},{"title":"Fork (clone) a running machine","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/fork","href":"/api-reference/machines/fork-clone-a-running-machine"},{"title":"List snapshots","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/snapshots","href":"/api-reference/machines/list-snapshots"},{"title":"Get snapshot metadata","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/snapshots/{id}","href":"/api-reference/machines/get-snapshot-metadata"},{"title":"Delete a snapshot","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/snapshots/{id}","href":"/api-reference/machines/delete-a-snapshot"},{"title":"List lifecycle events","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/lifecycle/events","href":"/api-reference/machines/list-lifecycle-events"},{"title":"List lifecycle events related to a machine","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/lifecycle","href":"/api-reference/machines/list-lifecycle-events-related-to-a-machine"},{"title":"List lifecycle events related to a snapshot","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/snapshots/{id}/lifecycle","href":"/api-reference/machines/list-lifecycle-events-related-to-a-snapshot"},{"title":"List lifecycle webhooks","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/lifecycle/webhooks","href":"/api-reference/machines/list-lifecycle-webhooks"},{"title":"Create a lifecycle webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/lifecycle/webhooks","href":"/api-reference/machines/create-a-lifecycle-webhook"},{"title":"Get a lifecycle webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/lifecycle/webhooks/{id}","href":"/api-reference/machines/get-a-lifecycle-webhook"},{"title":"Delete a lifecycle webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/lifecycle/webhooks/{id}","href":"/api-reference/machines/delete-a-lifecycle-webhook"},{"title":"Update a lifecycle webhook","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/lifecycle/webhooks/{id}","href":"/api-reference/machines/update-a-lifecycle-webhook"},{"title":"List lifecycle webhook deliveries","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/lifecycle/webhooks/{id}/deliveries","href":"/api-reference/machines/list-lifecycle-webhook-deliveries"},{"title":"Get a lifecycle webhook delivery with attempts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/lifecycle/webhooks/{id}/deliveries/{delivery_id}","href":"/api-reference/machines/get-a-lifecycle-webhook-delivery-with-attempts"}]},{"group":"Volumes","pages":[{"title":"List volume attachments for a machine","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/volumes","href":"/api-reference/volumes/list-volume-attachments-for-a-machine"},{"title":"Attach a volume to a running machine","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/volumes","href":"/api-reference/volumes/attach-a-volume-to-a-running-machine"},{"title":"Detach a volume from a running machine","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/machines/{id}/volumes/{attachment_id}","href":"/api-reference/volumes/detach-a-volume-from-a-running-machine"},{"title":"Refresh and return runtime health for a machine volume attachment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/volumes/{attachment_id}/health","href":"/api-reference/volumes/refresh-and-return-runtime-health-for-a-machine-volume-attachment"},{"title":"Remount a machine volume attachment in place","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/volumes/{attachment_id}/remount","href":"/api-reference/volumes/remount-a-machine-volume-attachment-in-place"},{"title":"List volumes visible to the current user","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/volumes","href":"/api-reference/volumes/list-volumes-visible-to-the-current-user"},{"title":"Create a new persistent volume","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes","href":"/api-reference/volumes/create-a-new-persistent-volume"},{"title":"Get volume metadata by exact name","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/volumes/by-name/{name}","href":"/api-reference/volumes/get-volume-metadata-by-exact-name"},{"title":"Get volume metadata","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/volumes/{id}","href":"/api-reference/volumes/get-volume-metadata"},{"title":"Delete an empty unattached volume","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/volumes/{id}","href":"/api-reference/volumes/delete-an-empty-unattached-volume"},{"title":"List machine attachments for a volume","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/volumes/{id}/attachments","href":"/api-reference/volumes/list-machine-attachments-for-a-volume"},{"title":"List files or directories in a volume path","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/volumes/{id}/files","href":"/api-reference/volumes/list-files-or-directories-in-a-volume-path"},{"title":"Read volume file contents","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/read","href":"/api-reference/volumes/read-volume-file-contents"},{"title":"Write content to a file in a volume","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/write","href":"/api-reference/volumes/write-content-to-a-file-in-a-volume"},{"title":"Check whether a file or directory exists in a volume","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/exists","href":"/api-reference/volumes/check-whether-a-file-or-directory-exists-in-a-volume"},{"title":"Get file or directory metadata from a volume","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/info","href":"/api-reference/volumes/get-file-or-directory-metadata-from-a-volume"},{"title":"Remove a file or directory from a volume","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/remove","href":"/api-reference/volumes/remove-a-file-or-directory-from-a-volume"},{"title":"Rename or move a file within a volume","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/rename","href":"/api-reference/volumes/rename-or-move-a-file-within-a-volume"},{"title":"Create a directory in a volume","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/mkdir","href":"/api-reference/volumes/create-a-directory-in-a-volume"},{"title":"Set volume file permissions","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/permissions","href":"/api-reference/volumes/set-volume-file-permissions"},{"title":"Search volume file contents by regex","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/find","href":"/api-reference/volumes/search-volume-file-contents-by-regex"},{"title":"Search volume files by glob pattern","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/search","href":"/api-reference/volumes/search-volume-files-by-glob-pattern"},{"title":"Replace text in volume files","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/replace","href":"/api-reference/volumes/replace-text-in-volume-files"},{"title":"Get a signed direct download URL for a volume file or directory archive","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/download-url","href":"/api-reference/volumes/get-a-signed-direct-download-url-for-a-volume-file-or-directory-archive"},{"title":"Get a signed direct upload URL for one volume file","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/files/upload-url","href":"/api-reference/volumes/get-a-signed-direct-upload-url-for-one-volume-file"},{"title":"Download a file or directory archive directly from a volume with a signed grant","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/volumes/{id}/file","href":"/api-reference/volumes/download-a-file-or-directory-archive-directly-from-a-volume-with-a-signed-grant"},{"title":"Upload one file directly into a volume with a signed grant","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/volumes/{id}/file","href":"/api-reference/volumes/upload-one-file-directly-into-a-volume-with-a-signed-grant"},{"title":"Upload one file directly into a volume with a signed multipart grant","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/file","href":"/api-reference/volumes/upload-one-file-directly-into-a-volume-with-a-signed-multipart-grant"},{"title":"Create a resumable volume upload session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/uploads","href":"/api-reference/volumes/create-a-resumable-volume-upload-session"},{"title":"Get resumable volume upload session status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/volumes/{id}/uploads/{upload_id}","href":"/api-reference/volumes/get-resumable-volume-upload-session-status"},{"title":"Abort and delete a resumable volume upload session","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/volumes/{id}/uploads/{upload_id}","href":"/api-reference/volumes/abort-and-delete-a-resumable-volume-upload-session"},{"title":"Upload one resumable volume-upload part","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/volumes/{id}/uploads/{upload_id}/parts/{part_number}","href":"/api-reference/volumes/upload-one-resumable-volume-upload-part"},{"title":"Complete and publish a resumable volume upload session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/volumes/{id}/uploads/{upload_id}/complete","href":"/api-reference/volumes/complete-and-publish-a-resumable-volume-upload-session"}]},{"group":"WebSocket","pages":[{"title":"Upgrade to a native lifecycle WebSocket stream","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/lifecycle/ws","href":"/api-reference/websocket/upgrade-to-a-native-lifecycle-websocket-stream"},{"title":"Upgrade to WebSocket for streaming exec/PTY","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/ws","href":"/api-reference/websocket/upgrade-to-websocket-for-streaming-execpty"},{"title":"Upgrade to WebSocket for direct volume watches","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/volumes/{id}/ws","href":"/api-reference/websocket/upgrade-to-websocket-for-direct-volume-watches"},{"title":"Upgrade to the monitor WebSocket stream","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/monitor/ws","href":"/api-reference/websocket/upgrade-to-the-monitor-websocket-stream"}]},{"group":"Files","pages":[{"title":"List directory contents","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/files","href":"/api-reference/files/list-directory-contents"},{"title":"Download a file as raw bytes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/file","href":"/api-reference/files/download-a-file-as-raw-bytes"},{"title":"Upload raw bytes to a file","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/machines/{id}/file","href":"/api-reference/files/upload-raw-bytes-to-a-file"},{"title":"Upload a file with multipart form data or a raw request body","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/file","href":"/api-reference/files/upload-a-file-with-multipart-form-data-or-a-raw-request-body"},{"title":"Create a resumable upload session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/uploads","href":"/api-reference/files/create-a-resumable-upload-session"},{"title":"Get resumable upload session status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/uploads/{upload_id}","href":"/api-reference/files/get-resumable-upload-session-status"},{"title":"Abort and delete a resumable upload session","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/machines/{id}/uploads/{upload_id}","href":"/api-reference/files/abort-and-delete-a-resumable-upload-session"},{"title":"Upload one resumable upload part","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/machines/{id}/uploads/{upload_id}/parts/{part_number}","href":"/api-reference/files/upload-one-resumable-upload-part"},{"title":"Complete and publish a resumable upload session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/uploads/{upload_id}/complete","href":"/api-reference/files/complete-and-publish-a-resumable-upload-session"},{"title":"Read file contents","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/read","href":"/api-reference/files/read-file-contents"},{"title":"Write content to a file","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/write","href":"/api-reference/files/write-content-to-a-file"},{"title":"Upload multiple files in one multipart request","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/batch-write","href":"/api-reference/files/upload-multiple-files-in-one-multipart-request"},{"title":"Check if a file or directory exists","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/exists","href":"/api-reference/files/check-if-a-file-or-directory-exists"},{"title":"Get file metadata","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/info","href":"/api-reference/files/get-file-metadata"},{"title":"Remove a file or directory","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/remove","href":"/api-reference/files/remove-a-file-or-directory"},{"title":"Rename or move a file","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/rename","href":"/api-reference/files/rename-or-move-a-file"},{"title":"Create a directory (recursive)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/mkdir","href":"/api-reference/files/create-a-directory-recursive"},{"title":"Get a direct upload URL","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/upload-url","href":"/api-reference/files/get-a-direct-upload-url"},{"title":"Get a direct download URL","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/download-url","href":"/api-reference/files/get-a-direct-download-url"},{"title":"Set file permissions","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/permissions","href":"/api-reference/files/set-file-permissions"},{"title":"Search for a pattern inside file contents (grep)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/find","href":"/api-reference/files/search-for-a-pattern-inside-file-contents-grep"},{"title":"Search for files by name pattern (find)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/search","href":"/api-reference/files/search-for-files-by-name-pattern-find"},{"title":"Find and replace text in files (sed)","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/files/replace","href":"/api-reference/files/find-and-replace-text-in-files-sed"}]},{"group":"Git","pages":[{"title":"Clone a git repository into the machine","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/git/clone","href":"/api-reference/git/clone-a-git-repository-into-the-machine"},{"title":"Parsed working-tree status","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/git/status","href":"/api-reference/git/parsed-working-tree-status"},{"title":"Commit history","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/git/log","href":"/api-reference/git/commit-history"},{"title":"List branches","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/git/branch","href":"/api-reference/git/list-branches"},{"title":"Create or delete a branch","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/git/branch","href":"/api-reference/git/create-or-delete-a-branch"},{"title":"Check out a branch, tag, or commit","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/git/checkout","href":"/api-reference/git/check-out-a-branch-tag-or-commit"},{"title":"Stage changes","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/git/add","href":"/api-reference/git/stage-changes"},{"title":"Create a commit","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/git/commit","href":"/api-reference/git/create-a-commit"},{"title":"Pull from a remote","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/git/pull","href":"/api-reference/git/pull-from-a-remote"},{"title":"Push to a remote","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/git/push","href":"/api-reference/git/push-to-a-remote"}]},{"group":"Desktop","pages":[{"title":"Take a full-screen screenshot","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/screenshot","href":"/api-reference/desktop/take-a-full-screen-screenshot"},{"title":"Take a screenshot of a region","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/screenshot/region","href":"/api-reference/desktop/take-a-screenshot-of-a-region"},{"title":"Take a screenshot with compression options","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/screenshot/compressed","href":"/api-reference/desktop/take-a-screenshot-with-compression-options"},{"title":"Click at coordinates","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/click","href":"/api-reference/desktop/click-at-coordinates"},{"title":"Move mouse to coordinates","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/move","href":"/api-reference/desktop/move-mouse-to-coordinates"},{"title":"Press and hold a mouse button","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/mouse/down","href":"/api-reference/desktop/press-and-hold-a-mouse-button"},{"title":"Release a mouse button","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/mouse/up","href":"/api-reference/desktop/release-a-mouse-button"},{"title":"Type text string","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/type","href":"/api-reference/desktop/type-text-string"},{"title":"Press a single key","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/key","href":"/api-reference/desktop/press-a-single-key"},{"title":"Drag from one point to another","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/drag","href":"/api-reference/desktop/drag-from-one-point-to-another"},{"title":"Scroll at coordinates","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/scroll","href":"/api-reference/desktop/scroll-at-coordinates"},{"title":"Press a hotkey combination (e.g. \"ctrl+c\")","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/hotkey","href":"/api-reference/desktop/press-a-hotkey-combination-eg-\"ctrl+c\""},{"title":"Press a key with optional modifiers","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/press","href":"/api-reference/desktop/press-a-key-with-optional-modifiers"},{"title":"Get screen dimensions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/screen_size","href":"/api-reference/desktop/get-screen-dimensions"},{"title":"Get current cursor position","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/cursor","href":"/api-reference/desktop/get-current-cursor-position"},{"title":"Get display information","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/display","href":"/api-reference/desktop/get-display-information"},{"title":"Get desktop automation capabilities","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/capabilities","href":"/api-reference/desktop/get-desktop-automation-capabilities"},{"title":"List open windows with metadata","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/windows","href":"/api-reference/desktop/list-open-windows-with-metadata"},{"title":"Launch a desktop application using an explicit mode","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/launch","href":"/api-reference/desktop/launch-a-desktop-application-using-an-explicit-mode"},{"title":"Open a path, file URL, or URI with the desktop session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/open","href":"/api-reference/desktop/open-a-path-file-url-or-uri-with-the-desktop-session"},{"title":"Get text from the guest clipboard","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/clipboard","href":"/api-reference/desktop/get-text-from-the-guest-clipboard"},{"title":"Set text on the guest clipboard","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/machines/{id}/desktop/clipboard","href":"/api-reference/desktop/set-text-on-the-guest-clipboard"},{"title":"Get the current active window ID","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/window/current","href":"/api-reference/desktop/get-the-current-active-window-id"},{"title":"Get the title for a specific window","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/window/{window_id}/title","href":"/api-reference/desktop/get-the-title-for-a-specific-window"},{"title":"Get raw VNC connection info for advanced or operator use","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/stream","href":"/api-reference/desktop/get-raw-vnc-connection-info-for-advanced-or-operator-use"},{"title":"Start or rotate the preferred managed desktop viewer session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/stream/start","href":"/api-reference/desktop/start-or-rotate-the-preferred-managed-desktop-viewer-session"},{"title":"Stop the managed desktop viewer session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/stream/stop","href":"/api-reference/desktop/stop-the-managed-desktop-viewer-session"},{"title":"Get the active managed desktop viewer auth key and browser URL","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/stream/auth-key","href":"/api-reference/desktop/get-the-active-managed-desktop-viewer-auth-key-and-browser-url"},{"title":"Get the managed desktop viewer page","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/viewer","href":"/api-reference/desktop/get-the-managed-desktop-viewer-page"},{"title":"Renew the public managed desktop viewer session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/viewer/session","href":"/api-reference/desktop/renew-the-public-managed-desktop-viewer-session"},{"title":"Get text from the guest clipboard through the managed viewer auth token","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/viewer/clipboard","href":"/api-reference/desktop/get-text-from-the-guest-clipboard-through-the-managed-viewer-auth-token"},{"title":"Set text on the guest clipboard through the managed viewer auth token","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/machines/{id}/desktop/viewer/clipboard","href":"/api-reference/desktop/set-text-on-the-guest-clipboard-through-the-managed-viewer-auth-token"},{"title":"Get a managed desktop viewer asset","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/desktop/viewer-assets/{path}","href":"/api-reference/desktop/get-a-managed-desktop-viewer-asset"},{"title":"Upgrade to the managed desktop viewer websocket bridge","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/viewer/ws","href":"/api-reference/desktop/upgrade-to-the-managed-desktop-viewer-websocket-bridge"}]},{"group":"Recording","pages":[{"title":"Start screen recording","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/recording/start","href":"/api-reference/recording/start-screen-recording"},{"title":"Stop screen recording","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/desktop/recording/stop","href":"/api-reference/recording/stop-screen-recording"},{"title":"List all recordings","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/recording","href":"/api-reference/recording/list-all-recordings"},{"title":"Get recording details","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/recording/{rid}","href":"/api-reference/recording/get-recording-details"},{"title":"Delete a recording","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/machines/{id}/desktop/recording/{rid}","href":"/api-reference/recording/delete-a-recording"},{"title":"Download recording video file","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/desktop/recording/{rid}/download","href":"/api-reference/recording/download-recording-video-file"}]},{"group":"PTY","pages":[{"title":"List PTY sessions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/pty","href":"/api-reference/pty/list-pty-sessions"},{"title":"Get PTY session info","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/pty/{sid}","href":"/api-reference/pty/get-pty-session-info"},{"title":"Kill a PTY session","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/machines/{id}/pty/{sid}","href":"/api-reference/pty/kill-a-pty-session"},{"title":"Resize a PTY session","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/pty/{sid}/resize","href":"/api-reference/pty/resize-a-pty-session"}]},{"group":"Templates","pages":[{"title":"List template warm pools","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/template-warm-pools","href":"/api-reference/templates/list-template-warm-pools"},{"title":"Create a template warm pool","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/template-warm-pools","href":"/api-reference/templates/create-a-template-warm-pool"},{"title":"Get a template warm pool","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/template-warm-pools/{warm_pool_id}","href":"/api-reference/templates/get-a-template-warm-pool"},{"title":"Delete a template warm pool","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/template-warm-pools/{warm_pool_id}","href":"/api-reference/templates/delete-a-template-warm-pool"},{"title":"Update a template warm pool","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/template-warm-pools/{warm_pool_id}","href":"/api-reference/templates/update-a-template-warm-pool"},{"title":"Get template warm-pool status counts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/template-warm-pools/{warm_pool_id}/status","href":"/api-reference/templates/get-template-warm-pool-status-counts"},{"title":"Enable a template warm pool","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/template-warm-pools/{warm_pool_id}/enable","href":"/api-reference/templates/enable-a-template-warm-pool"},{"title":"Disable a template warm pool","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/template-warm-pools/{warm_pool_id}/disable","href":"/api-reference/templates/disable-a-template-warm-pool"},{"title":"Drain a template warm pool","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/template-warm-pools/{warm_pool_id}/drain","href":"/api-reference/templates/drain-a-template-warm-pool"},{"title":"Reconcile a template warm pool","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/template-warm-pools/{warm_pool_id}/reconcile","href":"/api-reference/templates/reconcile-a-template-warm-pool"},{"title":"List templates accessible to the caller","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates","href":"/api-reference/templates/list-templates-accessible-to-the-caller"},{"title":"Create a template (deprecated blocking convenience)","deprecated":true,"version":null,"openapi":"/openapi.yaml post /v1/templates","href":"/api-reference/templates/create-a-template-deprecated-blocking-convenience"},{"title":"Get template details","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates/{id}","href":"/api-reference/templates/get-template-details"},{"title":"Delete a template","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/templates/{id}","href":"/api-reference/templates/delete-a-template"},{"title":"Update logical template visibility","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/templates/{id}/visibility","href":"/api-reference/templates/update-logical-template-visibility"},{"title":"Rename a logical template","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/{id}/rename","href":"/api-reference/templates/rename-a-logical-template"},{"title":"List logical template aliases","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates/{id}/aliases","href":"/api-reference/templates/list-logical-template-aliases"},{"title":"Remove a logical template alias","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/templates/{id}/aliases/{alias}","href":"/api-reference/templates/remove-a-logical-template-alias"},{"title":"Build a template with streaming logs","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/build","href":"/api-reference/templates/build-a-template-with-streaming-logs"},{"title":"Start a background template build","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/builds","href":"/api-reference/templates/start-a-background-template-build"},{"title":"Validate a template build request without starting a build","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/validate","href":"/api-reference/templates/validate-a-template-build-request-without-starting-a-build"},{"title":"Return a backend-neutral template build plan without starting a build","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/plan","href":"/api-reference/templates/return-a-backend-neutral-template-build-plan-without-starting-a-build"},{"title":"Preflight template build-context blobs","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/blobs/preflight","href":"/api-reference/templates/preflight-template-build-context-blobs"},{"title":"Upload a preflighted template blob","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/templates/blobs/{blob_id}","href":"/api-reference/templates/upload-a-preflighted-template-blob"},{"title":"Poll template build status and incremental events","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates/builds/{build_id}","href":"/api-reference/templates/poll-template-build-status-and-incremental-events"},{"title":"Stream reconnectable template build logs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates/builds/{build_id}/logs","href":"/api-reference/templates/stream-reconnectable-template-build-logs"},{"title":"Cancel a queued or running template build","description":"Requests cancellation for an active template build. Cancellation is idempotent for terminal builds and returns the current build snapshot.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/builds/{build_id}/cancel","href":"/api-reference/templates/cancel-a-queued-or-running-template-build"},{"title":"Retry a template build from its persisted definition","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/builds/{build_id}/retry","href":"/api-reference/templates/retry-a-template-build-from-its-persisted-definition"},{"title":"Promote a successful historical build to a tag","description":"Moves one or more tags to the retained artifact produced by a successful build. Promotion is explicit and records a build audit event.\n","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/builds/{build_id}/promote","href":"/api-reference/templates/promote-a-successful-historical-build-to-a-tag"},{"title":"List the tag → build_id assignments for a template","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates/{id}/tags","href":"/api-reference/templates/list-the-tag-→-build_id-assignments-for-a-template"},{"title":"Assign or promote tags for a template artifact","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/{id}/tags","href":"/api-reference/templates/assign-or-promote-tags-for-a-template-artifact"},{"title":"List build history for a template","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates/{id}/builds","href":"/api-reference/templates/list-build-history-for-a-template"},{"title":"Remove a tag from a template artifact","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/templates/{id}/tags/{tag}","href":"/api-reference/templates/remove-a-tag-from-a-template-artifact"},{"title":"Get template details by canonical ref","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates/refs/{ref}","href":"/api-reference/templates/get-template-details-by-canonical-ref"},{"title":"Delete a custom template by canonical ref","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/templates/refs/{ref}","href":"/api-reference/templates/delete-a-custom-template-by-canonical-ref"},{"title":"Reserve a template name claim","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/claims","href":"/api-reference/templates/reserve-a-template-name-claim"},{"title":"Release a template name claim","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/templates/claims/{claim_token}","href":"/api-reference/templates/release-a-template-name-claim"},{"title":"Update logical template visibility by canonical ref","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/templates/refs/{ref}/visibility","href":"/api-reference/templates/update-logical-template-visibility-by-canonical-ref"},{"title":"Rename a logical template by canonical ref","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/refs/{ref}/rename","href":"/api-reference/templates/rename-a-logical-template-by-canonical-ref"},{"title":"List active tag assignments for a custom template ref","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates/refs/{ref}/tags","href":"/api-reference/templates/list-active-tag-assignments-for-a-custom-template-ref"},{"title":"Assign or promote tags for a custom template ref","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/refs/{ref}/tags","href":"/api-reference/templates/assign-or-promote-tags-for-a-custom-template-ref"},{"title":"Get template namespace metadata","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates/namespaces/{slug}","href":"/api-reference/templates/get-template-namespace-metadata"},{"title":"List build history for a custom template ref","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates/refs/{ref}/builds","href":"/api-reference/templates/list-build-history-for-a-custom-template-ref"},{"title":"List read-only aliases for a logical template","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates/refs/{ref}/aliases","href":"/api-reference/templates/list-read-only-aliases-for-a-logical-template"},{"title":"Remove a tag from a custom template ref","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/templates/refs/{ref}/tags/{tag}","href":"/api-reference/templates/remove-a-tag-from-a-custom-template-ref"},{"title":"Remove a read-only alias from a logical template","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/templates/refs/{ref}/aliases/{alias}","href":"/api-reference/templates/remove-a-read-only-alias-from-a-logical-template"}]},{"group":"Agent Deployments","pages":[{"title":"List agent deployments","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments","href":"/api-reference/agent-deployments/list-agent-deployments"},{"title":"Create an agent deployment","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent-deployments","href":"/api-reference/agent-deployments/create-an-agent-deployment"},{"title":"Get an agent deployment","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments/{deployment_id}","href":"/api-reference/agent-deployments/get-an-agent-deployment"},{"title":"Delete an agent deployment","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/agent-deployments/{deployment_id}","href":"/api-reference/agent-deployments/delete-an-agent-deployment"},{"title":"Update an agent deployment","deprecated":null,"version":null,"openapi":"/openapi.yaml patch /v1/agent-deployments/{deployment_id}","href":"/api-reference/agent-deployments/update-an-agent-deployment"},{"title":"List agent deployment events","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments/{deployment_id}/events","href":"/api-reference/agent-deployments/list-agent-deployment-events"},{"title":"List agent deployment versions","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments/{deployment_id}/versions","href":"/api-reference/agent-deployments/list-agent-deployment-versions"},{"title":"Create an agent deployment version","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent-deployments/{deployment_id}/versions","href":"/api-reference/agent-deployments/create-an-agent-deployment-version"},{"title":"Get an agent deployment version","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments/{deployment_id}/versions/{version_id}","href":"/api-reference/agent-deployments/get-an-agent-deployment-version"},{"title":"Upload an agent deployment version bundle","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/agent-deployments/{deployment_id}/versions/{version_id}/bundle","href":"/api-reference/agent-deployments/upload-an-agent-deployment-version-bundle"},{"title":"List agent runs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments/{deployment_id}/runs","href":"/api-reference/agent-deployments/list-agent-runs"},{"title":"Create an agent run","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent-deployments/{deployment_id}/runs","href":"/api-reference/agent-deployments/create-an-agent-run"},{"title":"Get an agent run","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments/{deployment_id}/runs/{run_id}","href":"/api-reference/agent-deployments/get-an-agent-run"},{"title":"Cancel an agent run","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent-deployments/{deployment_id}/runs/{run_id}/cancel","href":"/api-reference/agent-deployments/cancel-an-agent-run"},{"title":"List agent run logs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments/{deployment_id}/runs/{run_id}/logs","href":"/api-reference/agent-deployments/list-agent-run-logs"},{"title":"Get agent run output metadata","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments/{deployment_id}/runs/{run_id}/outputs","href":"/api-reference/agent-deployments/get-agent-run-output-metadata"},{"title":"List agent service instances","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments/{deployment_id}/services","href":"/api-reference/agent-deployments/list-agent-service-instances"},{"title":"Create an agent service instance","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent-deployments/{deployment_id}/services","href":"/api-reference/agent-deployments/create-an-agent-service-instance"},{"title":"Get an agent service instance","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments/{deployment_id}/services/{service_id}","href":"/api-reference/agent-deployments/get-an-agent-service-instance"},{"title":"Restart an agent service instance","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent-deployments/{deployment_id}/services/{service_id}/restart","href":"/api-reference/agent-deployments/restart-an-agent-service-instance"},{"title":"Stop an agent service instance","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/agent-deployments/{deployment_id}/services/{service_id}/stop","href":"/api-reference/agent-deployments/stop-an-agent-service-instance"},{"title":"List agent service logs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments/{deployment_id}/services/{service_id}/logs","href":"/api-reference/agent-deployments/list-agent-service-logs"},{"title":"Get agent service URL metadata","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/agent-deployments/{deployment_id}/services/{service_id}/url","href":"/api-reference/agent-deployments/get-agent-service-url-metadata"}]},{"group":"Code","pages":[{"title":"Execute code in a Jupyter kernel","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/code/execute","href":"/api-reference/code/execute-code-in-a-jupyter-kernel"},{"title":"List async code runs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/code/runs","href":"/api-reference/code/list-async-code-runs"},{"title":"Create an async code execution run","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/code/runs","href":"/api-reference/code/create-an-async-code-execution-run"},{"title":"Get async code run","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/code/runs/{run_id}","href":"/api-reference/code/get-async-code-run"},{"title":"Cancel async code run","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/code/runs/{run_id}/cancel","href":"/api-reference/code/cancel-async-code-run"},{"title":"List kernel contexts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/code/contexts","href":"/api-reference/code/list-kernel-contexts"},{"title":"Create a new kernel context","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/code/contexts","href":"/api-reference/code/create-a-new-kernel-context"},{"title":"Remove a kernel context","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/machines/{id}/code/contexts/{ctx_id}","href":"/api-reference/code/remove-a-kernel-context"},{"title":"Restart a kernel context","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/code/contexts/{ctx_id}/restart","href":"/api-reference/code/restart-a-kernel-context"},{"title":"Interrupt a running execution","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines/{id}/code/contexts/{ctx_id}/interrupt","href":"/api-reference/code/interrupt-a-running-execution"},{"title":"List execution artifacts","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/code/artifacts","href":"/api-reference/code/list-execution-artifacts"},{"title":"Get artifact metadata","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/code/artifacts/{artifact_id}","href":"/api-reference/code/get-artifact-metadata"},{"title":"Delete an artifact","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/machines/{id}/code/artifacts/{artifact_id}","href":"/api-reference/code/delete-an-artifact"},{"title":"Download artifact bytes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/code/artifacts/{artifact_id}/download","href":"/api-reference/code/download-artifact-bytes"},{"title":"Preview artifact content","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{id}/code/artifacts/{artifact_id}/preview","href":"/api-reference/code/preview-artifact-content"}]}]}]}]},"title":"Retry a template build from its persisted definition - Nullspace","buildId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","deploymentId":"dpl_2xiSHD9XEvLsPGPcfoMtkLTB3dy9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DmVyH30O.js","utils-BHQqGGOd.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CD-E4BIt.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp5Lq9Ds.js","snippetPresets-C4xAVCFP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CgXVLxUC.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BF8I5oUf.js","shallow-Byd0lWnC.js","getApiPlaygroundDisplay-BGOZG1OK.js","CodeSnippet-CpvQL0CY.js","CodeSnippets-B8wkBKXa.js","Page-CBCH2P7b.js","getPastedJson-Ry3scI3Y.js","icon-D7a9HcdD.js","MethodPill-CJ8pmHhz.js","DuplicateIcon-rh1HJF0t.js","createIcon-DvGznqYs.js","DynamicMarkdown-Cc6AuSHS.js","SectionHeading-B4A0S-ep.js","axios-vUo_bRtp.js","Markdown-Cc16CX65.js","clsx-Cs6nMGht.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-zbf22OZA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-C_fs-y5n.js"]}