Creates a new Build from the given definition and starts it immediately.
A rebuild inherits the most recent Build’s IDC placement and resources, so a
Template with no Build records left has nothing to inherit and returns
409. Not supported in every IDC; IDCs without rebuild support reject it with 422.
A rebuild supersedes the Template’s still-running Builds: each one is
finalized as error with failure code TemplateBuild.Superseded, its
backing build in the selected IDC is cancelled, and its partial
artifacts are reclaimed, best-effort. When the new Build turns ready
it becomes the Template’s default Build; the previously bound Build’s
artifact is then reclaimed where the selected IDC permits it (an
artifact still referenced by dependent resources is retained and
reclaimed on Template deletion instead). If the new Build fails, the
previous binding is unchanged.
This operation is not idempotent and does not accept an Idempotency-Key
header. Every call creates a new Build and supersedes the running ones, so
before retrying a request whose outcome is unknown, check
GET /templates/{template_id}/builds for the Build it may already have created.
Runtime default identity for Sandboxes launched from this Build.
Without it, Sandboxes run as docker run would: as the Dockerfile's final
USER, else the image's USER, else root, in the final WORKDIR, else the
image's, else /.
Sandboxes run commands as a named account: an image USER given as a
numeric uid (or uid:gid) needs a matching /etc/passwd entry in the image,
otherwise the Build fails with a reason that names the USER. The group
part is ignored.
It is applied after all build commands and overrides the final Dockerfile
USER at runtime; it does not change the identity of earlier build commands.
Recommended setup for a custom account: create it in the Dockerfile, give
it a working directory it can access, and pass its uid, for example
RUN useradd --uid 9999 --create-home --shell /bin/bash app,
WORKDIR /home/app, and default_user: {username: app, uid: 9999}.
default_user changes the identity only, not the working directory or its
permissions. If the account cannot enter the final working directory,
commands cannot start there and the Build may fail; declare an
accessible WORKDIR to fix it.
With uid, the account must already exist with that UID and an existing
home directory; otherwise the Build fails. The platform does not change
UID, ownership, groups, or sudo privileges.
A non-root username without uid may be rejected with HTTP 422
(Template.ProviderNotSupported); supply uid to avoid this. root may omit uid.
Invalid username, out-of-range uid, or root with a nonzero uid returns
HTTP 400 (Parameter.Invalid).
A Build from a base template keeps the base template's user and working
directory, as Docker FROM does; set default_user on the child Build to
select another. Changing it requires a new Build.
When omitted, the template's default runtime identity is used. A Build
response reports the requested setting; an omitted uid stays omitted.
Shell command strings executed sequentially during the Build. They may
run as a non-root account with passwordless sudo: prefix privileged
commands with sudo, and set ownership of files that the runtime
account must use. To control the build identity explicitly, use a
Dockerfile source with USER instructions, as in a regular Dockerfile.
Environment variables available only during the Template Build.
They are visible to subsequent build commands/steps and are not persisted
into the resulting template artifact as sandbox runtime environment
variables. Pass runtime env when creating a Sandbox instead. Write-only:
values are never returned on Template or TemplateBuild responses.
Keys must be unique (JSON object); the server orders them
deterministically by key. Key names must match
[A-Za-z_][A-Za-z0-9_]*.
Wall-clock budget for this Build in seconds. Omit or null to use the
platform default (600). Allowed range: 60–3600. On expiry the Build
is finalized as error with failure code TemplateBuild.TimedOut,
its backing build in the selected IDC is cancelled, and its partial
artifacts are reclaimed, best-effort.
Launch command persisted with the Build and applied when Sandboxes
created from this Template start.
It runs as a boot script before the sandbox's main process, and the
sandbox only becomes ready once it returns, so the command must
terminate. A foreground long-running command (sleep infinity, a
server started in the foreground) leaves the Sandbox stuck
initializing and every exec against it rejected.
Appending & alone is not sufficient: a backgrounded process that
still holds the inherited stdout/stderr keeps boot blocked just the
same. Long-running processes must be backgrounded and detached
from those streams, e.g.
my-server > /var/log/my-server.log 2>&1 &.
Resume continues the saved processes without re-running this command.
The Build record is created and immediately addressable via
GET /templates/{template_id}/builds/{id}; build progress is
reported by status, not by the status code.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"GMI Cloud Documentation","description":"Inference Endpoints, GPU Compute, AI Workflows, and Agent Deployment","colors":{"primary":"#6e7a0e","light":"#DDEA4E","dark":"#DDEA4E"},"logo":{"light":"https://mintcdn.com/gmicloud/NMovxHyNviV7LUYd/logo/gmi-cloud-logo.svg?fit=max\u0026auto=format\u0026n=NMovxHyNviV7LUYd\u0026q=85\u0026s=17a2b497b7719739248dfca2ae9d6c4a","dark":"https://mintcdn.com/gmicloud/NMovxHyNviV7LUYd/logo/gmi-logo-white.svg?fit=max\u0026auto=format\u0026n=NMovxHyNviV7LUYd\u0026q=85\u0026s=aa77416cbe67a81b8e7029a8425d31e9"},"favicon":{"light":"https://mintcdn.com/gmicloud/np5vsfVwdGGHAKEu/favicon.ico?fit=max\u0026auto=format\u0026n=np5vsfVwdGGHAKEu\u0026q=85\u0026s=ceee7fb6e73ccace00b3b7cf8b040dc3","dark":"https://mintcdn.com/gmicloud/np5vsfVwdGGHAKEu/favicon.ico?fit=max\u0026auto=format\u0026n=np5vsfVwdGGHAKEu\u0026q=85\u0026s=ceee7fb6e73ccace00b3b7cf8b040dc3"},"navbar":{"links":[{"href":"https://discord.gg/TkBT7r2D97","label":"Discord"},{"href":"https://github.com/GMISWE","label":"GitHub"},{"href":"https://www.gmicloud.ai/contact#sales","label":"Support"}],"primary":{"type":"button","label":"Open Console","href":"https://console.gmicloud.ai/"}},"footer":{"socials":{"discord":"https://discord.gg/TkBT7r2D97","x":"https://x.com/gmi_cloud","github":"https://github.com/GMISWE","linkedin":"https://www.linkedin.com/company/gmi-cloud-ai","youtube":"https://www.youtube.com/@GMICloud"}},"fonts":{"family":"https://fonts.googleapis.com/css2?family=DM+Sans"},"integrations":{"gtm":{"tagId":"GTM-P5WZVMXP"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"gmicloud","hasAudioNarration":false,"actualSubdomain":"gmicloud","customDomains":["docs.gmicloud.ai"],"gitSource":{"type":"gitlab","owner":"product-center","repo":"mintlify-doc-site","deployBranch":"main","contentDirectory":"","isPrivate":true,"projectId":73773841,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae39866b150d6fc53036f23","collectionId":"cffa4653-0bca-48cc-bb56-a5cc0f6d43d3","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae39866b150d6fc53036f23"},"entitlements":{},"buildId":"6ae4878f516c780aa3755d08","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Guides","count":236},{"language":"default","tag":"Model Quickstarts","count":222},{"language":"default","tag":"Video","count":94},{"language":"default","tag":"API Reference","count":77},{"language":"default","tag":"Text","count":75},{"language":"default","tag":"GMI Agentbox","count":50},{"language":"default","tag":"GMI Studio","count":46},{"language":"default","tag":"Compute Service APIs","count":41},{"language":"default","tag":"Node Reference","count":38},{"language":"default","tag":"Image","count":34}]},"assistantConfig":{},"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":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"a:has(>span.bg-primary-dark) .text-white,a:has(>span.bg-primary-dark) svg{color:#000!important}"}],"page":{"pagePath":"agentbox-api/sandboxtemplate/create-and-start-a-rebuild","slug":"/agentbox-api/sandboxtemplate/create-and-start-a-rebuild","pageMetadata":{"title":"Create and start a rebuild","description":"Creates a new Build from the given definition and starts it immediately.\nA rebuild inherits the most recent Build's IDC placement and resources, so a\nTemplate with no Build records left has nothing to inherit and returns\n409. Not supported in every IDC; IDCs without rebuild support reject it with 422.\n\nA rebuild supersedes the Template's still-running Builds: each one is\nfinalized as `error` with failure code `TemplateBuild.Superseded`, its\nbacking build in the selected IDC is cancelled, and its partial\nartifacts are reclaimed, best-effort. When the new Build turns `ready`\nit becomes the Template's default Build; the previously bound Build's\nartifact is then reclaimed where the selected IDC permits it (an\nartifact still referenced by dependent resources is retained and\nreclaimed on Template deletion instead). If the new Build fails, the\nprevious binding is unchanged.\n\nThis operation is not idempotent and does not accept an `Idempotency-Key`\nheader. Every call creates a new Build and supersedes the running ones, so\nbefore retrying a request whose outcome is unknown, check\n`GET /templates/{template_id}/builds` for the Build it may already have created.\n","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /templates/{template_id}/builds","href":"/agentbox-api/sandboxtemplate/create-and-start-a-rebuild","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, 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(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Creates a new Build from the given definition and starts it immediately.\\nA rebuild inherits the most recent Build’s IDC placement and resources, so a\\nTemplate with no Build records left has nothing to inherit and returns\\n409. Not supported in every IDC; IDCs without rebuild support reject it with 422.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"A rebuild supersedes the Template’s still-running Builds: each one is\\nfinalized as \", _jsx(_components.code, {\n children: \"error\"\n }), \" with failure code \", _jsx(_components.code, {\n children: \"TemplateBuild.Superseded\"\n }), \", its\\nbacking build in the selected IDC is cancelled, and its partial\\nartifacts are reclaimed, best-effort. When the new Build turns \", _jsx(_components.code, {\n children: \"ready\"\n }), \"\\nit becomes the Template’s default Build; the previously bound Build’s\\nartifact is then reclaimed where the selected IDC permits it (an\\nartifact still referenced by dependent resources is retained and\\nreclaimed on Template deletion instead). If the new Build fails, the\\nprevious binding is unchanged.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"This operation is not idempotent and does not accept an \", _jsx(_components.code, {\n children: \"Idempotency-Key\"\n }), \"\\nheader. Every call creates a new Build and supersedes the running ones, so\\nbefore retrying a request whose outcome is unknown, check\\n\", _jsx(_components.code, {\n children: \"GET /templates/{template_id}/builds\"\n }), \" for the Build it may already have created.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create and start a rebuild","description":"Creates a new Build from the given definition and starts it immediately.\nA rebuild inherits the most recent Build's IDC placement and resources, so a\nTemplate with no Build records left has nothing to inherit and returns\n409. Not supported in every IDC; IDCs without rebuild support reject it with 422.\n\nA rebuild supersedes the Template's still-running Builds: each one is\nfinalized as `error` with failure code `TemplateBuild.Superseded`, its\nbacking build in the selected IDC is cancelled, and its partial\nartifacts are reclaimed, best-effort. When the new Build turns `ready`\nit becomes the Template's default Build; the previously bound Build's\nartifact is then reclaimed where the selected IDC permits it (an\nartifact still referenced by dependent resources is retained and\nreclaimed on Template deletion instead). If the new Build fails, the\nprevious binding is unchanged.\n\nThis operation is not idempotent and does not accept an `Idempotency-Key`\nheader. Every call creates a new Build and supersedes the running ones, so\nbefore retrying a request whose outcome is unknown, check\n`GET /templates/{template_id}/builds` for the Build it may already have created.\n","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /templates/{template_id}/builds","href":"/agentbox-api/sandboxtemplate/create-and-start-a-rebuild","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/gmicloud/fa3784330bb16240/syft.js"],"openApiReferenceData":{"operation":{"tags":["SandboxTemplate"],"summary":"Create and start a rebuild","description":"Creates a new Build from the given definition and starts it immediately.\nA rebuild inherits the most recent Build's IDC placement and resources, so a\nTemplate with no Build records left has nothing to inherit and returns\n409. Not supported in every IDC; IDCs without rebuild support reject it with 422.\n\nA rebuild supersedes the Template's still-running Builds: each one is\nfinalized as `error` with failure code `TemplateBuild.Superseded`, its\nbacking build in the selected IDC is cancelled, and its partial\nartifacts are reclaimed, best-effort. When the new Build turns `ready`\nit becomes the Template's default Build; the previously bound Build's\nartifact is then reclaimed where the selected IDC permits it (an\nartifact still referenced by dependent resources is retained and\nreclaimed on Template deletion instead). If the new Build fails, the\nprevious binding is unchanged.\n\nThis operation is not idempotent and does not accept an `Idempotency-Key`\nheader. Every call creates a new Build and supersedes the running ones, so\nbefore retrying a request whose outcome is unknown, check\n`GET /templates/{template_id}/builds` for the Build it may already have created.\n","operationId":"createTemplateBuild","parameters":["952811e7-63fa-41ba-a8d5-a2cd0d263dc4"],"requestBody":"6aae61d7-2515-4a64-a45d-66c6e09983ae","responses":{"201":"844a7cdf-4ca1-4b6d-98b5-f4a82c6b4aac","400":"c9a030cc-9062-449f-9674-c288164697db","401":"ab9077f3-25fe-4ab3-a697-f1d02fa60ab3","403":"cc7ec586-5137-44e9-9f7f-05bf306febfa","404":"2fec1fee-eb85-4684-b354-b0ec500a3517","409":"5071c8fd-8a04-404a-9314-8afe7fd611e5","422":"0a982aa2-e7f3-43dc-990c-a982a27e4770","429":"829d2ec9-179e-496e-9b34-65b6683f9146","499":"c8f3e452-cbf8-4614-81f3-41a79fd729e0","500":"88d93d50-0f8c-43c3-b380-f96b675aaaa5","504":"eff0cff2-f5d2-4cda-845b-eff3fe7af853"},"method":"post","type":"path","servers":["f4224fd0-c6e4-4efe-8420-8b23a5d9c9bb"],"security":["79078e5c-3ec2-43f2-9339-906a68febafe"],"path":"/templates/{template_id}/builds","baseUrlOptions":["https://console.gmicloud.ai/api/v2"],"title":"Create and start a rebuild","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"952811e7-63fa-41ba-a8d5-a2cd0d263dc4":{"name":"idc_name","in":"query","description":"Filter by data center name, e.g. us-denver-1","schema":{"type":"string","description":"Filter by data center name, e.g. us-denver-1","uniqueKey":"","typeLabel":"string"}},"6db0b161-90f4-4d04-87c2-59aee761000a":{"name":"template_id","in":"path","required":true,"description":"Owning GMI Template identifier.","schema":{"type":"string","format":"uuid","isRequired":true,"description":"Owning GMI Template identifier.","uniqueKey":"","typeLabel":"string\u003cuuid>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["source"],"properties":{"source":{"oneOf":[{"type":"object","description":"Manual Build source. Sandbox sources use the snapshot endpoint.","required":["type","image"],"properties":{"type":{"type":"string","enum":["image"],"isRequired":true,"uniqueKey":"source.oneOf.0.type","typeLabel":"enum\u003cstring>"},"image":{"type":"string","minLength":1,"description":"OCI container image reference. The following distributions have\nbeen validated: Debian/Ubuntu, Fedora/CentOS Stream/Rocky Linux/\nAlmaLinux, Arch Linux, and Alpine Linux.\n","isRequired":true,"uniqueKey":"source.oneOf.0.image","typeLabel":"string"},"registry_credential":{"type":"object","additionalProperties":false,"required":["type","username","password"],"description":"A one-time registry credential used to pull the private image named by `image`. `username` and `password` are used only for this build request: they are never persisted and never returned in any response. The Build detail's `registry_authentication` reports only whether a credential was used and of what kind, never the username or password.","properties":{"type":{"type":"string","enum":["general"],"isRequired":true,"uniqueKey":"source.oneOf.0.registry_credential.type","typeLabel":"enum\u003cstring>"},"username":{"type":"string","isRequired":true,"uniqueKey":"source.oneOf.0.registry_credential.username","typeLabel":"string"},"password":{"type":"string","description":"Can be a password or an access token.","isRequired":true,"uniqueKey":"source.oneOf.0.registry_credential.password","typeLabel":"string"}},"uniqueKey":"source.oneOf.0.registry_credential","typeLabel":"object"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"source.oneOf.0","typeLabel":"object"},{"type":"object","description":"Manual Build source. Sandbox sources use the snapshot endpoint.","required":["type","template_id"],"properties":{"type":{"type":"string","enum":["template"],"isRequired":true,"uniqueKey":"source.oneOf.1.type","typeLabel":"enum\u003cstring>"},"template_id":{"type":"string","description":"Parent GMI Template identifier in the same IDC.","isRequired":true,"uniqueKey":"source.oneOf.1.template_id","typeLabel":"string"},"build_id":{"type":"string","description":"Optional parent Build identifier. When omitted, the parent's\ncurrent successful Build is used.\n","uniqueKey":"source.oneOf.1.build_id","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"source.oneOf.1","typeLabel":"object"},{"type":"object","description":"Manual Build source. Sandbox sources use the snapshot endpoint.","required":["type","dockerfile"],"properties":{"type":{"type":"string","enum":["dockerfile"],"isRequired":true,"uniqueKey":"source.oneOf.2.type","typeLabel":"enum\u003cstring>"},"dockerfile":{"type":"string","minLength":1,"maxLength":262144,"description":"Raw Dockerfile text. Supported instructions: FROM (exactly one; no\nmulti-stage), RUN, ENV, WORKDIR, USER, COPY/ADD, CMD/ENTRYPOINT;\nEXPOSE and VOLUME are skipped; anything else is rejected with 400.\n\nA trailing backslash continues an instruction on the next line; blank\nand comment lines inside a continuation are skipped.\n\nThe Dockerfile's final USER is the runtime identity of Sandboxes unless\n`default_user` is set. A Build fails when that account cannot enter the\nfinal working directory; declare an accessible WORKDIR.\n\nCOPY/ADD sources must reference an uploaded Template file as\n`COPY {{file:\u003cfile_id>}} /dest` — local paths and URLs are\nrejected, and at most one file may be referenced per build (its\n`file_id` must also be attached via `file_context`, with\n`file_context.destination` omitted).\n\nWith a dockerfile source, the sibling `commands` and `envs` fields\nare forbidden: write RUN/ENV lines in the Dockerfile instead.\nCMD/ENTRYPOINT are extracted into the Build's start command; an\nexplicit `start_cmd` takes precedence over them.\n\nENV values are visible to subsequent build steps and are part of\nthe sandbox runtime environment, as under `docker run`; a value\npassed as `env_vars` when creating a Sandbox overrides one of the\nsame name. Do not put build-time secrets in ENV: build the Template\nfrom an image or template source and pass them in `envs`, which\nreach the build steps only.\n","isRequired":true,"uniqueKey":"source.oneOf.2.dockerfile","typeLabel":"string"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"source.oneOf.2","typeLabel":"object"}],"isRequired":true,"uniqueKey":"source","typeLabel":"object"},"default_user":{"type":"object","additionalProperties":false,"required":["username"],"description":"Runtime default identity for Sandboxes launched from this Build.\nWithout it, Sandboxes run as `docker run` would: as the Dockerfile's final\nUSER, else the image's USER, else root, in the final WORKDIR, else the\nimage's, else `/`.\nSandboxes run commands as a named account: an image USER given as a\nnumeric uid (or uid:gid) needs a matching /etc/passwd entry in the image,\notherwise the Build fails with a reason that names the USER. The group\npart is ignored.\nIt is applied after all build commands and overrides the final Dockerfile\nUSER at runtime; it does not change the identity of earlier build commands.\n\nRecommended setup for a custom account: create it in the Dockerfile, give\nit a working directory it can access, and pass its uid, for example\n`RUN useradd --uid 9999 --create-home --shell /bin/bash app`,\n`WORKDIR /home/app`, and `default_user: {username: app, uid: 9999}`.\n\n- default_user changes the identity only, not the working directory or its\n permissions. If the account cannot enter the final working directory,\n commands cannot start there and the Build may fail; declare an\n accessible WORKDIR to fix it.\n- With uid, the account must already exist with that UID and an existing\n home directory; otherwise the Build fails. The platform does not change\n UID, ownership, groups, or sudo privileges.\n- A non-root username without uid may be rejected with HTTP 422\n (Template.ProviderNotSupported); supply uid to avoid this. root may omit uid.\n- Invalid username, out-of-range uid, or root with a nonzero uid returns\n HTTP 400 (Parameter.Invalid).\n- A Build from a base template keeps the base template's user and working\n directory, as Docker FROM does; set default_user on the child Build to\n select another. Changing it requires a new Build.\n\nWhen omitted, the template's default runtime identity is used. A Build\nresponse reports the requested setting; an omitted uid stays omitted.\n","properties":{"username":{"type":"string","minLength":1,"maxLength":32,"pattern":"^[a-z_][a-z0-9_-]{0,31}$","example":"app","isRequired":true,"uniqueKey":"default_user.username","typeLabel":"string"},"uid":{"type":"integer","format":"int32","minimum":0,"maximum":2147483647,"description":"UID of the account. Recommended for non-root usernames. root only accepts 0.","example":9999,"uniqueKey":"default_user.uid","typeLabel":"integer\u003cint32>"}},"uniqueKey":"default_user","typeLabel":"object"},"commands":{"type":"array","maxItems":100,"description":"Shell command strings executed sequentially during the Build. They may\nrun as a non-root account with passwordless sudo: prefix privileged\ncommands with `sudo`, and set ownership of files that the runtime\naccount must use. To control the build identity explicitly, use a\nDockerfile source with `USER` instructions, as in a regular Dockerfile.\n","items":{"type":"string","minLength":1,"maxLength":8192,"uniqueKey":"commands.items.[INDEX]","typeLabel":"string"},"uniqueKey":"commands","typeLabel":"string[]"},"envs":{"type":"object","maxProperties":256,"additionalProperties":{"type":"string","maxLength":32768,"uniqueKey":"envs.additionalProperties","typeLabel":"string"},"description":"Environment variables available only during the Template Build.\nThey are visible to subsequent build commands/steps and are not persisted\ninto the resulting template artifact as sandbox runtime environment\nvariables. Pass runtime env when creating a Sandbox instead. Write-only:\nvalues are never returned on Template or TemplateBuild responses.\nKeys must be unique (JSON object); the server orders them\ndeterministically by key. Key names must match\n`[A-Za-z_][A-Za-z0-9_]*`.\n","uniqueKey":"envs","typeLabel":"object"},"build_timeout_sec":{"type":"integer","minimum":60,"maximum":3600,"description":"Wall-clock budget for this Build in seconds. Omit or null to use the\nplatform default (600). Allowed range: 60–3600. On expiry the Build\nis finalized as `error` with failure code `TemplateBuild.TimedOut`,\nits backing build in the selected IDC is cancelled, and its partial\nartifacts are reclaimed, best-effort.\n","uniqueKey":"build_timeout_sec","typeLabel":"integer"},"start_cmd":{"type":"string","minLength":1,"maxLength":8192,"description":"Launch command persisted with the Build and applied when Sandboxes\ncreated from this Template start.\n\nIt runs as a boot script before the sandbox's main process, and the\nsandbox only becomes ready once it returns, so the command must\nterminate. A foreground long-running command (`sleep infinity`, a\nserver started in the foreground) leaves the Sandbox stuck\ninitializing and every exec against it rejected.\n\nAppending `\u0026` alone is not sufficient: a backgrounded process that\nstill holds the inherited stdout/stderr keeps boot blocked just the\nsame. Long-running processes must be backgrounded *and* detached\nfrom those streams, e.g.\n`my-server > /var/log/my-server.log 2>\u00261 \u0026`.\n\nResume continues the saved processes without re-running this command.\n","uniqueKey":"start_cmd","typeLabel":"string"},"file_context":{"type":"object","additionalProperties":false,"required":["file_id"],"properties":{"file_id":{"type":"string","format":"uuid","description":"GMI file identifier returned by the upload initialization endpoint.","isRequired":true,"uniqueKey":"file_context.file_id","typeLabel":"string\u003cuuid>"},"destination":{"type":"string","minLength":1,"maxLength":4096,"pattern":"^/","description":"Absolute destination copied from the archive root during the Build.\nRequired for image/template sources; forbidden for a dockerfile\nsource, whose `COPY {{file:...}} /dest` lines carry their own\ndestinations.\n","uniqueKey":"file_context.destination","typeLabel":"string"}},"uniqueKey":"file_context","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"source":{"type":"image","image":"\u003cstring>"},"commands":["\u003cstring>"],"envs":{},"build_timeout_sec":1830,"start_cmd":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"844a7cdf-4ca1-4b6d-98b5-f4a82c6b4aac":{"description":"The Build record is created and immediately addressable via\n`GET /templates/{template_id}/builds/{id}`; build progress is\nreported by `status`, not by the status code.\n","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["request_id","data"],"properties":{"request_id":{"type":"string","description":"HTTP request correlation identifier.","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"data":{"type":"object","additionalProperties":false,"required":["id","template_id","status"],"properties":{"id":{"type":"string","description":"The Build this mutation created or started.","isRequired":true,"uniqueKey":"data.id","typeLabel":"string"},"template_id":{"type":"string","description":"Owning GMI Template identifier.","isRequired":true,"uniqueKey":"data.template_id","typeLabel":"string"},"status":{"type":"string","enum":["waiting","building","ready","error"],"description":"Normalized Template Build status.","isRequired":true,"uniqueKey":"data.status","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"request_id":"\u003cstring>","data":{"id":"\u003cstring>","template_id":"\u003cstring>","status":"waiting"}}}},"exampleType":"generated"}},"exampleType":"generated"},"c9a030cc-9062-449f-9674-c288164697db":{"description":"Invalid request parameters. Two code families are used: `Request.InvalidParameter` for request parsing and format validation (unknown or malformed body fields, malformed IDs, invalid enum values, out-of-range paging) and `Parameter.Invalid` for business validation (for example a template or IDC that cannot be found, or a `timeout` over the limit). Unknown or invalid fields inside the `params` of `POST /sandboxes/{id}/actions` are reported as `Parameter.Invalid`. Other 400 codes are specific to an operation, for example `Sandbox.SourceConflict` (both or neither of `template_id` and `snapshot_id`) and `Sandbox.IdempotentParameterMismatch` (an `Idempotency-Key` reused with different parameters). Both code families share the same HTTP status, so decide by the `code` value, not the status alone.","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"Parameter.Invalid","message":"Invalid request parameters","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"Parameter.Invalid","message":"Invalid request parameters","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"},"ab9077f3-25fe-4ab3-a697-f1d02fa60ab3":{"description":"Unauthenticated","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"Auth.Unauthorized","message":"Authentication required","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"Auth.Unauthorized","message":"Authentication required","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"},"cc7ec586-5137-44e9-9f7f-05bf306febfa":{"description":"The caller cannot access the organization-scoped resource.","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"Resource.QuotaExceeded","message":"The resource quota is not enough.","request_id":"req-xxxx","trace_id":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"2fec1fee-eb85-4684-b354-b0ec500a3517":{"description":"Resource not found","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"Resource.NotFound","message":"The requested resource was not found","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"Resource.NotFound","message":"The requested resource was not found","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"},"5071c8fd-8a04-404a-9314-8afe7fd611e5":{"description":"State conflict (`Resource.StateConflict` or an operation-specific code), or the selected IDC is under maintenance (`IDC.UnderMaintenance`): write operations are rejected until the IDC is usable again. Read operations are unaffected.\n","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"Resource.QuotaExceeded","message":"The resource quota is not enough.","request_id":"req-xxxx","trace_id":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"0a982aa2-e7f3-43dc-990c-a982a27e4770":{"description":"The request is valid but the selected IDC does not support\nthe requested capability or resolved resource specification.\n","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"Resource.QuotaExceeded","message":"The resource quota is not enough.","request_id":"req-xxxx","trace_id":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"829d2ec9-179e-496e-9b34-65b6683f9146":{"description":"The configured or temporary resource quota would be exceeded.","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"code":"Resource.QuotaExceeded","message":"The resource quota is not enough.","request_id":"req-xxxx","trace_id":"\u003cstring>","details":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"c8f3e452-cbf8-4614-81f3-41a79fd729e0":{"description":"The caller canceled the current HTTP request.","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"Request.Canceled","message":"Request canceled","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"Request.Canceled","message":"Request canceled","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"},"88d93d50-0f8c-43c3-b380-f96b675aaaa5":{"description":"Internal server error","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"System.Internal","message":"An internal server error occurred","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"System.Internal","message":"An internal server error occurred","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"},"eff0cff2-f5d2-4cda-845b-eff3fe7af853":{"description":"The current HTTP request exceeded the control-plane processing deadline.","content":{"application/json":{"schema":{"type":"object","required":["code","message","request_id"],"properties":{"code":{"type":"string","description":"Machine-readable business error code","example":"Resource.QuotaExceeded","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error description","example":"The resource quota is not enough.","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"request_id":{"type":"string","description":"Tracing ID","example":"req-xxxx","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"trace_id":{"type":"string","description":"Server-side trace identifier for this request; quote it when reporting a problem.","uniqueKey":"trace_id","typeLabel":"string"},"details":{"type":"object","description":"Field-level error details","additionalProperties":true,"uniqueKey":"details","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"code":"Request.Timeout","message":"Request timed out","request_id":"req-xxxx"},"examples":{"Example":{"title":"Example","value":{"code":"Request.Timeout","message":"Request timed out","request_id":"req-xxxx"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"79078e5c-3ec2-43f2-9339-906a68febafe":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API Key or Access Token, always sent as `Authorization: Bearer \u003ctoken>`. The gateway recognizes the token type automatically.\n","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"f4224fd0-c6e4-4efe-8420-8b23a5d9c9bb":{"url":"https://console.gmicloud.ai/api/v2","description":"Control plane"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API Key or Access Token, always sent as `Authorization: Bearer \u003ctoken>`. The gateway recognizes the token type automatically.\n","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API Key or Access Token, always sent as `Authorization: Bearer \u003ctoken>`. The gateway recognizes the token type automatically.\n","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-spec/sandbox_api.yaml"},"subdomain":"gmicloud","siteName":"GMI Cloud Documentation","title":"Create and start a rebuild - GMI Cloud Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T12:03:43.984Z","originalFileLocation":"agentbox-api/sandboxtemplate/create-and-start-a-rebuild.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates a new Build from the given definition and starts it immediately. A rebuild inherits the most recent Build\u0026#x27;s IDC placement and resources, so a Template with no Build records left has nothing to inherit and returns 409. Not supported in every IDC; IDCs without rebuild support reject it with 422. A rebuild supersedes the Template\u0026#x27;s still-running Builds: each one is finalized as error with failure code TemplateBuild.Superseded, its backing build in the selected IDC is cancelled, and its partial artifacts are reclaimed, best-effort. When the new Build turns ready it becomes the Template\u0026#x27;s default Build; the previously bound Build\u0026#x27;s artifact is then reclaimed where the selected IDC permits it (an artifact still referenced by dependent resources is retained and reclaimed on Template deletion instead). If the new Build fails, the previous binding is unchanged. This operation is not idempotent and does not accept an Idempotency-Key header. Every call creates a new Build and supersedes the running ones, so before retrying a request whose outcome is unknown, check GET /templates/{template_id}/builds for the Build it may already have created.\">\u003cmeta data-mint-head name=\"application-name\" content=\"GMI Cloud Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/gmicloud/3Gg7T0A9Kt6Sj64N/_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/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/gmicloud/3Gg7T0A9Kt6Sj64N/_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/gmicloud/3Gg7T0A9Kt6Sj64N/_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/gmicloud/3Gg7T0A9Kt6Sj64N/_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/gmicloud/3Gg7T0A9Kt6Sj64N/_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/gmicloud/3Gg7T0A9Kt6Sj64N/_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/gmicloud/3Gg7T0A9Kt6Sj64N/_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/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create and start a rebuild - GMI Cloud Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a new Build from the given definition and starts it immediately. A rebuild inherits the most recent Build\u0026#x27;s IDC placement and resources, so a Template with no Build records left has nothing to inherit and returns 409. Not supported in every IDC; IDCs without rebuild support reject it with 422. A rebuild supersedes the Template\u0026#x27;s still-running Builds: each one is finalized as error with failure code TemplateBuild.Superseded, its backing build in the selected IDC is cancelled, and its partial artifacts are reclaimed, best-effort. When the new Build turns ready it becomes the Template\u0026#x27;s default Build; the previously bound Build\u0026#x27;s artifact is then reclaimed where the selected IDC permits it (an artifact still referenced by dependent resources is retained and reclaimed on Template deletion instead). If the new Build fails, the previous binding is unchanged. This operation is not idempotent and does not accept an Idempotency-Key header. Every call creates a new Build and supersedes the running ones, so before retrying a request whose outcome is unknown, check GET /templates/{template_id}/builds for the Build it may already have created.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"GMI Cloud Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-and-start-a-rebuild\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://gmicloud.mintlify.app/_mintlify/api/og/v2?division=SandboxTemplate\u0026amp;title=Create+and+start+a+rebuild\u0026amp;description=Creates+a+new+Build+from+the+given+definition+and+starts+it+immediately.%0AA+rebuild+inherits+the+most+recent+Build%27s+IDC+placement+and+resources%2C+so+a%0ATemplate+w\u0026amp;theme=9f5734c91eff055e34aea819\u0026amp;signature=6a7abf4a15482603bdf0db429e20f033476077e9b9e3b1fc6c2ebf9631c94bfa\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create and start a rebuild - GMI Cloud Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a new Build from the given definition and starts it immediately. A rebuild inherits the most recent Build\u0026#x27;s IDC placement and resources, so a Template with no Build records left has nothing to inherit and returns 409. Not supported in every IDC; IDCs without rebuild support reject it with 422. A rebuild supersedes the Template\u0026#x27;s still-running Builds: each one is finalized as error with failure code TemplateBuild.Superseded, its backing build in the selected IDC is cancelled, and its partial artifacts are reclaimed, best-effort. When the new Build turns ready it becomes the Template\u0026#x27;s default Build; the previously bound Build\u0026#x27;s artifact is then reclaimed where the selected IDC permits it (an artifact still referenced by dependent resources is retained and reclaimed on Template deletion instead). If the new Build fails, the previous binding is unchanged. This operation is not idempotent and does not accept an Idempotency-Key header. Every call creates a new Build and supersedes the running ones, so before retrying a request whose outcome is unknown, check GET /templates/{template_id}/builds for the Build it may already have created.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://gmicloud.mintlify.app/_mintlify/api/og/v2?division=SandboxTemplate\u0026amp;title=Create+and+start+a+rebuild\u0026amp;description=Creates+a+new+Build+from+the+given+definition+and+starts+it+immediately.%0AA+rebuild+inherits+the+most+recent+Build%27s+IDC+placement+and+resources%2C+so+a%0ATemplate+w\u0026amp;theme=9f5734c91eff055e34aea819\u0026amp;signature=6a7abf4a15482603bdf0db429e20f033476077e9b9e3b1fc6c2ebf9631c94bfa\">\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/gmicloud/3Gg7T0A9Kt6Sj64N/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"GMI Cloud Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6e7a0e\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-and-start-a-rebuild\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/agentbox-api/sandboxtemplate/create-and-start-a-rebuild.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.gmicloud.ai/#organization\",\"name\":\"GMI Cloud Documentation\",\"url\":\"https://docs.gmicloud.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/gmicloud/NMovxHyNviV7LUYd/logo/gmi-cloud-logo.svg?fit=max\u0026auto=format\u0026n=NMovxHyNviV7LUYd\u0026q=85\u0026s=17a2b497b7719739248dfca2ae9d6c4a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.gmicloud.ai#website\",\"name\":\"GMI Cloud Documentation\",\"url\":\"https://docs.gmicloud.ai\",\"publisher\":{\"@id\":\"https://docs.gmicloud.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-and-start-a-rebuild#webpage\",\"url\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-and-start-a-rebuild\",\"name\":\"Create and start a rebuild\",\"description\":\"Creates a new Build from the given definition and starts it immediately. A rebuild inherits the most recent Build's IDC placement and resources, so a Template with no Build records left has nothing to inherit and returns 409. Not supported in every IDC; IDCs without rebuild support reject it with 422. A rebuild supersedes the Template's still-running Builds: each one is finalized as error with failure code TemplateBuild.Superseded, its backing build in the selected IDC is cancelled, and its partial artifacts are reclaimed, best-effort. When the new Build turns ready it becomes the Template's default Build; the previously bound Build's artifact is then reclaimed where the selected IDC permits it (an artifact still referenced by dependent resources is retained and reclaimed on Template deletion instead). If the new Build fails, the previous binding is unchanged. This operation is not idempotent and does not accept an Idempotency-Key header. Every call creates a new Build and supersedes the running ones, so before retrying a request whose outcome is unknown, check GET /templates/{template_id}/builds for the Build it may already have created.\",\"dateModified\":\"2026-10-30T12:03:43.984Z\",\"isPartOf\":{\"@id\":\"https://docs.gmicloud.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-and-start-a-rebuild#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-and-start-a-rebuild#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Sandbox APIs\",\"item\":\"https://docs.gmicloud.ai/agentbox-api/sandbox/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Endpoints\",\"item\":\"https://docs.gmicloud.ai/agentbox-api/sandbox/list-active-sandboxes\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"SandboxTemplate\",\"item\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/list-the-product-catalog-unified-tenant-facing\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Create and start a rebuild\",\"item\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-and-start-a-rebuild\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-and-start-a-rebuild#apireference\",\"headline\":\"Create and start a rebuild\",\"name\":\"Create and start a rebuild\",\"description\":\"Creates a new Build from the given definition and starts it immediately. A rebuild inherits the most recent Build's IDC placement and resources, so a Template with no Build records left has nothing to inherit and returns 409. Not supported in every IDC; IDCs without rebuild support reject it with 422. A rebuild supersedes the Template's still-running Builds: each one is finalized as error with failure code TemplateBuild.Superseded, its backing build in the selected IDC is cancelled, and its partial artifacts are reclaimed, best-effort. When the new Build turns ready it becomes the Template's default Build; the previously bound Build's artifact is then reclaimed where the selected IDC permits it (an artifact still referenced by dependent resources is retained and reclaimed on Template deletion instead). If the new Build fails, the previous binding is unchanged. This operation is not idempotent and does not accept an Idempotency-Key header. Every call creates a new Build and supersedes the running ones, so before retrying a request whose outcome is unknown, check GET /templates/{template_id}/builds for the Build it may already have created.\",\"url\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-and-start-a-rebuild\",\"mainEntityOfPage\":{\"@id\":\"https://docs.gmicloud.ai/agentbox-api/sandboxtemplate/create-and-start-a-rebuild#webpage\"},\"dateModified\":\"2026-10-30T12:03:43.984Z\",\"publisher\":{\"@id\":\"https://docs.gmicloud.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.gmicloud.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"GMI Cloud Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"GMI Cloud Documentation","nav":{"global":null,"tabs":[{"tab":"Get Started","pages":[{"title":"Get Started","href":""}]},{"tab":"Inference","pages":[{"title":"Inference","href":"/inference-engine/ie-intro"}]},{"tab":"GPU Compute","pages":[{"title":"GPU Compute","href":"/cluster-engine"}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"tab":"GMI Studio","pages":[{"title":"GMI Studio","href":"/gmi-studio/gmi-studio-user-manual/introduction"}]},{"tab":"GMI Agentbox","groups":[{"group":"GMI Agentbox","pages":[{"title":"Overview","href":"/agentbox-marketplace/overview"},{"title":"Search and use an agent","href":"/agentbox-marketplace/search-and-use"},{"title":"Register an agent","href":"/agentbox-marketplace/register-an-agent"},{"title":"Managing your deployment","href":"/agentbox-marketplace/managing-your-deployment"},{"title":"List an agent","href":"/agentbox-marketplace/list-an-agent"},{"title":"Agents I use","href":"/agentbox-marketplace/agents-i-use"},{"title":"Verified agents","href":"/agentbox-marketplace/verified-agents"},{"title":"Handle long-running requests","href":"/agentbox-marketplace/handle-long-running-requests"}]},{"group":"Agentbox SDK","pages":[{"title":"Agentbox SDK","href":"/agentbox-sdk/overview"},{"title":"Quickstart","href":"/agentbox-sdk/quickstart"},{"title":"Agents and image builds","href":"/agentbox-sdk/agents"},{"title":"Sandboxes","href":"/agentbox-sdk/sandboxes"},{"title":"Commands and files","href":"/agentbox-sdk/commands-and-files"},{"title":"Interactive shell (Beta)","href":"/agentbox-sdk/shell"},{"title":"Snapshots","href":"/agentbox-sdk/snapshots"},{"title":"Errors and limits","href":"/agentbox-sdk/errors-and-limits"},{"title":"Python SDK reference","href":"/agentbox-sdk/python-reference"},{"title":"Go SDK reference","href":"/agentbox-sdk/go-reference"}]},{"group":"Sandbox SDK","pages":[{"title":"GMI Sandbox SDK Usage","href":"/agentbox-api/sandbox-sdk/usage"},{"title":"GMI Sandbox SDK Reference","href":"/agentbox-api/sandbox-sdk/sdk-reference"}]},{"group":"Sandbox APIs","pages":[{"title":"Sandbox API Overview","href":"/agentbox-api/sandbox/overview"},{"group":"Endpoints","pages":[{"group":"Sandbox","pages":[{"title":"List active sandboxes","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /sandboxes","href":"/agentbox-api/sandbox/list-active-sandboxes"},{"title":"Create a sandbox","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /sandboxes","href":"/agentbox-api/sandbox/create-a-sandbox"},{"title":"Get sandbox details","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /sandboxes/{id}","href":"/agentbox-api/sandbox/get-sandbox-details"},{"title":"Delete (kill) a sandbox","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml delete /sandboxes/{id}","href":"/agentbox-api/sandbox/delete-kill-a-sandbox"},{"title":"Update sandbox metadata","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml patch /sandboxes/{id}","href":"/agentbox-api/sandbox/update-sandbox-metadata"},{"title":"Connect to a sandbox","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /sandboxes/{id}/connect","href":"/agentbox-api/sandbox/connect-to-a-sandbox"},{"title":"Pause a sandbox","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /sandboxes/{id}/pause","href":"/agentbox-api/sandbox/pause-a-sandbox"},{"title":"Resume a paused sandbox","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /sandboxes/{id}/resume","href":"/agentbox-api/sandbox/resume-a-paused-sandbox"},{"title":"Execute a sandbox runtime action","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /sandboxes/{id}/actions","href":"/agentbox-api/sandbox/execute-a-sandbox-runtime-action"},{"title":"Set sandbox timeout","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /sandboxes/{id}/timeout","href":"/agentbox-api/sandbox/set-sandbox-timeout"}]},{"group":"Sandbox-Exec","pages":[{"title":"Execute a command in a sandbox","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /executions","href":"/agentbox-api/sandbox-exec/execute-a-command-in-a-sandbox"},{"title":"Get a sandbox execution","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /executions/{execution_id}","href":"/agentbox-api/sandbox-exec/get-a-sandbox-execution"},{"title":"Cancel a sandbox execution","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /executions/{execution_id}/cancel","href":"/agentbox-api/sandbox-exec/cancel-a-sandbox-execution"}]},{"group":"Sandbox-Shell","pages":[{"title":"Launch the sandbox interactive shell","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /shell","href":"/agentbox-api/sandbox-shell/launch-the-sandbox-interactive-shell"},{"title":"Attach to the sandbox shell (WebSocket)","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /shell/connect","href":"/agentbox-api/sandbox-shell/attach-to-the-sandbox-shell-websocket"},{"title":"Control the sandbox shell (resize / close)","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /shell/control","href":"/agentbox-api/sandbox-shell/control-the-sandbox-shell-resize-close"}]},{"group":"Sandbox-Files","pages":[{"title":"Download a sandbox file","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /files","href":"/agentbox-api/sandbox-files/download-a-sandbox-file"},{"title":"Upload a sandbox file","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /files","href":"/agentbox-api/sandbox-files/upload-a-sandbox-file"}]},{"group":"SandboxTemplate","pages":[{"title":"List the product catalog (unified, tenant-facing)","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /products","href":"/agentbox-api/sandboxtemplate/list-the-product-catalog-unified-tenant-facing"},{"title":"List Templates","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /templates","href":"/agentbox-api/sandboxtemplate/list-templates"},{"title":"Create a Template and start its initial Build","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /templates","href":"/agentbox-api/sandboxtemplate/create-a-template-and-start-its-initial-build"},{"title":"Get a Template","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /templates/{id}","href":"/agentbox-api/sandboxtemplate/get-a-template"},{"title":"Delete a Template","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml delete /templates/{id}","href":"/agentbox-api/sandboxtemplate/delete-a-template"},{"title":"Update mutable Template metadata","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml patch /templates/{id}","href":"/agentbox-api/sandboxtemplate/update-mutable-template-metadata"},{"title":"Initialize a Template build-context upload","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /templates/{template_id}/files","href":"/agentbox-api/sandboxtemplate/initialize-a-template-build-context-upload"},{"title":"Get Template build-context status","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /templates/{template_id}/files/{file_id}","href":"/agentbox-api/sandboxtemplate/get-template-build-context-status"},{"title":"List Template Builds","description":"Lists immutable Build attempts in reverse chronological order.","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /templates/{template_id}/builds","href":"/agentbox-api/sandboxtemplate/list-template-builds"},{"title":"Create and start a rebuild","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /templates/{template_id}/builds","href":"/agentbox-api/sandboxtemplate/create-and-start-a-rebuild"},{"title":"Get a Template Build","description":"Returns normalized Build status and artifact availability.","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /templates/{template_id}/builds/{id}","href":"/agentbox-api/sandboxtemplate/get-a-template-build"},{"title":"Start an existing Build","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /templates/{template_id}/builds/{id}","href":"/agentbox-api/sandboxtemplate/start-an-existing-build"},{"title":"Get live Template Build logs","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /templates/{template_id}/builds/{id}/logs","href":"/agentbox-api/sandboxtemplate/get-live-template-build-logs"}]},{"group":"SandboxSnapshot","pages":[{"title":"List durable snapshots","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /snapshots","href":"/agentbox-api/sandboxsnapshot/list-durable-snapshots"},{"title":"Create a durable snapshot","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml post /snapshots","href":"/agentbox-api/sandboxsnapshot/create-a-durable-snapshot"},{"title":"Get a durable snapshot","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml get /snapshots/{snapshot_id}","href":"/agentbox-api/sandboxsnapshot/get-a-durable-snapshot"},{"title":"Delete a durable snapshot","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml delete /snapshots/{snapshot_id}","href":"/agentbox-api/sandboxsnapshot/delete-a-durable-snapshot"},{"title":"Update a durable snapshot","deprecated":null,"version":null,"openapi":"/api-spec/sandbox_api.yaml patch /snapshots/{snapshot_id}","href":"/agentbox-api/sandboxsnapshot/update-a-durable-snapshot"}]}]}]}]},{"tab":"MCP","pages":[{"title":"MCP","href":"/mcp/gmi-mcp-server"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides-overview"}]}]},"title":"Create and start a rebuild - GMI Cloud Documentation","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-26-lDe7V.js","utils-CWQmgYtH.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-4-Aw3rSD.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-C2zjXYA5.js","snippetPresets-DFmpFA7C.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-FJpQavWq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D_GvPF7k.js","shallow-Bs2ZB0NO.js","getApiPlaygroundDisplay-DCcqJJk-.js","CodeSnippet-DzDxawVe.js","CodeSnippets-aUr7fU-7.js","Page-CT9uE8Ip.js","getPastedJson-Y1fKsj_I.js","icon-DI4zTsDr.js","MethodPill-C0nDlmSQ.js","DuplicateIcon-NUXbx2nQ.js","createIcon-BdTHrPAi.js","DynamicMarkdown-CtpgKJwj.js","SectionHeading-B3x35tOt.js","axios-vUo_bRtp.js","Markdown-3OmurJMP.js","clsx-DMKzROTp.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-1ms6tsT-.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Ke9xIMFx.js"]}