Esta chamada cria um template privado com a primeira versão e responde 201 com o template. A requisição é multipart/form-data: o manifesto vai em um campo de texto, e cada serviço que executa o seu código vai em uma parte ZIP. Para começar a partir de um app ou de uma stack que você já tem, use Criar template a partir de app ou Criar template a partir de stack.Precisa do escopo templates:write quando chamado com uma chave de API. Só planos que podem criar imagens Docker personalizadas podem criar templates, e cada conta tem no máximo 5 templates privados, pessoais e de workspace somados. Em um workspace, só o dono do workspace cria templates. Um template privado não é revisado pela Vertra Cloud: quem o recebe vê o aviso “Não verificado pela Vertra”. Confira o manifesto antes com Validar manifesto. O formato está na referência do manifesto.O ZIP de um serviço é verificado antes de ser armazenado. O envio inteiro é recusado com TEMPLATE_SECRET_IN_SOURCE quando tem um arquivo .env que não é um exemplo, uma chave privada ou um token conhecido; details.files lista apenas os caminhos. Pastas .vertra/ são descartadas, e arquivos .env* nunca entram em um template.
O manifesto como string JSON serializada, seguindo o schema do manifesto. Um serviço cujo source.type é image se refere a uma imagem da sua conta pelo ID em source.image.
Uma parte ZIP por serviço do manifesto cuja origem é code, nomeada pelo id do serviço, por exemplo sources[bot]. Obrigatória para cada um desses serviços.
O que o template cria. Cada serviço tem id, kind (app, database ou blob), source_type (code, image ou null), database (o engine, ou null), blob_visibility, ram (min, recommended e max opcional, em MB), web (required, optional, none ou null) e conditional (true quando o serviço só é criado para algumas respostas).
As permissões efetivas dos apps criados a partir do template, depois dos padrões e das restrições de um template fechado: code_view, code_edit, ram_change, ram_below_min, ram_above_max, env_add, commands_edit, terminal, save_as_template e detach, todos booleanos.
O que usar o template faria na sua conta (fits, reasons, required_ram, free_ram, needs_image_slot, image_slots_free, in_use e in_use_count). Presente apenas nas chamadas autenticadas que leem o template.
O código de erro que indica o motivo da falha. Valores possíveis:
API_KEY_SCOPE_DENIED: A chave de API não tem o escopo templates:write (403).
TEMPLATE_MANIFEST_INVALID: O manifesto não é válido; details.issues lista cada achado com o path e o code. Nada é criado.
TEMPLATE_SOURCE_REQUIRED: Um serviço code não tem uma parte ZIP.
TEMPLATE_SECRET_IN_SOURCE: Um ZIP tem um segredo (um arquivo .env, uma chave privada ou um token); details.files lista os caminhos (400).
TEMPLATE_SLUG_TAKEN: O id do manifesto já está em uso entre os seus templates ou é uma palavra reservada.
TEMPLATE_PRIVATE_LIMIT_REACHED: A conta já tem 5 templates privados.
PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES: O plano não pode criar imagens Docker personalizadas, então não pode criar templates.
IMAGE_NOT_FOUND: Um serviço image se refere a uma imagem que não é sua ou não tem um build bem-sucedido.
WORKSPACE_OWNER_ONLY: workspace_id foi enviado e quem chama não é o dono desse workspace.
{ "code": "TEMPLATE_MANIFEST_INVALID", "details": { "issues": [{ "path": "services.bot.ram.min", "code": "invalid_ram", "message": "ram.min must be a positive number of MB" }] }}
Última modificação em 28 de outubro de 2026
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Vertra Cloud","description":"Vertra Cloud is a Brazilian application hosting platform (PaaS): deploy from GitHub or a zip file, isolated containers, managed databases, file storage, snapshots, a CLI and a VS Code extension.","colors":{"primary":"#ff6100","light":"#ff7a24","dark":"#e65700"},"logo":{"light":"https://mintcdn.com/vertracloud/2O7-bfMOIoy6MCUx/logo/light.svg?fit=max\u0026auto=format\u0026n=2O7-bfMOIoy6MCUx\u0026q=85\u0026s=2fcb392041b562c0aab2f07ebef0f12e","dark":"https://mintcdn.com/vertracloud/2O7-bfMOIoy6MCUx/logo/light.svg?fit=max\u0026auto=format\u0026n=2O7-bfMOIoy6MCUx\u0026q=85\u0026s=2fcb392041b562c0aab2f07ebef0f12e"},"favicon":"https://mintcdn.com/vertracloud/2O7-bfMOIoy6MCUx/favicon.svg?fit=max\u0026auto=format\u0026n=2O7-bfMOIoy6MCUx\u0026q=85\u0026s=1bab95e4f8e35419e5901e69c7caa4b2","api":{"playground":{"display":"interactive"},"examples":{"defaults":"required","languages":["curl","javascript","python","go"]},"mdx":{"auth":{"method":"bearer"},"server":"https://api.vertracloud.app"}},"background":{"color":{"light":"#f7f7f6","dark":"#121212"}},"navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://vertracloud.app/dashboard"}},"footer":{"socials":{"github":"https://github.com/vertracloud","instagram":"https://instagram.com/vertracloud","x":"https://x.com/vertracloud","youtube":"https://www.youtube.com/@vertracloud","discord":"https://discord.gg/vertracloud"}},"seo":{"metatags":{"og:site_name":"Vertra Cloud Docs","og:type":"website","og:image":"https://docs.vertracloud.app/images/og.png","twitter:card":"summary_large_image","twitter:image":"https://docs.vertracloud.app/images/og.png","description":"Vertra Cloud is a Brazilian application hosting platform (PaaS): deploy from GitHub or a zip file, isolated containers, managed databases, file storage, snapshots, a CLI and a VS Code extension."},"indexing":"navigable"},"fonts":{"family":"Geist"},"contextual":{"options":["copy","view","chatgpt","claude","mcp","cursor","vscode"],"display":"header"},"metadata":{"timestamp":true},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","default":true,"href":""},{"language":"pt-BR","navbar":{"links":[{"href":"mailto:[email protected]","label":"Suporte"}],"primary":{"type":"button","label":"Dashboard","href":"https://vertracloud.app/dashboard"}},"href":"pt-br"},{"language":"es","navbar":{"links":[{"href":"mailto:[email protected]","label":"Soporte"}],"primary":{"type":"button","label":"Panel","href":"https://vertracloud.app/dashboard"}},"href":"es-es"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"vertracloud","hasAudioNarration":false,"actualSubdomain":"vertracloud","customDomains":["docs.vertracloud.app"],"gitSource":{"type":"github","owner":"vertracloud","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae51deb3bf34bcad38c5814","collectionId":"9f590012-0485-47b3-af80-9ffed670518c","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae51deb3bf34bcad38c5814"},"entitlements":{},"buildId":"6ae51f8fceb92005b37aba26","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"en","tag":"API Reference","count":159},{"language":"es","tag":"Referencia de la API","count":159},{"language":"pt-BR","tag":"Referência da API","count":159},{"language":"en","tag":"Endpoints","count":156},{"language":"es","tag":"Endpoints","count":156},{"language":"pt-BR","tag":"Endpoints","count":156},{"language":"en","tag":"Templates","count":64},{"language":"es","tag":"Plantillas","count":64},{"language":"pt-BR","tag":"Templates","count":64},{"language":"es","tag":"Blob Storage","count":58},{"language":"pt-BR","tag":"Blob Storage","count":58},{"language":"en","tag":"Blob Storage","count":56},{"language":"en","tag":"Applications","count":46},{"language":"en","tag":"Changelog","count":46},{"language":"es","tag":"Aplicaciones","count":46},{"language":"es","tag":"Changelog","count":46},{"language":"pt-BR","tag":"Aplicações","count":46},{"language":"pt-BR","tag":"Changelog","count":46},{"language":"en","tag":"v26","count":35},{"language":"es","tag":"v26","count":35},{"language":"pt-BR","tag":"v26","count":35},{"language":"en","tag":"Blob API reference","count":30},{"language":"es","tag":"Referencia de la API de Blob","count":30},{"language":"pt-BR","tag":"Referência da API do Blob","count":30},{"language":"en","tag":"Workspaces","count":26},{"language":"en","tag":"Tutorials","count":26},{"language":"es","tag":"Workspaces","count":26},{"language":"es","tag":"Tutoriales","count":26},{"language":"pt-BR","tag":"Workspaces","count":26},{"language":"pt-BR","tag":"Tutoriais","count":26}]},"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":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":":root{--gray-50:247 247 246;--gray-100:241 241 240;--gray-200:230 230 228;--gray-300:211 211 209;--gray-400:162 162 162;--gray-500:115 115 115;--gray-600:83 83 83;--gray-700:61 61 61;--gray-800:42 42 42;--gray-900:26 26 26;--gray-950:13 13 13}.vc-home{--vc-orange:#ff6100;--vc-orange-strong:#e65700;--vc-paper:#f7f7f6;--vc-surface:#ffffff;--vc-ink:#141414;--vc-ink-2:#3d3d3d;--vc-muted:#737373;--vc-line:#e6e6e4;color:var(--vc-ink)}.dark .vc-home{--vc-orange-strong:#ff7a24;--vc-paper:#121212;--vc-surface:#1a1a1a;--vc-ink:#f4f4f4;--vc-ink-2:#c6c6c6;--vc-muted:#8e8e8e;--vc-line:#2a2a2a}.vc-hero,.vc-hero-inner{display:flex;flex-direction:column;box-sizing:border-box;margin:0}.vc-hero{min-height:calc(100dvh - 120px);overflow:hidden;border-bottom:1px solid var(--vc-line);background-color:var(--vc-paper)}.vc-hero-inner{flex:0 0 auto;justify-content:center;max-width:40rem;padding:2.75rem 1.25rem 1.75rem;text-align:left}.vc-hero h1{margin:0;color:var(--vc-ink);font-size:clamp(2.15rem,.85rem + 1.9vw,3.15rem);font-weight:600;line-height:1.02;letter-spacing:-.045em;text-wrap:balance}.vc-hero-copy{max-width:36rem;margin:1.15rem 0 0;color:var(--vc-ink-2);font-size:1.05rem;line-height:1.55;text-wrap:pretty}.vc-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:.75rem;margin-top:1.75rem}.vc-btn{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:44px;padding:0 1.15rem;border-radius:.5rem;font-size:.92rem;font-weight:500;line-height:1;text-decoration:none!important;border:1px solid transparent;transition:background-color .18s cubic-bezier(.22,1,.36,1),border-color .18s cubic-bezier(.22,1,.36,1)}.vc-btn:focus-visible{outline:2px solid var(--vc-orange);outline-offset:2px}.vc-btn-primary{background:var(--vc-orange);color:#fff!important}.vc-btn-primary:hover{background:var(--vc-orange-strong)}.vc-btn-ghost{background:0 0;border-color:var(--vc-line);color:var(--vc-ink)!important}.vc-btn-ghost:hover{border-color:var(--vc-ink)}.vc-hero-art{flex:1 1 auto;min-height:240px;border-top:1px solid var(--vc-line);background:#f4efe4 url(/images/hero-pillar.webp) 70% 68%/cover no-repeat}@media (min-width:1024px){.vc-hero{flex-direction:row;align-items:stretch;min-height:calc(100dvh - 112px)}.vc-hero-inner{flex:.78 1 0;max-width:none;padding:4rem clamp(1.75rem,4vw,4.5rem)}.vc-hero-art{flex:1.22 1 0;min-height:0;border-top:0;border-left:1px solid var(--vc-line);background-position:72% 50%}}.vc-section{max-width:1040px;margin:0 auto;padding:4.5rem 1.5rem 0}.vc-section:last-of-type{padding-bottom:4.5rem}.vc-heading{max-width:620px;margin-bottom:1.75rem}.vc-kicker{color:var(--vc-orange);font:600 .72rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.12em;text-transform:uppercase}.vc-heading h2{margin:.5rem 0 .6rem;color:var(--vc-ink);font-size:clamp(1.55rem,3vw,2.05rem);font-weight:700;letter-spacing:-.03em;text-wrap:balance}.vc-heading p{margin:0;color:var(--vc-muted);line-height:1.65}.vc-home .card{border-radius:.85rem;transition:border-color .18s ease,transform .18s ease}.vc-home a.card:hover{border-color:rgba(255,97,0,.6)!important;transform:translateY(-2px)}.vc-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.6rem}.vc-chip{display:flex;align-items:center;gap:.6rem;padding:.7rem .85rem;border:1px solid var(--vc-line);border-radius:.7rem;background:var(--vc-chip);color:var(--vc-ink)!important;font-size:.9rem;font-weight:500;text-decoration:none!important;transition:border-color .15s ease,transform .15s ease}.vc-chip:hover{border-color:rgba(255,97,0,.6);transform:translateY(-1px)}.vc-chip svg{flex-shrink:0}.vc-help{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.vc-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;max-width:1040px;margin:4.5rem auto 0;padding:1.5rem 1.5rem 3rem;border-top:1px solid var(--vc-line);color:var(--vc-muted);font:.72rem ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}.vc-footer a{color:var(--vc-ink)!important;text-decoration:none!important}.vc-footer a:hover{color:var(--vc-orange)!important}@media (max-width:760px){.vc-section{padding:3.25rem 1rem 0}}[data-component-part=language-switcher] [data-language=en] a::before{content:'🇺🇸 '}[data-component-part=language-switcher] [data-language=pt-BR] a::before{content:'🇧🇷 '}[data-component-part=language-switcher] [data-language=es] a::before{content:'🇪🇸 '}"}],"page":{"pagePath":"pt-br/api-reference/endpoint/templates/create","slug":"/pt-br/api-reference/endpoint/templates/create","pageMetadata":{"title":"Criar um template privado","sidebarTitle":"Criar template","api":"POST https://api.vertracloud.app/v1/templates","authMethod":"bearer","description":"Cria um template privado e a primeira versão dele a partir de um manifesto e do código de cada serviço, enviados como multipart form data.","href":"/pt-br/api-reference/endpoint/templates/create"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Cria um template privado e a primeira versão dele a partir de um manifesto e do código de cada serviço, enviados como multipart form data.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Expandable,Heading,ParamField,ResponseField}=_components;if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Esta chamada cria um template privado com a primeira versão e responde `,_jsx(_components.code,{children:`201`}),` com o template. A requisição é `,_jsx(_components.code,{children:`multipart/form-data`}),`: o manifesto vai em um campo de texto, e cada serviço que executa o seu código vai em uma parte ZIP. Para começar a partir de um app ou de uma stack que você já tem, use `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/templates/create-from-app`,children:`Criar template a partir de app`}),` ou `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/templates/create-from-stack`,children:`Criar template a partir de stack`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Precisa do escopo `,_jsx(_components.code,{children:`templates:write`}),` quando chamado com uma chave de API. Só planos que podem criar imagens Docker personalizadas podem criar templates, e cada conta tem no máximo 5 templates privados, pessoais e de workspace somados. Em um workspace, só o dono do workspace cria templates. Um template privado não é revisado pela Vertra Cloud: quem o recebe vê o aviso “Não verificado pela Vertra”. Confira o manifesto antes com `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/templates/validate`,children:`Validar manifesto`}),`. O formato está na `,_jsx(_components.a,{href:`/pt-br/templates/create/manifest-reference`,children:`referência do manifesto`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`O ZIP de um serviço é verificado antes de ser armazenado. O envio inteiro é recusado com `,_jsx(_components.code,{children:`TEMPLATE_SECRET_IN_SOURCE`}),` quando tem um arquivo `,_jsx(_components.code,{children:`.env`}),` que não é um exemplo, uma chave privada ou um token conhecido; `,_jsx(_components.code,{children:`details.files`}),` lista apenas os caminhos. Pastas `,_jsx(_components.code,{children:`.vertra/`}),` são descartadas, e arquivos `,_jsx(_components.code,{children:`.env*`}),` nunca entram em um template.`]}),`\n`,_jsx(ParamField,{body:`manifest`,type:`string`,required:true,id:`param-manifest`,children:_jsxs(_components.p,{children:[`O manifesto como string JSON serializada, seguindo o `,_jsx(_components.a,{href:`/pt-br/templates/reference/manifest-schema`,children:`schema do manifesto`}),`. Um serviço cujo `,_jsx(_components.code,{children:`source.type`}),` é `,_jsx(_components.code,{children:`image`}),` se refere a uma imagem da sua conta pelo ID em `,_jsx(_components.code,{children:`source.image`}),`.`]})}),`\n`,_jsx(ParamField,{body:`sources[service_id]`,type:`file`,id:`param-sources-service-id`,children:_jsxs(_components.p,{children:[`Uma parte ZIP por serviço do manifesto cuja origem é `,_jsx(_components.code,{children:`code`}),`, nomeada pelo id do serviço, por exemplo `,_jsx(_components.code,{children:`sources[bot]`}),`. Obrigatória para cada um desses serviços.`]})}),`\n`,_jsx(ParamField,{body:`changelog`,type:`string`,id:`param-changelog`,children:_jsxs(_components.p,{children:[`A mensagem da primeira versão, como objeto JSON serializado com `,_jsx(_components.code,{children:`pt-br`}),` (obrigatório), `,_jsx(_components.code,{children:`en`}),` e `,_jsx(_components.code,{children:`es`}),`.`]})}),`\n`,_jsx(ParamField,{body:`workspace_id`,type:`string`,id:`param-workspace-id`,children:_jsx(_components.p,{children:`O workspace que será dono do template. Sem ele, o template é seu.`})}),`\n`,`\n`,_jsx(Heading,{level:`3`,id:`resposta`,children:`Resposta`}),`\n`,_jsxs(ResponseField,{name:`response`,type:`object`,id:`param-response`,children:[_jsx(_components.p,{children:`O template, com a primeira versão.`}),_jsxs(Expandable,{title:`Mostrar objeto`,children:[_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id`,children:_jsx(_components.p,{children:`O ID do template.`})}),_jsx(ResponseField,{name:`slug`,type:`string`,id:`param-slug`,children:_jsxs(_components.p,{children:[`O slug do template, tirado do `,_jsx(_components.code,{children:`id`}),` do manifesto.`]})}),_jsx(ResponseField,{name:`origin`,type:`string`,id:`param-origin`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`private`}),` para os templates que você cria. Os templates do catálogo são `,_jsx(_components.code,{children:`vertra`}),` ou `,_jsx(_components.code,{children:`community`}),`.`]})}),_jsx(ResponseField,{name:`visibility`,type:`string`,id:`param-visibility`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`beta`}),`, `,_jsx(_components.code,{children:`hidden`}),` ou `,_jsx(_components.code,{children:`deprecated`}),`.`]})}),_jsx(ResponseField,{name:`name`,type:`object`,id:`param-name`,children:_jsxs(_components.p,{children:[`O nome por idioma: `,_jsx(_components.code,{children:`pt-br`}),`, `,_jsx(_components.code,{children:`en`}),` e `,_jsx(_components.code,{children:`es`}),`. Um `,_jsx(_components.code,{children:`en`}),` ou `,_jsx(_components.code,{children:`es`}),` ausente cai para `,_jsx(_components.code,{children:`pt-br`}),`.`]})}),_jsx(ResponseField,{name:`description`,type:`object`,id:`param-description`,children:_jsxs(_components.p,{children:[`A descrição por idioma, no mesmo formato de `,_jsx(_components.code,{children:`name`}),`.`]})}),_jsx(ResponseField,{name:`category`,type:`string`,id:`param-category`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`automation`}),`, `,_jsx(_components.code,{children:`ai-agents`}),`, `,_jsx(_components.code,{children:`bots`}),`, `,_jsx(_components.code,{children:`apis`}),`, `,_jsx(_components.code,{children:`cms`}),`, `,_jsx(_components.code,{children:`monitoring`}),`, `,_jsx(_components.code,{children:`starters`}),`, `,_jsx(_components.code,{children:`databases`}),` ou `,_jsx(_components.code,{children:`other`}),`.`]})}),_jsx(ResponseField,{name:`tags`,type:`string[]`,id:`param-tags`,children:_jsx(_components.p,{children:`As tags.`})}),_jsx(ResponseField,{name:`icon_url`,type:`string | null`,id:`param-icon-url`,children:_jsxs(_components.p,{children:[`URL do ícone, ou `,_jsx(_components.code,{children:`null`}),` quando o template não tem um.`]})}),_jsx(ResponseField,{name:`author_display`,type:`string | null`,id:`param-author-display`,children:_jsxs(_components.p,{children:[`O nome exibido como autor. `,_jsx(_components.code,{children:`null`}),` para os templates feitos pela plataforma.`]})}),_jsx(ResponseField,{name:`links`,type:`object`,id:`param-links`,children:_jsxs(_components.p,{children:[`Links do software que o template empacota: `,_jsx(_components.code,{children:`website`}),`, `,_jsx(_components.code,{children:`docs`}),`, `,_jsx(_components.code,{children:`source`}),` e `,_jsx(_components.code,{children:`license`}),`, todos opcionais.`]})}),_jsx(ResponseField,{name:`landing`,type:`string | null`,id:`param-landing`,children:_jsxs(_components.p,{children:[`Slug de uma página pública dedicada, ou `,_jsx(_components.code,{children:`null`}),`.`]})}),_jsx(ResponseField,{name:`featured`,type:`boolean`,id:`param-featured`,children:_jsx(_components.p,{children:`Destacado na galeria.`})}),_jsx(ResponseField,{name:`current_version`,type:`object`,id:`param-current-version`,children:_jsxs(_components.p,{children:[`A versão mais recente: `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`version`}),` (versão semântica), `,_jsx(_components.code,{children:`security`}),` (`,_jsx(_components.code,{children:`true`}),` para uma versão de segurança) e `,_jsx(_components.code,{children:`created_at`}),`.`]})}),_jsx(ResponseField,{name:`services`,type:`object[]`,id:`param-services`,children:_jsxs(_components.p,{children:[`O que o template cria. Cada serviço tem `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`kind`}),` (`,_jsx(_components.code,{children:`app`}),`, `,_jsx(_components.code,{children:`database`}),` ou `,_jsx(_components.code,{children:`blob`}),`), `,_jsx(_components.code,{children:`source_type`}),` (`,_jsx(_components.code,{children:`code`}),`, `,_jsx(_components.code,{children:`image`}),` ou `,_jsx(_components.code,{children:`null`}),`), `,_jsx(_components.code,{children:`database`}),` (o engine, ou `,_jsx(_components.code,{children:`null`}),`), `,_jsx(_components.code,{children:`blob_visibility`}),`, `,_jsx(_components.code,{children:`ram`}),` (`,_jsx(_components.code,{children:`min`}),`, `,_jsx(_components.code,{children:`recommended`}),` e `,_jsx(_components.code,{children:`max`}),` opcional, em MB), `,_jsx(_components.code,{children:`web`}),` (`,_jsx(_components.code,{children:`required`}),`, `,_jsx(_components.code,{children:`optional`}),`, `,_jsx(_components.code,{children:`none`}),` ou `,_jsx(_components.code,{children:`null`}),`) e `,_jsx(_components.code,{children:`conditional`}),` (`,_jsx(_components.code,{children:`true`}),` quando o serviço só é criado para algumas respostas).`]})}),_jsx(ResponseField,{name:`creates_stack`,type:`boolean`,id:`param-creates-stack`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`true`}),` quando usar o template cria uma stack (dois ou mais serviços).`]})}),_jsx(ResponseField,{name:`ram_min_total`,type:`integer`,id:`param-ram-min-total`,children:_jsx(_components.p,{children:`A soma da memória mínima de todos os serviços, em MB.`})}),_jsx(ResponseField,{name:`byok`,type:`boolean`,id:`param-byok`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`true`}),` quando quem usa o template traz a própria chave para um modelo de IA.`]})}),_jsx(ResponseField,{name:`required_plan`,type:`string`,id:`param-required-plan`,children:_jsx(_components.p,{children:`O plano mais baixo que pode usar o template.`})}),_jsx(ResponseField,{name:`code_view`,type:`boolean`,id:`param-code-view`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`false`}),` para um `,_jsx(_components.a,{href:`/pt-br/templates/use/closed-templates`,children:`template fechado`}),`: quem o usa não pode ver o código dele.`]})}),_jsx(ResponseField,{name:`uses_count`,type:`integer | null`,id:`param-uses-count`,children:_jsxs(_components.p,{children:[`Sempre `,_jsx(_components.code,{children:`null`}),` para um template privado.`]})}),_jsx(ResponseField,{name:`owner`,type:`object | null`,id:`param-owner`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`user_id`}),` e `,_jsx(_components.code,{children:`workspace_id`}),` (`,_jsx(_components.code,{children:`null`}),` quando o template pertence ao usuário).`]})}),_jsx(ResponseField,{name:`github`,type:`object | null`,id:`param-github`,children:_jsxs(_components.p,{children:[`O repositório vinculado (`,_jsx(_components.code,{children:`repository`}),` no formato `,_jsx(_components.code,{children:`owner/name`}),`, e `,_jsx(_components.code,{children:`branch`}),`), ou `,_jsx(_components.code,{children:`null`}),` quando o template não está vinculado.`]})}),_jsx(ResponseField,{name:`inputs`,type:`object[]`,id:`param-inputs`,children:_jsxs(_components.p,{children:[`As perguntas que o usuário responde ao usar o template. Veja `,_jsx(_components.a,{href:`/pt-br/templates/create/placeholders-and-inputs`,children:`Placeholders e inputs`}),`.`]})}),_jsx(ResponseField,{name:`permissions`,type:`object`,id:`param-permissions`,children:_jsxs(_components.p,{children:[`As permissões efetivas dos apps criados a partir do template, depois dos padrões e das restrições de um template fechado: `,_jsx(_components.code,{children:`code_view`}),`, `,_jsx(_components.code,{children:`code_edit`}),`, `,_jsx(_components.code,{children:`ram_change`}),`, `,_jsx(_components.code,{children:`ram_below_min`}),`, `,_jsx(_components.code,{children:`ram_above_max`}),`, `,_jsx(_components.code,{children:`env_add`}),`, `,_jsx(_components.code,{children:`commands_edit`}),`, `,_jsx(_components.code,{children:`terminal`}),`, `,_jsx(_components.code,{children:`save_as_template`}),` e `,_jsx(_components.code,{children:`detach`}),`, todos booleanos.`]})}),_jsx(ResponseField,{name:`outputs`,type:`object[]`,id:`param-outputs`,children:_jsxs(_components.p,{children:[`O que o assistente mostra no fim de um deploy: `,_jsx(_components.code,{children:`label`}),`, `,_jsx(_components.code,{children:`value`}),` e as flags opcionais `,_jsx(_components.code,{children:`secret`}),` e `,_jsx(_components.code,{children:`once`}),`.`]})}),_jsx(ResponseField,{name:`readme`,type:`object | null`,id:`param-readme`,children:_jsxs(_components.p,{children:[`A documentação do template (Markdown) por idioma, ou `,_jsx(_components.code,{children:`null`}),`.`]})}),_jsx(ResponseField,{name:`changelog`,type:`object | null`,id:`param-changelog-1`,children:_jsxs(_components.p,{children:[`O changelog da versão mais recente por idioma, ou `,_jsx(_components.code,{children:`null`}),`.`]})}),_jsx(ResponseField,{name:`account`,type:`object`,id:`param-account`,children:_jsxs(_components.p,{children:[`O que usar o template faria na sua conta (`,_jsx(_components.code,{children:`fits`}),`, `,_jsx(_components.code,{children:`reasons`}),`, `,_jsx(_components.code,{children:`required_ram`}),`, `,_jsx(_components.code,{children:`free_ram`}),`, `,_jsx(_components.code,{children:`needs_image_slot`}),`, `,_jsx(_components.code,{children:`image_slots_free`}),`, `,_jsx(_components.code,{children:`in_use`}),` e `,_jsx(_components.code,{children:`in_use_count`}),`). Presente apenas nas chamadas autenticadas que leem o template.`]})}),_jsx(ResponseField,{name:`created_at`,type:`string`,format:`date-time`,id:`param-created-at`,children:_jsx(_components.p,{children:`Quando o template foi criado.`})}),_jsx(ResponseField,{name:`updated_at`,type:`string`,format:`date-time`,id:`param-updated-at`,children:_jsx(_components.p,{children:`Quando o template foi atualizado pela última vez.`})})]})]}),`\n`,`\n`,_jsx(Heading,{level:`3`,id:`respostas-de-erro`,children:`Respostas de erro`}),`\n`,_jsxs(ResponseField,{name:`code`,type:`string`,id:`param-code`,children:[_jsx(_components.p,{children:`O código de erro que indica o motivo da falha. Valores possíveis:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`API_KEY_SCOPE_DENIED`}),`: A chave de API não tem o escopo `,_jsx(_components.code,{children:`templates:write`}),` (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TEMPLATE_MANIFEST_INVALID`}),`: O manifesto não é válido; `,_jsx(_components.code,{children:`details.issues`}),` lista cada achado com o `,_jsx(_components.code,{children:`path`}),` e o `,_jsx(_components.code,{children:`code`}),`. Nada é criado.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TEMPLATE_SOURCE_REQUIRED`}),`: Um serviço `,_jsx(_components.code,{children:`code`}),` não tem uma parte ZIP.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TEMPLATE_SECRET_IN_SOURCE`}),`: Um ZIP tem um segredo (um arquivo `,_jsx(_components.code,{children:`.env`}),`, uma chave privada ou um token); `,_jsx(_components.code,{children:`details.files`}),` lista os caminhos (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TEMPLATE_SLUG_TAKEN`}),`: O `,_jsx(_components.code,{children:`id`}),` do manifesto já está em uso entre os seus templates ou é uma palavra reservada.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TEMPLATE_PRIVATE_LIMIT_REACHED`}),`: A conta já tem 5 templates privados.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES`}),`: O plano não pode criar imagens Docker personalizadas, então não pode criar templates.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`IMAGE_NOT_FOUND`}),`: Um serviço `,_jsx(_components.code,{children:`image`}),` se refere a uma imagem que não é sua ou não tem um build bem-sucedido.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`WORKSPACE_OWNER_ONLY`}),`: `,_jsx(_components.code,{children:`workspace_id`}),` foi enviado e quem chama não é o dono desse workspace.`]}),`\n`]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Criar um template privado","sidebarTitle":"Criar template","api":"POST https://api.vertracloud.app/v1/templates","authMethod":"bearer","description":"Cria um template privado e a primeira versão dele a partir de um manifesto e do código de cada serviço, enviados como multipart form data.","href":"/pt-br/api-reference/endpoint/templates/create"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,ParamField,RequestExample,ResponseExample,ResponseField}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!RequestExample)_missingMdxReference(`RequestExample`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Esta chamada cria um template privado com a primeira versão e responde `,_jsx(_components.code,{children:`201`}),` com o template. A requisição é `,_jsx(_components.code,{children:`multipart/form-data`}),`: o manifesto vai em um campo de texto, e cada serviço que executa o seu código vai em uma parte ZIP. Para começar a partir de um app ou de uma stack que você já tem, use `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/templates/create-from-app`,children:`Criar template a partir de app`}),` ou `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/templates/create-from-stack`,children:`Criar template a partir de stack`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Precisa do escopo `,_jsx(_components.code,{children:`templates:write`}),` quando chamado com uma chave de API. Só planos que podem criar imagens Docker personalizadas podem criar templates, e cada conta tem no máximo 5 templates privados, pessoais e de workspace somados. Em um workspace, só o dono do workspace cria templates. Um template privado não é revisado pela Vertra Cloud: quem o recebe vê o aviso “Não verificado pela Vertra”. Confira o manifesto antes com `,_jsx(_components.a,{href:`/pt-br/api-reference/endpoint/templates/validate`,children:`Validar manifesto`}),`. O formato está na `,_jsx(_components.a,{href:`/pt-br/templates/create/manifest-reference`,children:`referência do manifesto`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`O ZIP de um serviço é verificado antes de ser armazenado. O envio inteiro é recusado com `,_jsx(_components.code,{children:`TEMPLATE_SECRET_IN_SOURCE`}),` quando tem um arquivo `,_jsx(_components.code,{children:`.env`}),` que não é um exemplo, uma chave privada ou um token conhecido; `,_jsx(_components.code,{children:`details.files`}),` lista apenas os caminhos. Pastas `,_jsx(_components.code,{children:`.vertra/`}),` são descartadas, e arquivos `,_jsx(_components.code,{children:`.env*`}),` nunca entram em um template.`]}),`\n`,_jsx(ParamField,{body:`manifest`,type:`string`,required:true,id:`param-manifest`,children:_jsxs(_components.p,{children:[`O manifesto como string JSON serializada, seguindo o `,_jsx(_components.a,{href:`/pt-br/templates/reference/manifest-schema`,children:`schema do manifesto`}),`. Um serviço cujo `,_jsx(_components.code,{children:`source.type`}),` é `,_jsx(_components.code,{children:`image`}),` se refere a uma imagem da sua conta pelo ID em `,_jsx(_components.code,{children:`source.image`}),`.`]})}),`\n`,_jsx(ParamField,{body:`sources[service_id]`,type:`file`,id:`param-sources-service-id`,children:_jsxs(_components.p,{children:[`Uma parte ZIP por serviço do manifesto cuja origem é `,_jsx(_components.code,{children:`code`}),`, nomeada pelo id do serviço, por exemplo `,_jsx(_components.code,{children:`sources[bot]`}),`. Obrigatória para cada um desses serviços.`]})}),`\n`,_jsx(ParamField,{body:`changelog`,type:`string`,id:`param-changelog`,children:_jsxs(_components.p,{children:[`A mensagem da primeira versão, como objeto JSON serializado com `,_jsx(_components.code,{children:`pt-br`}),` (obrigatório), `,_jsx(_components.code,{children:`en`}),` e `,_jsx(_components.code,{children:`es`}),`.`]})}),`\n`,_jsx(ParamField,{body:`workspace_id`,type:`string`,id:`param-workspace-id`,children:_jsx(_components.p,{children:`O workspace que será dono do template. Sem ele, o template é seu.`})}),`\n`,_jsx(RequestExample,{children:_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`4`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`4`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.vertracloud.app/v1/templates`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`$VERTRA_API_KEY`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -F`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'manifest=\u003cmanifest.json'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -F`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'sources[bot][email protected]'`})]}),`\n`]})})})}),`\n`,_jsx(Heading,{level:`3`,id:`resposta`,children:`Resposta`}),`\n`,_jsxs(ResponseField,{name:`response`,type:`object`,id:`param-response`,children:[_jsx(_components.p,{children:`O template, com a primeira versão.`}),_jsxs(Expandable,{title:`Mostrar objeto`,children:[_jsx(ResponseField,{name:`id`,type:`string`,id:`param-id`,children:_jsx(_components.p,{children:`O ID do template.`})}),_jsx(ResponseField,{name:`slug`,type:`string`,id:`param-slug`,children:_jsxs(_components.p,{children:[`O slug do template, tirado do `,_jsx(_components.code,{children:`id`}),` do manifesto.`]})}),_jsx(ResponseField,{name:`origin`,type:`string`,id:`param-origin`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`private`}),` para os templates que você cria. Os templates do catálogo são `,_jsx(_components.code,{children:`vertra`}),` ou `,_jsx(_components.code,{children:`community`}),`.`]})}),_jsx(ResponseField,{name:`visibility`,type:`string`,id:`param-visibility`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`public`}),`, `,_jsx(_components.code,{children:`beta`}),`, `,_jsx(_components.code,{children:`hidden`}),` ou `,_jsx(_components.code,{children:`deprecated`}),`.`]})}),_jsx(ResponseField,{name:`name`,type:`object`,id:`param-name`,children:_jsxs(_components.p,{children:[`O nome por idioma: `,_jsx(_components.code,{children:`pt-br`}),`, `,_jsx(_components.code,{children:`en`}),` e `,_jsx(_components.code,{children:`es`}),`. Um `,_jsx(_components.code,{children:`en`}),` ou `,_jsx(_components.code,{children:`es`}),` ausente cai para `,_jsx(_components.code,{children:`pt-br`}),`.`]})}),_jsx(ResponseField,{name:`description`,type:`object`,id:`param-description`,children:_jsxs(_components.p,{children:[`A descrição por idioma, no mesmo formato de `,_jsx(_components.code,{children:`name`}),`.`]})}),_jsx(ResponseField,{name:`category`,type:`string`,id:`param-category`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`automation`}),`, `,_jsx(_components.code,{children:`ai-agents`}),`, `,_jsx(_components.code,{children:`bots`}),`, `,_jsx(_components.code,{children:`apis`}),`, `,_jsx(_components.code,{children:`cms`}),`, `,_jsx(_components.code,{children:`monitoring`}),`, `,_jsx(_components.code,{children:`starters`}),`, `,_jsx(_components.code,{children:`databases`}),` ou `,_jsx(_components.code,{children:`other`}),`.`]})}),_jsx(ResponseField,{name:`tags`,type:`string[]`,id:`param-tags`,children:_jsx(_components.p,{children:`As tags.`})}),_jsx(ResponseField,{name:`icon_url`,type:`string | null`,id:`param-icon-url`,children:_jsxs(_components.p,{children:[`URL do ícone, ou `,_jsx(_components.code,{children:`null`}),` quando o template não tem um.`]})}),_jsx(ResponseField,{name:`author_display`,type:`string | null`,id:`param-author-display`,children:_jsxs(_components.p,{children:[`O nome exibido como autor. `,_jsx(_components.code,{children:`null`}),` para os templates feitos pela plataforma.`]})}),_jsx(ResponseField,{name:`links`,type:`object`,id:`param-links`,children:_jsxs(_components.p,{children:[`Links do software que o template empacota: `,_jsx(_components.code,{children:`website`}),`, `,_jsx(_components.code,{children:`docs`}),`, `,_jsx(_components.code,{children:`source`}),` e `,_jsx(_components.code,{children:`license`}),`, todos opcionais.`]})}),_jsx(ResponseField,{name:`landing`,type:`string | null`,id:`param-landing`,children:_jsxs(_components.p,{children:[`Slug de uma página pública dedicada, ou `,_jsx(_components.code,{children:`null`}),`.`]})}),_jsx(ResponseField,{name:`featured`,type:`boolean`,id:`param-featured`,children:_jsx(_components.p,{children:`Destacado na galeria.`})}),_jsx(ResponseField,{name:`current_version`,type:`object`,id:`param-current-version`,children:_jsxs(_components.p,{children:[`A versão mais recente: `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`version`}),` (versão semântica), `,_jsx(_components.code,{children:`security`}),` (`,_jsx(_components.code,{children:`true`}),` para uma versão de segurança) e `,_jsx(_components.code,{children:`created_at`}),`.`]})}),_jsx(ResponseField,{name:`services`,type:`object[]`,id:`param-services`,children:_jsxs(_components.p,{children:[`O que o template cria. Cada serviço tem `,_jsx(_components.code,{children:`id`}),`, `,_jsx(_components.code,{children:`kind`}),` (`,_jsx(_components.code,{children:`app`}),`, `,_jsx(_components.code,{children:`database`}),` ou `,_jsx(_components.code,{children:`blob`}),`), `,_jsx(_components.code,{children:`source_type`}),` (`,_jsx(_components.code,{children:`code`}),`, `,_jsx(_components.code,{children:`image`}),` ou `,_jsx(_components.code,{children:`null`}),`), `,_jsx(_components.code,{children:`database`}),` (o engine, ou `,_jsx(_components.code,{children:`null`}),`), `,_jsx(_components.code,{children:`blob_visibility`}),`, `,_jsx(_components.code,{children:`ram`}),` (`,_jsx(_components.code,{children:`min`}),`, `,_jsx(_components.code,{children:`recommended`}),` e `,_jsx(_components.code,{children:`max`}),` opcional, em MB), `,_jsx(_components.code,{children:`web`}),` (`,_jsx(_components.code,{children:`required`}),`, `,_jsx(_components.code,{children:`optional`}),`, `,_jsx(_components.code,{children:`none`}),` ou `,_jsx(_components.code,{children:`null`}),`) e `,_jsx(_components.code,{children:`conditional`}),` (`,_jsx(_components.code,{children:`true`}),` quando o serviço só é criado para algumas respostas).`]})}),_jsx(ResponseField,{name:`creates_stack`,type:`boolean`,id:`param-creates-stack`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`true`}),` quando usar o template cria uma stack (dois ou mais serviços).`]})}),_jsx(ResponseField,{name:`ram_min_total`,type:`integer`,id:`param-ram-min-total`,children:_jsx(_components.p,{children:`A soma da memória mínima de todos os serviços, em MB.`})}),_jsx(ResponseField,{name:`byok`,type:`boolean`,id:`param-byok`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`true`}),` quando quem usa o template traz a própria chave para um modelo de IA.`]})}),_jsx(ResponseField,{name:`required_plan`,type:`string`,id:`param-required-plan`,children:_jsx(_components.p,{children:`O plano mais baixo que pode usar o template.`})}),_jsx(ResponseField,{name:`code_view`,type:`boolean`,id:`param-code-view`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`false`}),` para um `,_jsx(_components.a,{href:`/pt-br/templates/use/closed-templates`,children:`template fechado`}),`: quem o usa não pode ver o código dele.`]})}),_jsx(ResponseField,{name:`uses_count`,type:`integer | null`,id:`param-uses-count`,children:_jsxs(_components.p,{children:[`Sempre `,_jsx(_components.code,{children:`null`}),` para um template privado.`]})}),_jsx(ResponseField,{name:`owner`,type:`object | null`,id:`param-owner`,children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`user_id`}),` e `,_jsx(_components.code,{children:`workspace_id`}),` (`,_jsx(_components.code,{children:`null`}),` quando o template pertence ao usuário).`]})}),_jsx(ResponseField,{name:`github`,type:`object | null`,id:`param-github`,children:_jsxs(_components.p,{children:[`O repositório vinculado (`,_jsx(_components.code,{children:`repository`}),` no formato `,_jsx(_components.code,{children:`owner/name`}),`, e `,_jsx(_components.code,{children:`branch`}),`), ou `,_jsx(_components.code,{children:`null`}),` quando o template não está vinculado.`]})}),_jsx(ResponseField,{name:`inputs`,type:`object[]`,id:`param-inputs`,children:_jsxs(_components.p,{children:[`As perguntas que o usuário responde ao usar o template. Veja `,_jsx(_components.a,{href:`/pt-br/templates/create/placeholders-and-inputs`,children:`Placeholders e inputs`}),`.`]})}),_jsx(ResponseField,{name:`permissions`,type:`object`,id:`param-permissions`,children:_jsxs(_components.p,{children:[`As permissões efetivas dos apps criados a partir do template, depois dos padrões e das restrições de um template fechado: `,_jsx(_components.code,{children:`code_view`}),`, `,_jsx(_components.code,{children:`code_edit`}),`, `,_jsx(_components.code,{children:`ram_change`}),`, `,_jsx(_components.code,{children:`ram_below_min`}),`, `,_jsx(_components.code,{children:`ram_above_max`}),`, `,_jsx(_components.code,{children:`env_add`}),`, `,_jsx(_components.code,{children:`commands_edit`}),`, `,_jsx(_components.code,{children:`terminal`}),`, `,_jsx(_components.code,{children:`save_as_template`}),` e `,_jsx(_components.code,{children:`detach`}),`, todos booleanos.`]})}),_jsx(ResponseField,{name:`outputs`,type:`object[]`,id:`param-outputs`,children:_jsxs(_components.p,{children:[`O que o assistente mostra no fim de um deploy: `,_jsx(_components.code,{children:`label`}),`, `,_jsx(_components.code,{children:`value`}),` e as flags opcionais `,_jsx(_components.code,{children:`secret`}),` e `,_jsx(_components.code,{children:`once`}),`.`]})}),_jsx(ResponseField,{name:`readme`,type:`object | null`,id:`param-readme`,children:_jsxs(_components.p,{children:[`A documentação do template (Markdown) por idioma, ou `,_jsx(_components.code,{children:`null`}),`.`]})}),_jsx(ResponseField,{name:`changelog`,type:`object | null`,id:`param-changelog-1`,children:_jsxs(_components.p,{children:[`O changelog da versão mais recente por idioma, ou `,_jsx(_components.code,{children:`null`}),`.`]})}),_jsx(ResponseField,{name:`account`,type:`object`,id:`param-account`,children:_jsxs(_components.p,{children:[`O que usar o template faria na sua conta (`,_jsx(_components.code,{children:`fits`}),`, `,_jsx(_components.code,{children:`reasons`}),`, `,_jsx(_components.code,{children:`required_ram`}),`, `,_jsx(_components.code,{children:`free_ram`}),`, `,_jsx(_components.code,{children:`needs_image_slot`}),`, `,_jsx(_components.code,{children:`image_slots_free`}),`, `,_jsx(_components.code,{children:`in_use`}),` e `,_jsx(_components.code,{children:`in_use_count`}),`). Presente apenas nas chamadas autenticadas que leem o template.`]})}),_jsx(ResponseField,{name:`created_at`,type:`string`,format:`date-time`,id:`param-created-at`,children:_jsx(_components.p,{children:`Quando o template foi criado.`})}),_jsx(ResponseField,{name:`updated_at`,type:`string`,format:`date-time`,id:`param-updated-at`,children:_jsx(_components.p,{children:`Quando o template foi atualizado pela última vez.`})})]})]}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`Response`,numberOfLines:`61`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`61`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"response\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"tpl-abc123def456\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"slug\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"support-bot\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"origin\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"private\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"visibility\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"public\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"pt-br\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bot de suporte\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"en\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Support bot\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"pt-br\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bot que responde o suporte.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"en\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"A bot that answers support.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"category\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bots\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tags\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"discord\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"support\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"icon_url\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"author_display\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Ana\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"links\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {},`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"landing\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"featured\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"current_version\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"tplv-111222333444\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"version\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1.0.0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"security\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-27T14:02:00Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"services\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"bot\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"kind\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"app\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"source_type\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"database\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"blob_visibility\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ram\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"min\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`256`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"recommended\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`512`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"web\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"none\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"conditional\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"creates_stack\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ram_min_total\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`256`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"byok\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"required_plan\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"economy\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code_view\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"uses_count\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"owner\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: { `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"user_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"1234567890123456789\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"workspace_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"github\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"inputs\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"permissions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code_view\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code_edit\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ram_change\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ram_below_min\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"ram_above_max\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"env_add\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"commands_edit\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"terminal\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"save_as_template\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"detach\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` },`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"outputs\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [],`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"readme\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"changelog\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-27T14:02:00Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"updated_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-10-27T14:02:00Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})}),`\n`,_jsx(Heading,{level:`3`,id:`respostas-de-erro`,children:`Respostas de erro`}),`\n`,_jsxs(ResponseField,{name:`code`,type:`string`,id:`param-code`,children:[_jsx(_components.p,{children:`O código de erro que indica o motivo da falha. Valores possíveis:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`API_KEY_SCOPE_DENIED`}),`: A chave de API não tem o escopo `,_jsx(_components.code,{children:`templates:write`}),` (`,_jsx(_components.code,{children:`403`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TEMPLATE_MANIFEST_INVALID`}),`: O manifesto não é válido; `,_jsx(_components.code,{children:`details.issues`}),` lista cada achado com o `,_jsx(_components.code,{children:`path`}),` e o `,_jsx(_components.code,{children:`code`}),`. Nada é criado.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TEMPLATE_SOURCE_REQUIRED`}),`: Um serviço `,_jsx(_components.code,{children:`code`}),` não tem uma parte ZIP.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TEMPLATE_SECRET_IN_SOURCE`}),`: Um ZIP tem um segredo (um arquivo `,_jsx(_components.code,{children:`.env`}),`, uma chave privada ou um token); `,_jsx(_components.code,{children:`details.files`}),` lista os caminhos (`,_jsx(_components.code,{children:`400`}),`).`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TEMPLATE_SLUG_TAKEN`}),`: O `,_jsx(_components.code,{children:`id`}),` do manifesto já está em uso entre os seus templates ou é uma palavra reservada.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`TEMPLATE_PRIVATE_LIMIT_REACHED`}),`: A conta já tem 5 templates privados.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES`}),`: O plano não pode criar imagens Docker personalizadas, então não pode criar templates.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`IMAGE_NOT_FOUND`}),`: Um serviço `,_jsx(_components.code,{children:`image`}),` se refere a uma imagem que não é sua ou não tem um build bem-sucedido.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`WORKSPACE_OWNER_ONLY`}),`: `,_jsx(_components.code,{children:`workspace_id`}),` foi enviado e quem chama não é o dono desse workspace.`]}),`\n`]})]}),`\n`,_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`Error Response`,numberOfLines:`6`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`6`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"TEMPLATE_MANIFEST_INVALID\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"details\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"issues\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [{ `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"path\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"services.bot.ram.min\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"code\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"invalid_ram\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:`\"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ram.min must be a positive number of MB\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }]`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Criar um template privado","sidebarTitle":"Criar template","api":"POST https://api.vertracloud.app/v1/templates","authMethod":"bearer","description":"Cria um template privado e a primeira versão dele a partir de um manifesto e do código de cada serviço, enviados como multipart form data.","href":"/pt-br/api-reference/endpoint/templates/create"}}}},"mdxExtracts":{"tableOfContents":[{"title":"Resposta","slug":"resposta","depth":3,"children":[]},{"title":"Respostas de erro","slug":"respostas-de-erro","depth":3,"children":[]}],"codeExamples":{"request":{"type":"RequestExample","children":[{"filename":"cURL","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"shellscript\">\u003ccode language=\"shellscript\" numberOfLines=\"4\">\u003cspan class=\"line\">\u003cspan style=\"color:#953800;--shiki-dark:#DCDCAA\">curl\u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -X\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> POST\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> https://api.vertracloud.app/v1/templates\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -H\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> \"Authorization: Bearer \u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#9CDCFE\">$VERTRA_API_KEY\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -F\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> 'manifest=\u0026#x3C;manifest.json'\u003c/span>\u003cspan style=\"color:#CF222E;--shiki-dark:#D7BA7D\"> \\\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\"> -F\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\"> 'sources[bot][email protected]'\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]},"response":{"type":"ResponseExample","children":[{"filename":"Response","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"61\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"response\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"tpl-abc123def456\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"slug\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"support-bot\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"origin\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"private\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"visibility\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"public\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"name\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: { \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"pt-br\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Bot de suporte\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"en\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Support bot\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"description\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: { \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"pt-br\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Bot que responde o suporte.\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"en\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"A bot that answers support.\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"category\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"bots\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"tags\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"discord\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"support\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"icon_url\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"author_display\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"Ana\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"links\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {},\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"landing\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"featured\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"current_version\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"tplv-111222333444\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"version\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"1.0.0\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"security\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-27T14:02:00Z\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"services\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"bot\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"kind\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"app\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"source_type\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"code\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"database\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"blob_visibility\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"ram\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: { \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"min\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">256\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"recommended\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">512\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"web\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"none\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"conditional\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> ],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"creates_stack\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"ram_min_total\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">256\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"byok\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"required_plan\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"economy\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code_view\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"uses_count\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"owner\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: { \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"user_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"1234567890123456789\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">, \u003c/span>\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\">\"workspace_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"github\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"inputs\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"permissions\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code_view\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"code_edit\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"ram_change\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"ram_below_min\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"ram_above_max\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"env_add\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"commands_edit\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"terminal\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">false\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"save_as_template\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"detach\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">true\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> },\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"outputs\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"readme\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"changelog\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-27T14:02:00Z\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"updated_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"2026-10-27T14:02:00Z\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}},"endpoint":{"title":"Criar um template privado","path":"/v1/templates","servers":[{"url":"https://api.vertracloud.app"}],"method":"post","request":{"security":[{"title":"Bearer Auth","parameters":{"header":{"Authorization":{"type":"http","scheme":"bearer","description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token."}},"query":{},"cookie":{}}}],"parameters":{"query":{},"header":{},"cookie":{},"path":{}},"body":{"application/json":{"schemaArray":[{"type":"object","properties":{"manifest":[{"type":"string","description":"O manifesto como string JSON serializada, seguindo o schema do manifesto . Um serviço cujo `source.type` é `image` se refere a uma imagem da sua conta pelo ID em `source.image` .","required":true}],"sources[service_id]":[{"type":"file","description":"Uma parte ZIP por serviço do manifesto cuja origem é `code` , nomeada pelo id do serviço, por exemplo `sources[bot]` . Obrigatória para cada um desses serviços."}],"changelog":[{"type":"string","description":"A mensagem da primeira versão, como objeto JSON serializado com `pt-br` (obrigatório), `en` e `es` ."}],"workspace_id":[{"type":"string","description":"O workspace que será dono do template. Sem ele, o template é seu."}]}}],"examples":{"example":{"value":{"manifest":"\u003cstring>","changelog":"\u003cstring>","workspace_id":"\u003cstring>"}}}}}},"response":{"200":{"application/json":{"schemaArray":[{"type":"object","properties":{"response":[{"type":"object","properties":{"id":[{"type":"string","description":"O ID do template."}],"slug":[{"type":"string","description":"O slug do template, tirado do `id` do manifesto."}],"origin":[{"type":"string","description":"`private` para os templates que você cria. Os templates do catálogo são `vertra` ou `community` ."}],"visibility":[{"type":"string","description":"`public` , `beta` , `hidden` ou `deprecated` ."}],"name":[{"type":"object","properties":{},"description":"O nome por idioma: `pt-br` , `en` e `es` . Um `en` ou `es` ausente cai para `pt-br` ."}],"description":[{"type":"object","properties":{},"description":"A descrição por idioma, no mesmo formato de `name` ."}],"category":[{"type":"string","description":"`automation` , `ai-agents` , `bots` , `apis` , `cms` , `monitoring` , `starters` , `databases` ou `other` ."}],"tags":[{"type":"array","items":[{"type":"string"}],"description":"As tags."}],"icon_url":[{"type":"object","properties":{},"description":"URL do ícone, ou `null` quando o template não tem um."}],"author_display":[{"type":"object","properties":{},"description":"O nome exibido como autor. `null` para os templates feitos pela plataforma."}],"links":[{"type":"object","properties":{},"description":"Links do software que o template empacota: `website` , `docs` , `source` e `license` , todos opcionais."}],"landing":[{"type":"object","properties":{},"description":"Slug de uma página pública dedicada, ou `null` ."}],"featured":[{"type":"boolean","description":"Destacado na galeria."}],"current_version":[{"type":"object","properties":{},"description":"A versão mais recente: `id` , `version` (versão semântica), `security` ( `true` para uma versão de segurança) e `created_at` ."}],"services":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"O que o template cria. Cada serviço tem `id` , `kind` ( `app` , `database` ou `blob` ), `source_type` ( `code` , `image` ou `null` ), `database` (o engine, ou `null` ), `blob_visibility` , `ram` ( `min` , `recommended` e `max` opcional, em MB), `web` ( `required` , `optional` , `none` ou `null` ) e `conditional` ( `true` quando o serviço só é criado para algumas respostas)."}],"creates_stack":[{"type":"boolean","description":"`true` quando usar o template cria uma stack (dois ou mais serviços)."}],"ram_min_total":[{"type":"integer","description":"A soma da memória mínima de todos os serviços, em MB."}],"byok":[{"type":"boolean","description":"`true` quando quem usa o template traz a própria chave para um modelo de IA."}],"required_plan":[{"type":"string","description":"O plano mais baixo que pode usar o template."}],"code_view":[{"type":"boolean","description":"`false` para um template fechado : quem o usa não pode ver o código dele."}],"uses_count":[{"type":"object","properties":{},"description":"Sempre `null` para um template privado."}],"owner":[{"type":"object","properties":{},"description":"`user_id` e `workspace_id` ( `null` quando o template pertence ao usuário)."}],"github":[{"type":"object","properties":{},"description":"O repositório vinculado ( `repository` no formato `owner/name` , e `branch` ), ou `null` quando o template não está vinculado."}],"inputs":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"As perguntas que o usuário responde ao usar o template. Veja Placeholders e inputs ."}],"permissions":[{"type":"object","properties":{},"description":"As permissões efetivas dos apps criados a partir do template, depois dos padrões e das restrições de um template fechado: `code_view` , `code_edit` , `ram_change` , `ram_below_min` , `ram_above_max` , `env_add` , `commands_edit` , `terminal` , `save_as_template` e `detach` , todos booleanos."}],"outputs":[{"type":"array","items":[{"type":"object","properties":{}}],"description":"O que o assistente mostra no fim de um deploy: `label` , `value` e as flags opcionais `secret` e `once` ."}],"readme":[{"type":"object","properties":{},"description":"A documentação do template (Markdown) por idioma, ou `null` ."}],"changelog":[{"type":"object","properties":{},"description":"O changelog da versão mais recente por idioma, ou `null` ."}],"account":[{"type":"object","properties":{},"description":"O que usar o template faria na sua conta ( `fits` , `reasons` , `required_ram` , `free_ram` , `needs_image_slot` , `image_slots_free` , `in_use` e `in_use_count` ). Presente apenas nas chamadas autenticadas que leem o template."}],"created_at":[{"type":"string","description":"Quando o template foi criado."}],"updated_at":[{"type":"string","description":"Quando o template foi atualizado pela última vez."}]},"description":"O template, com a primeira versão."}],"code":[{"type":"string","description":"O código de erro que indica o motivo da falha. Valores possíveis: `API_KEY_SCOPE_DENIED` : A chave de API não tem o escopo `templates:write` ( `403` ). `TEMPLATE_MANIFEST_INVALID` : O manifesto não é válido; `details.issues` lista cada achado com o `path` e o `code` . Nada é criado. `TEMPLATE_SOURCE_REQUIRED` : Um serviço `code` não tem uma parte ZIP. `TEMPLATE_SECRET_IN_SOURCE` : Um ZIP tem um segredo (um arquivo `.env` , uma chave privada ou um token); `details.files` lista os caminhos ( `400` ). `TEMPLATE_SLUG_TAKEN` : O `id` do manifesto já está em uso entre os seus templates ou é uma palavra reservada. `TEMPLATE_PRIVATE_LIMIT_REACHED` : A conta já tem 5 templates privados. `PLAN_DOES_NOT_SUPPORT_CUSTOM_IMAGES` : O plano não pode criar imagens Docker personalizadas, então não pode criar templates. `IMAGE_NOT_FOUND` : Um serviço `image` se refere a uma imagem que não é sua ou não tem um build bem-sucedido. `WORKSPACE_OWNER_ONLY` : `workspace_id` foi enviado e quem chama não é o dono desse workspace."}]}}],"examples":{"example":{"value":{"response":{"id":"\u003cstring>","slug":"\u003cstring>","origin":"\u003cstring>","visibility":"\u003cstring>","name":{},"description":{},"category":"\u003cstring>","tags":["\u003cstring>"],"icon_url":{},"author_display":{},"links":{},"landing":{},"featured":true,"current_version":{},"services":[{}],"creates_stack":true,"ram_min_total":123,"byok":true,"required_plan":"\u003cstring>","code_view":true,"uses_count":{},"owner":{},"github":{},"inputs":[{}],"permissions":{},"outputs":[{}],"readme":{},"changelog":{},"account":{},"created_at":"\u003cstring>","updated_at":"\u003cstring>"},"code":"\u003cstring>"}}}}}},"deprecated":false}},"jsLinks":[],"subdomain":"vertracloud","siteName":"Vertra Cloud","title":"Criar um template privado - Vertra Cloud","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/endpoint/templates/create","matchLevel":1},"pt-BR":{"href":"/pt-br/api-reference/endpoint/templates/create","matchLevel":0},"es":{"href":"/es-es","matchLevel":4}}},"lastModified":"2026-10-30T22:45:17.631Z","gitLastModified":"2026-10-28T22:06:31.000Z","originalFileLocation":"pt-br/api-reference/endpoint/templates/create.mdx","locale":"pt-BR"},"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=\"Cria um template privado e a primeira versão dele a partir de um manifesto e do código de cada serviço, enviados como multipart form data.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Vertra Cloud\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_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/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Criar um template privado - Vertra Cloud\">\u003cmeta data-mint-head property=\"og:description\" content=\"Cria um template privado e a primeira versão dele a partir de um manifesto e do código de cada serviço, enviados como multipart form data.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Vertra Cloud Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://docs.vertracloud.app/images/og.png\">\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=\"Criar um template privado - Vertra Cloud\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Cria um template privado e a primeira versão dele a partir de um manifesto e do código de cada serviço, enviados como multipart form data.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://docs.vertracloud.app/images/og.png\">\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/vertracloud/pOhcCJNRkRisP0nY/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Vertra Cloud\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ff6100\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/pt-br/api-reference/endpoint/templates/create.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"pt-BR\" href=\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://docs.vertracloud.app/api-reference/endpoint/templates/create\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://docs.vertracloud.app/api-reference/endpoint/templates/create\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.vertracloud.app/#organization\",\"name\":\"Vertra Cloud\",\"url\":\"https://docs.vertracloud.app\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/vertracloud/2O7-bfMOIoy6MCUx/logo/light.svg?fit=max\u0026auto=format\u0026n=2O7-bfMOIoy6MCUx\u0026q=85\u0026s=2fcb392041b562c0aab2f07ebef0f12e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.vertracloud.app#website\",\"name\":\"Vertra Cloud\",\"url\":\"https://docs.vertracloud.app\",\"publisher\":{\"@id\":\"https://docs.vertracloud.app/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create#webpage\",\"url\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create\",\"name\":\"Criar um template privado\",\"description\":\"Cria um template privado e a primeira versão dele a partir de um manifesto e do código de cada serviço, enviados como multipart form data.\",\"dateModified\":\"2026-10-28T22:06:31.000Z\",\"isPartOf\":{\"@id\":\"https://docs.vertracloud.app#website\"},\"breadcrumb\":{\"@id\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/users/me\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Templates\",\"item\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/list\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Criar um template privado\",\"item\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create#apireference\",\"headline\":\"Criar um template privado\",\"name\":\"Criar um template privado\",\"description\":\"Cria um template privado e a primeira versão dele a partir de um manifesto e do código de cada serviço, enviados como multipart form data.\",\"url\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create\",\"mainEntityOfPage\":{\"@id\":\"https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/create#webpage\"},\"image\":\"https://docs.vertracloud.app/images/og.png\",\"dateModified\":\"2026-10-28T22:06:31.000Z\",\"publisher\":{\"@id\":\"https://docs.vertracloud.app/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.vertracloud.app#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Vertra Cloud\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Vertra Cloud","nav":{"global":null,"languages":[{"language":"en","default":true,"pages":[{"title":"en","href":"/api-reference/endpoint/templates/create"}]},{"language":"pt-BR","navbar":{"links":[{"href":"mailto:[email protected]","label":"Suporte"}],"primary":{"type":"button","label":"Dashboard","href":"https://vertracloud.app/dashboard"}},"tabs":[{"tab":"Primeiros passos","pages":[{"title":"Primeiros passos","href":"/pt-br"}]},{"tab":"Recursos","pages":[{"title":"Recursos","href":"/pt-br/applications"}]},{"tab":"Tutoriais","pages":[{"title":"Tutoriais","href":"/pt-br/tutorials/introduction"}]},{"tab":"Guias","pages":[{"title":"Guias","href":"/pt-br/guides/custom-domain"}]},{"tab":"Ferramentas","pages":[{"title":"Ferramentas","href":"/pt-br/cli"}]},{"tab":"Blob Storage","pages":[{"title":"Blob Storage","href":"/pt-br/blob/overview"}]},{"tab":"Templates","pages":[{"title":"Templates","href":"/pt-br/templates/overview"}]},{"tab":"Referência da API","groups":[{"group":"Visão geral","icon":"book","pages":[{"title":"Referência da API pública da Vertra Cloud","sidebarTitle":"API pública","href":"/pt-br/api-reference/introduction"},{"title":"Limites e cotas da plataforma na Vertra Cloud","sidebarTitle":"Limites","href":"/pt-br/api-reference/limitations"},{"title":"Códigos de erro da API da Vertra Cloud","sidebarTitle":"Códigos de erro","href":"/pt-br/api-reference/errors"}]},{"group":"Endpoints","icon":"plug","pages":[{"group":"Usuários","icon":"user","pages":[{"title":"Informações do usuário","sidebarTitle":"Dados do usuário","api":"GET https://api.vertracloud.app/v1/users/me","href":"/pt-br/api-reference/endpoint/users/me"},{"title":"Atualizar perfil do usuário","sidebarTitle":"Atualizar perfil","api":"PATCH https://api.vertracloud.app/v1/users/me","href":"/pt-br/api-reference/endpoint/users/update-me"},{"title":"Listar todos os snapshots da conta","sidebarTitle":"Todos os snapshots","api":"GET https://api.vertracloud.app/v1/users/snapshots","href":"/pt-br/api-reference/endpoint/users/snapshots"},{"title":"Organização pessoal de recursos","sidebarTitle":"Pastas e favoritos","href":"/pt-br/api-reference/endpoint/users/resource-organization"},{"title":"Listar sessões","sidebarTitle":"Sessões","api":"GET https://api.vertracloud.app/v1/users/me/sessions","href":"/pt-br/api-reference/endpoint/users/sessions"}]},{"group":"Status","icon":"heart-pulse","pages":[{"title":"Verificar status da infraestrutura","sidebarTitle":"Verificar status","api":"GET https://api.vertracloud.app/v1/status","href":"/pt-br/api-reference/endpoint/services/status"}]},{"group":"Aplicações","icon":"rocket","pages":[{"title":"Detalhes da aplicação","sidebarTitle":"Obter aplicação","api":"GET https://api.vertracloud.app/v1/apps/{id}","href":"/pt-br/api-reference/endpoint/apps/get"},{"title":"Status da aplicação","sidebarTitle":"Obter status da aplicação","api":"GET https://api.vertracloud.app/v1/apps/{id}/status","href":"/pt-br/api-reference/endpoint/apps/status"},{"title":"Status de todas as aplicações","sidebarTitle":"Status de todas as aplicações","api":"GET https://api.vertracloud.app/v1/apps/status","href":"/pt-br/api-reference/endpoint/apps/allstatus"},{"title":"Listar runtimes","sidebarTitle":"Runtimes","api":"GET https://api.vertracloud.app/v1/apps/runtimes","href":"/pt-br/api-reference/endpoint/apps/runtimes"},{"title":"Métricas da aplicação","sidebarTitle":"Métricas da aplicação","api":"GET https://api.vertracloud.app/v1/apps/{id}/metrics","href":"/pt-br/api-reference/endpoint/apps/metrics"},{"title":"Logs da aplicação em tempo real","sidebarTitle":"Logs em tempo real","api":"GET https://api.vertracloud.app/v1/apps/{id}/realtime","href":"/pt-br/api-reference/endpoint/apps/realtime"},{"title":"Baixar aplicação","sidebarTitle":"Baixar aplicação","api":"GET https://api.vertracloud.app/v1/apps/{id}/download","href":"/pt-br/api-reference/endpoint/apps/download"},{"title":"Logs da aplicação","sidebarTitle":"Logs da aplicação","api":"GET https://api.vertracloud.app/v1/apps/{id}/logs","href":"/pt-br/api-reference/endpoint/apps/logs"},{"title":"Criar aplicação","sidebarTitle":"Criar aplicação","api":"POST https://api.vertracloud.app/v1/apps","href":"/pt-br/api-reference/endpoint/apps/create"},{"title":"Criar aplicação a partir de imagem","sidebarTitle":"Criar a partir de imagem","api":"POST https://api.vertracloud.app/v1/apps/image","href":"/pt-br/api-reference/endpoint/apps/create-from-image"},{"title":"Iniciar aplicação","sidebarTitle":"Iniciar aplicação","api":"POST https://api.vertracloud.app/v1/apps/{id}/start","href":"/pt-br/api-reference/endpoint/apps/start"},{"title":"Reiniciar aplicação","sidebarTitle":"Reiniciar aplicação","api":"POST https://api.vertracloud.app/v1/apps/{id}/restart","href":"/pt-br/api-reference/endpoint/apps/restart"},{"title":"Parar aplicação","sidebarTitle":"Parar aplicação","api":"POST https://api.vertracloud.app/v1/apps/{id}/stop","href":"/pt-br/api-reference/endpoint/apps/stop"},{"title":"Atualizar configuração da aplicação","sidebarTitle":"Atualizar configuração","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/config","href":"/pt-br/api-reference/endpoint/apps/updateconfig"},{"title":"Excluir aplicação","sidebarTitle":"Excluir aplicação","api":"DELETE https://api.vertracloud.app/v1/apps/{id}","href":"/pt-br/api-reference/endpoint/apps/delete"},{"group":"Rede","icon":"globe","pages":[{"title":"Publicar aplicação na web","sidebarTitle":"Publicar / Despublicar","api":"POST https://api.vertracloud.app/v1/apps/{id}/network/publish","href":"/pt-br/api-reference/endpoint/apps/network/publish"},{"title":"Alterar subdomínio da aplicação","sidebarTitle":"Alterar subdomínio","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/network/subdomain","href":"/pt-br/api-reference/endpoint/apps/network/subdomain"},{"title":"Limpar cache","sidebarTitle":"Limpar cache","api":"POST https://api.vertracloud.app/v1/apps/{id}/network/purge-cache","href":"/pt-br/api-reference/endpoint/apps/network/purgecache"}]},{"group":"Domínios","icon":"link","pages":[{"title":"Listar domínios da aplicação","sidebarTitle":"Listar domínios","api":"GET https://api.vertracloud.app/v1/apps/{id}/domains","href":"/pt-br/api-reference/endpoint/apps/domains/list"},{"title":"Adicionar domínio à aplicação","sidebarTitle":"Adicionar domínio","api":"POST https://api.vertracloud.app/v1/apps/{id}/domains","href":"/pt-br/api-reference/endpoint/apps/domains/create"},{"title":"Atualizar domínio da aplicação","sidebarTitle":"Atualizar domínio","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}","href":"/pt-br/api-reference/endpoint/apps/domains/update"},{"title":"Remover domínio da aplicação","sidebarTitle":"Remover domínio","api":"DELETE https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}","href":"/pt-br/api-reference/endpoint/apps/domains/delete"},{"title":"Registros DNS do domínio","sidebarTitle":"Registros DNS do domínio","api":"GET https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}/dns","href":"/pt-br/api-reference/endpoint/apps/domains/dns"},{"title":"Configurar domínio automaticamente","sidebarTitle":"Configurar automaticamente","api":"POST https://api.vertracloud.app/v1/apps/{id}/domains/{domain_id}/connect","href":"/pt-br/api-reference/endpoint/apps/domains/connect"}]},{"group":"Gerenciador de arquivos","icon":"folder-open","pages":[{"title":"Obter conteúdo de arquivo da aplicação","sidebarTitle":"Obter conteúdo do arquivo","api":"GET https://api.vertracloud.app/v1/apps/{id}/files/content","href":"/pt-br/api-reference/endpoint/apps/filemanager/content"},{"title":"Obter arquivos da aplicação","sidebarTitle":"Obter arquivos","api":"GET https://api.vertracloud.app/v1/apps/{id}/files","href":"/pt-br/api-reference/endpoint/apps/filemanager/files"},{"title":"Obter árvore de arquivos da aplicação","sidebarTitle":"Obter árvore de arquivos","api":"GET https://api.vertracloud.app/v1/apps/{id}/files/tree","href":"/pt-br/api-reference/endpoint/apps/filemanager/tree"},{"title":"Enviar arquivos para a aplicação","sidebarTitle":"Enviar arquivos","api":"POST https://api.vertracloud.app/v1/apps/{id}/files/upload","href":"/pt-br/api-reference/endpoint/apps/filemanager/upload"},{"title":"Excluir arquivo ou pasta da aplicação","sidebarTitle":"Excluir arquivo ou pasta","api":"DELETE https://api.vertracloud.app/v1/apps/{id}/files","href":"/pt-br/api-reference/endpoint/apps/filemanager/delete"},{"title":"Mover arquivo ou pasta da aplicação","sidebarTitle":"Mover arquivo ou pasta","api":"PATCH https://api.vertracloud.app/v1/apps/{id}/files","href":"/pt-br/api-reference/endpoint/apps/filemanager/move"},{"title":"Criar ou atualizar arquivo ou pasta da aplicação","sidebarTitle":"Criar/atualizar arquivo ou pasta","api":"PUT https://api.vertracloud.app/v1/apps/{id}/files","href":"/pt-br/api-reference/endpoint/apps/filemanager/save"}]},{"group":"Variáveis de ambiente","icon":"key","pages":[{"title":"Obter variáveis de ambiente da aplicação","sidebarTitle":"Obter variáveis de ambiente","api":"GET https://api.vertracloud.app/v1/apps/{id}/envs","href":"/pt-br/api-reference/endpoint/apps/enviroments/get"},{"title":"Excluir uma variável de ambiente da aplicação","sidebarTitle":"Excluir variável de ambiente","api":"DELETE https://api.vertracloud.app/v1/apps/{id}/envs/{envId}","href":"/pt-br/api-reference/endpoint/apps/enviroments/delete"},{"title":"Criar ou editar variáveis de ambiente da aplicação","sidebarTitle":"Criar/editar variáveis de ambiente","api":"POST https://api.vertracloud.app/v1/apps/{id}/envs","href":"/pt-br/api-reference/endpoint/apps/enviroments/createOrEdit"}]},{"group":"Snapshots","icon":"camera","pages":[{"title":"Obter snapshots da aplicação","sidebarTitle":"Obter snapshots","api":"GET https://api.vertracloud.app/v1/users/{id}/snapshots","href":"/pt-br/api-reference/endpoint/apps/snapshots/getall"},{"title":"Criar snapshot da aplicação","sidebarTitle":"Criar snapshot","api":"POST https://api.vertracloud.app/v1/users/{id}/snapshots","href":"/pt-br/api-reference/endpoint/apps/snapshots/create"},{"title":"Restaurar snapshot da aplicação","sidebarTitle":"Restaurar snapshot","api":"POST https://api.vertracloud.app/v1/users/{id}/snapshots/{snapshot_id}/restore","href":"/pt-br/api-reference/endpoint/apps/snapshots/restore"},{"title":"Baixar snapshot da aplicação","sidebarTitle":"Baixar snapshot","api":"GET https://api.vertracloud.app/v1/users/{id}/snapshots/{snapshot_id}/download","href":"/pt-br/api-reference/endpoint/apps/snapshots/download"}]},{"group":"Deploys","icon":"code-branch","pages":[{"title":"Obter URL do webhook de deploy","sidebarTitle":"URL do webhook","api":"GET https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook","href":"/pt-br/api-reference/endpoint/apps/deploys/webhookurl"},{"title":"Obter deploys recentes","sidebarTitle":"Deploys recentes","api":"GET https://api.vertracloud.app/v1/apps/{app_id}/deploys","href":"/pt-br/api-reference/endpoint/apps/deploys/recents"},{"title":"Excluir webhook de deploy","sidebarTitle":"Excluir webhook","api":"DELETE https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook","href":"/pt-br/api-reference/endpoint/apps/deploys/delete"},{"title":"Criar webhook de deploy","sidebarTitle":"Criar webhook","api":"POST https://api.vertracloud.app/v1/apps/{app_id}/deploys/webhook","href":"/pt-br/api-reference/endpoint/apps/deploys/create"}]},{"group":"Releases","icon":"clock-rotate-left","pages":[{"title":"Listar releases da aplicação","sidebarTitle":"Listar releases","api":"GET https://api.vertracloud.app/v1/apps/{id}/releases","href":"/pt-br/api-reference/endpoint/apps/releases/list"},{"title":"Obter log da release da aplicação","sidebarTitle":"Obter log da release","api":"GET https://api.vertracloud.app/v1/apps/{id}/releases/{release_id}/log","href":"/pt-br/api-reference/endpoint/apps/releases/log"},{"title":"Pré-visualizar rollback da aplicação","sidebarTitle":"Pré-visualizar rollback","api":"GET https://api.vertracloud.app/v1/apps/{id}/releases/{release_id}/rollback","href":"/pt-br/api-reference/endpoint/apps/releases/rollback-preview"},{"title":"Fazer rollback da aplicação para uma release","sidebarTitle":"Fazer rollback","api":"POST https://api.vertracloud.app/v1/apps/{id}/releases/{release_id}/rollback","href":"/pt-br/api-reference/endpoint/apps/releases/rollback"}]}]},{"group":"Imagens Docker","icon":"docker","pages":[{"title":"Listar imagens","sidebarTitle":"Listar imagens","api":"GET https://api.vertracloud.app/v1/images","href":"/pt-br/api-reference/endpoint/images/list"},{"title":"Obter imagem","sidebarTitle":"Obter imagem","api":"GET https://api.vertracloud.app/v1/images/{image_id}","href":"/pt-br/api-reference/endpoint/images/get"},{"title":"Verificar Dockerfile","sidebarTitle":"Verificar Dockerfile","api":"POST https://api.vertracloud.app/v1/images/check","href":"/pt-br/api-reference/endpoint/images/check"},{"title":"Criar imagem","sidebarTitle":"Criar imagem","api":"POST https://api.vertracloud.app/v1/images","href":"/pt-br/api-reference/endpoint/images/create"},{"title":"Atualizar imagem","sidebarTitle":"Atualizar imagem","api":"PATCH https://api.vertracloud.app/v1/images/{image_id}","href":"/pt-br/api-reference/endpoint/images/update"},{"title":"Reconstruir imagem","sidebarTitle":"Reconstruir imagem","api":"PUT https://api.vertracloud.app/v1/images/{image_id}","href":"/pt-br/api-reference/endpoint/images/rebuild"},{"title":"Listar versões da imagem","sidebarTitle":"Listar versões","api":"GET https://api.vertracloud.app/v1/images/{image_id}/versions","href":"/pt-br/api-reference/endpoint/images/versions"},{"title":"Logs de build da imagem","sidebarTitle":"Logs de build","api":"GET https://api.vertracloud.app/v1/images/{image_id}/logs","href":"/pt-br/api-reference/endpoint/images/logs"},{"title":"Baixar o contexto da imagem","sidebarTitle":"Baixar contexto","api":"GET https://api.vertracloud.app/v1/images/{image_id}/context","href":"/pt-br/api-reference/endpoint/images/context"},{"title":"Vincular imagem ao GitHub","sidebarTitle":"Vincular GitHub","api":"PUT https://api.vertracloud.app/v1/images/{image_id}/github","href":"/pt-br/api-reference/endpoint/images/github-link"},{"title":"Desvincular imagem do GitHub","sidebarTitle":"Desvincular GitHub","api":"DELETE https://api.vertracloud.app/v1/images/{image_id}/github","href":"/pt-br/api-reference/endpoint/images/github-unlink"},{"title":"Excluir imagem","sidebarTitle":"Excluir imagem","api":"DELETE https://api.vertracloud.app/v1/images/{image_id}","href":"/pt-br/api-reference/endpoint/images/delete"}]},{"group":"Templates","icon":"shapes","pages":[{"title":"Listar templates","sidebarTitle":"Listar templates","api":"GET https://api.vertracloud.app/v1/templates","href":"/pt-br/api-reference/endpoint/templates/list"},{"title":"Listar categorias de templates","sidebarTitle":"Listar categorias","api":"GET https://api.vertracloud.app/v1/templates/categories","href":"/pt-br/api-reference/endpoint/templates/categories"},{"title":"Obter template","sidebarTitle":"Obter template","api":"GET https://api.vertracloud.app/v1/templates/{template_id}","href":"/pt-br/api-reference/endpoint/templates/get"},{"title":"Listar versões do template","sidebarTitle":"Listar versões","api":"GET https://api.vertracloud.app/v1/templates/{template_id}/versions","href":"/pt-br/api-reference/endpoint/templates/versions"},{"title":"Validar manifesto de template","sidebarTitle":"Validar manifesto","api":"POST https://api.vertracloud.app/v1/templates/validate","href":"/pt-br/api-reference/endpoint/templates/validate"},{"title":"Fazer deploy de template","sidebarTitle":"Fazer deploy de template","api":"POST https://api.vertracloud.app/v1/templates/{template_id}/deploy","href":"/pt-br/api-reference/endpoint/templates/deploy"},{"title":"Obter job de deploy de template","sidebarTitle":"Obter job de deploy","api":"GET https://api.vertracloud.app/v1/template-deploys/{deploy_id}","href":"/pt-br/api-reference/endpoint/templates/deploy-status"},{"title":"Transmitir os eventos de deploy de template","sidebarTitle":"Eventos de deploy","api":"GET https://api.vertracloud.app/v1/template-deploys/{deploy_id}/events","href":"/pt-br/api-reference/endpoint/templates/deploy-events"},{"title":"Obter informações de atualização do template","sidebarTitle":"Informações de atualização","api":"GET https://api.vertracloud.app/v1/apps/{id}/template/update","href":"/pt-br/api-reference/endpoint/templates/update-info"},{"title":"Atualizar um template ou mover uma aplicação para a versão mais recente","sidebarTitle":"Atualizar template","api":"POST https://api.vertracloud.app/v1/apps/{id}/template/update","description":"Inicia um job de atualização que move uma aplicação ou stack para a versão mais recente do seu template, tira um snapshot de segurança antes e volta atrás se um passo falhar.","href":"/pt-br/api-reference/endpoint/templates/update"},{"title":"Criar um template privado","sidebarTitle":"Criar template","api":"POST https://api.vertracloud.app/v1/templates","href":"/pt-br/api-reference/endpoint/templates/create"},{"title":"Salvar um app como template","sidebarTitle":"Criar a partir de app","api":"POST https://api.vertracloud.app/v1/templates/from-app/{app_id}","description":"Salva um dos seus apps como template privado, escolhendo quais variáveis viram perguntas e quais arquivos entram.","href":"/pt-br/api-reference/endpoint/templates/create-from-app"},{"title":"Salvar uma stack como template","sidebarTitle":"Criar a partir de stack","api":"POST https://api.vertracloud.app/v1/templates/from-stack/{stack_id}","href":"/pt-br/api-reference/endpoint/templates/create-from-stack"},{"title":"Revisar o rascunho de um template a partir de uma aplicação ou stack","sidebarTitle":"Revisar rascunho","api":"GET https://api.vertracloud.app/v1/templates/from-app/{app_id}/draft","href":"/pt-br/api-reference/endpoint/templates/draft"},{"title":"Publicar uma nova versão de um template privado","sidebarTitle":"Nova versão","api":"POST https://api.vertracloud.app/v1/templates/{template_id}/versions","href":"/pt-br/api-reference/endpoint/templates/new-version"},{"title":"Excluir um template privado","sidebarTitle":"Excluir template","api":"DELETE https://api.vertracloud.app/v1/templates/{template_id}","href":"/pt-br/api-reference/endpoint/templates/delete"},{"title":"Vincular um template privado ao GitHub","sidebarTitle":"Vincular GitHub","api":"PUT https://api.vertracloud.app/v1/templates/{template_id}/github","href":"/pt-br/api-reference/endpoint/templates/github-link"},{"title":"Desvincular um template privado do GitHub","sidebarTitle":"Desvincular GitHub","api":"DELETE https://api.vertracloud.app/v1/templates/{template_id}/github","href":"/pt-br/api-reference/endpoint/templates/github-unlink"},{"title":"Desvincular uma aplicação ou stack de um template","sidebarTitle":"Desvincular","api":"POST https://api.vertracloud.app/v1/apps/{id}/template/detach","href":"/pt-br/api-reference/endpoint/templates/detach"},{"group":"Links de compartilhamento","icon":"share-nodes","pages":[{"title":"Visualizar um link de compartilhamento de template","sidebarTitle":"Visualizar link","api":"GET https://api.vertracloud.app/v1/share/templates/{token}","href":"/pt-br/api-reference/endpoint/templates/share-links/preview"},{"title":"Fazer deploy a partir de um link de uso","sidebarTitle":"Usar link","api":"POST https://api.vertracloud.app/v1/share/templates/{token}/deploy","href":"/pt-br/api-reference/endpoint/templates/share-links/deploy"},{"title":"Copiar um template a partir de um link de cópia completa","sidebarTitle":"Copiar pelo link","api":"POST https://api.vertracloud.app/v1/share/templates/{token}/copy","href":"/pt-br/api-reference/endpoint/templates/share-links/copy"},{"title":"Denunciar um template","sidebarTitle":"Denunciar template","api":"POST https://api.vertracloud.app/v1/share/templates/{token}/report","href":"/pt-br/api-reference/endpoint/templates/share-links/report"},{"title":"Criar um link de compartilhamento para um template","sidebarTitle":"Criar link","api":"POST https://api.vertracloud.app/v1/templates/{template_id}/share-links","href":"/pt-br/api-reference/endpoint/templates/share-links/create"},{"title":"Listar os links de compartilhamento de um template","sidebarTitle":"Listar links","api":"GET https://api.vertracloud.app/v1/templates/{template_id}/share-links","href":"/pt-br/api-reference/endpoint/templates/share-links/list"},{"title":"Revogar um link de compartilhamento","sidebarTitle":"Revogar link","api":"DELETE https://api.vertracloud.app/v1/templates/{template_id}/share-links/{link_id}","href":"/pt-br/api-reference/endpoint/templates/share-links/revoke"}]}]},{"group":"Stacks","icon":"layer-group","pages":[{"title":"Listar stacks","sidebarTitle":"Listar stacks","api":"GET https://api.vertracloud.app/v1/stacks","href":"/pt-br/api-reference/endpoint/stacks/list"},{"title":"Obter stack","sidebarTitle":"Obter stack","api":"GET https://api.vertracloud.app/v1/stacks/{stack_id}","href":"/pt-br/api-reference/endpoint/stacks/get"},{"title":"Criar stack","sidebarTitle":"Criar stack","api":"POST https://api.vertracloud.app/v1/stacks","href":"/pt-br/api-reference/endpoint/stacks/create"},{"title":"Atualizar stack","sidebarTitle":"Atualizar stack","api":"PATCH https://api.vertracloud.app/v1/stacks/{stack_id}","href":"/pt-br/api-reference/endpoint/stacks/update"},{"title":"Excluir stack","sidebarTitle":"Excluir stack","api":"DELETE https://api.vertracloud.app/v1/stacks/{stack_id}","href":"/pt-br/api-reference/endpoint/stacks/delete"},{"title":"Transformar pasta em stack","sidebarTitle":"Transformar em stack","api":"POST https://api.vertracloud.app/v1/stacks/transform","href":"/pt-br/api-reference/endpoint/stacks/transform"},{"title":"Obter código de conexão da stack","sidebarTitle":"Código de conexão","api":"GET https://api.vertracloud.app/v1/stacks/{stack_id}/connection","href":"/pt-br/api-reference/endpoint/stacks/connection"},{"title":"Definir modo de rede da stack","sidebarTitle":"Modo de rede","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/network-mode","href":"/pt-br/api-reference/endpoint/stacks/network-mode"},{"group":"Membros","icon":"user-group","pages":[{"title":"Adicionar membro à stack","sidebarTitle":"Adicionar membro","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/members","href":"/pt-br/api-reference/endpoint/stacks/members/add"},{"title":"Remover membro da stack","sidebarTitle":"Remover membro","api":"DELETE https://api.vertracloud.app/v1/stacks/{stack_id}/members/{resource_type}/{resource_id}","href":"/pt-br/api-reference/endpoint/stacks/members/remove"}]},{"group":"Conexões","icon":"arrows-left-right","pages":[{"title":"Criar conexão da stack","sidebarTitle":"Criar conexão","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/bindings","href":"/pt-br/api-reference/endpoint/stacks/bindings/create"},{"title":"Excluir conexão da stack","sidebarTitle":"Excluir conexão","api":"DELETE https://api.vertracloud.app/v1/stacks/{stack_id}/bindings/{binding_id}","href":"/pt-br/api-reference/endpoint/stacks/bindings/delete"},{"title":"Listar conexões da stack","sidebarTitle":"Listar conexões","api":"GET https://api.vertracloud.app/v1/stacks/{stack_id}/bindings","href":"/pt-br/api-reference/endpoint/stacks/bindings/list"},{"title":"Atualizar conexão da stack","sidebarTitle":"Atualizar conexão","api":"PATCH https://api.vertracloud.app/v1/stacks/{stack_id}/bindings/{binding_id}","href":"/pt-br/api-reference/endpoint/stacks/bindings/update"}]},{"group":"Bancos de dados","icon":"database","pages":[{"title":"Adicionar banco de dados à stack","sidebarTitle":"Adicionar banco de dados","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/databases","href":"/pt-br/api-reference/endpoint/stacks/databases/create"}]},{"group":"Blob","icon":"box-archive","pages":[{"title":"Adicionar pasta do Blob à stack","sidebarTitle":"Adicionar pasta do Blob","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/blob","href":"/pt-br/api-reference/endpoint/stacks/blob/create"}]},{"group":"Snapshots","icon":"camera","pages":[{"title":"Criar snapshot da stack","sidebarTitle":"Criar snapshot","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/snapshots","href":"/pt-br/api-reference/endpoint/stacks/snapshots/create"},{"title":"Listar snapshots da stack","sidebarTitle":"Listar snapshots","api":"GET https://api.vertracloud.app/v1/stacks/{stack_id}/snapshots","href":"/pt-br/api-reference/endpoint/stacks/snapshots/list"},{"title":"Restaurar snapshot da stack","sidebarTitle":"Restaurar snapshot","api":"POST https://api.vertracloud.app/v1/stacks/{stack_id}/snapshots/{snapshot_id}/restore","href":"/pt-br/api-reference/endpoint/stacks/snapshots/restore"}]}]},{"group":"Bancos de dados","icon":"database","pages":[{"title":"Criar banco de dados","sidebarTitle":"Criar banco de dados","api":"POST https://api.vertracloud.app/v1/databases","href":"/pt-br/api-reference/endpoint/databases/create"},{"title":"Obter banco de dados pelo ID","sidebarTitle":"Obter banco de dados","api":"GET https://api.vertracloud.app/v1/databases/{id}","href":"/pt-br/api-reference/endpoint/databases/get"},{"title":"Listar versões de banco de dados","sidebarTitle":"Versões","api":"GET https://api.vertracloud.app/v1/databases/versions","href":"/pt-br/api-reference/endpoint/databases/versions"},{"title":"Obter status do banco de dados pelo ID","sidebarTitle":"Obter status","api":"GET https://api.vertracloud.app/v1/databases/{id}/status","href":"/pt-br/api-reference/endpoint/databases/status"},{"title":"Obter o status de todos os bancos de dados","sidebarTitle":"Status de todos os bancos","api":"GET https://api.vertracloud.app/v1/databases/status","href":"/pt-br/api-reference/endpoint/databases/allstatus"},{"title":"Obter métricas do banco de dados pelo ID","sidebarTitle":"Obter métricas","api":"GET https://api.vertracloud.app/v1/databases/{id}/metrics","href":"/pt-br/api-reference/endpoint/databases/metrics"},{"title":"Redefinir banco de dados","sidebarTitle":"Redefinir banco de dados","api":"POST https://api.vertracloud.app/v1/databases/{id}/reset","href":"/pt-br/api-reference/endpoint/databases/reset"},{"title":"Iniciar banco de dados","sidebarTitle":"Iniciar banco de dados","api":"POST https://api.vertracloud.app/v1/databases/{id}/start","href":"/pt-br/api-reference/endpoint/databases/start"},{"title":"Parar banco de dados","sidebarTitle":"Parar banco de dados","api":"POST https://api.vertracloud.app/v1/databases/{id}/stop","href":"/pt-br/api-reference/endpoint/databases/stop"},{"title":"Atualizar banco de dados","sidebarTitle":"Atualizar banco de dados","api":"PUT https://api.vertracloud.app/v1/databases/{id}","href":"/pt-br/api-reference/endpoint/databases/update"},{"title":"Excluir banco de dados","sidebarTitle":"Excluir banco de dados","api":"DELETE https://api.vertracloud.app/v1/databases/{id}","href":"/pt-br/api-reference/endpoint/databases/delete"},{"group":"Credenciais","icon":"lock","pages":[{"title":"Obter certificado do banco de dados","sidebarTitle":"Obter certificado","api":"GET https://api.vertracloud.app/v1/databases/{id}/credentials/certificate","href":"/pt-br/api-reference/endpoint/databases/credentials/get"},{"title":"Redefinir certificados do banco de dados","sidebarTitle":"Redefinir certificados","api":"POST https://api.vertracloud.app/v1/databases/{id}/credentials/certificate/reset","href":"/pt-br/api-reference/endpoint/databases/credentials/reset"},{"title":"Redefinir a senha do banco de dados","sidebarTitle":"Redefinir senha","api":"POST https://api.vertracloud.app/v1/databases/{id}/credentials/reset","href":"/pt-br/api-reference/endpoint/databases/credentials/resetpassword"}]}]},{"group":"Workspaces","icon":"users","pages":[{"title":"Listar workspaces","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces","href":"/pt-br/api-reference/endpoint/workspaces/get-all"},{"title":"Obter workspace","sidebarTitle":"Obter","api":"GET https://api.vertracloud.app/v1/workspaces/{id}","href":"/pt-br/api-reference/endpoint/workspaces/get"},{"title":"Criar workspace","sidebarTitle":"Criar","api":"POST https://api.vertracloud.app/v1/workspaces","href":"/pt-br/api-reference/endpoint/workspaces/create"},{"title":"Atualizar workspace","sidebarTitle":"Atualizar","api":"PUT https://api.vertracloud.app/v1/workspaces/{id}","href":"/pt-br/api-reference/endpoint/workspaces/update"},{"title":"Apagar workspace","sidebarTitle":"Apagar","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}","href":"/pt-br/api-reference/endpoint/workspaces/delete"},{"group":"Membros","icon":"user-group","pages":[{"title":"Listar membros","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/members","href":"/pt-br/api-reference/endpoint/workspaces/members/list"},{"title":"Atualizar membro","sidebarTitle":"Atualizar","api":"PUT https://api.vertracloud.app/v1/workspaces/{id}/members/{user_id}","href":"/pt-br/api-reference/endpoint/workspaces/members/update"},{"title":"Remover membro","sidebarTitle":"Remover","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/members/{user_id}","href":"/pt-br/api-reference/endpoint/workspaces/members/remove"}]},{"group":"Cargos","icon":"id-badge","pages":[{"title":"Listar papéis","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/roles","href":"/pt-br/api-reference/endpoint/workspaces/roles/list"},{"title":"Criar papel","sidebarTitle":"Criar","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/roles","href":"/pt-br/api-reference/endpoint/workspaces/roles/create"},{"title":"Atualizar papel","sidebarTitle":"Atualizar","api":"PUT https://api.vertracloud.app/v1/workspaces/{id}/roles/{role_id}","href":"/pt-br/api-reference/endpoint/workspaces/roles/update"},{"title":"Apagar papel","sidebarTitle":"Apagar","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/roles/{role_id}","href":"/pt-br/api-reference/endpoint/workspaces/roles/delete"}]},{"group":"Convites","icon":"envelope","pages":[{"title":"Listar convites","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/invites","href":"/pt-br/api-reference/endpoint/workspaces/invites/list"},{"title":"Revogar convite","sidebarTitle":"Revogar","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/invites/{invite_id}","href":"/pt-br/api-reference/endpoint/workspaces/invites/revoke"},{"title":"Visualizar convite","sidebarTitle":"Visualizar","api":"GET https://api.vertracloud.app/v1/workspaces/invites/{token}","href":"/pt-br/api-reference/endpoint/workspaces/invites/preview"},{"title":"Aceitar convite","sidebarTitle":"Aceitar","api":"POST https://api.vertracloud.app/v1/workspaces/invites/{token}/accept","href":"/pt-br/api-reference/endpoint/workspaces/invites/accept"},{"title":"Recusar convite","sidebarTitle":"Recusar","api":"POST https://api.vertracloud.app/v1/workspaces/invites/{token}/decline","href":"/pt-br/api-reference/endpoint/workspaces/invites/decline"}]},{"group":"Aplicações e bancos","icon":"window-maximize","pages":[{"title":"Vincular aplicação","sidebarTitle":"Vincular app","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}","href":"/pt-br/api-reference/endpoint/workspaces/links/add-app"},{"title":"Desvincular aplicação","sidebarTitle":"Desvincular app","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/apps/{app_id}","href":"/pt-br/api-reference/endpoint/workspaces/links/remove-app"},{"title":"Vincular banco de dados","sidebarTitle":"Vincular banco de dados","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/databases/{db_id}","href":"/pt-br/api-reference/endpoint/workspaces/links/add-database"},{"title":"Desvincular banco de dados","sidebarTitle":"Desvincular banco de dados","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/databases/{db_id}","href":"/pt-br/api-reference/endpoint/workspaces/links/remove-database"},{"title":"Vincular template ou stack","sidebarTitle":"Vincular template ou stack","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/templates/{template_id}","href":"/pt-br/api-reference/endpoint/workspaces/links/add-template"},{"title":"Desvincular template ou stack","sidebarTitle":"Desvincular template ou stack","api":"DELETE https://api.vertracloud.app/v1/workspaces/{id}/templates/{template_id}","href":"/pt-br/api-reference/endpoint/workspaces/links/remove-template"}]},{"group":"Organização de recursos","icon":"folder-tree","pages":[{"title":"Organização de recursos do workspace","sidebarTitle":"Pastas e favoritos","href":"/pt-br/api-reference/endpoint/workspaces/resource-organization"}]},{"group":"Solicitações de ação","icon":"square-check","pages":[{"title":"Listar solicitações de ação","sidebarTitle":"Listar","api":"GET https://api.vertracloud.app/v1/workspaces/{id}/action-requests","href":"/pt-br/api-reference/endpoint/workspaces/action-requests/list"},{"title":"Criar solicitação de ação","sidebarTitle":"Criar","api":"POST https://api.vertracloud.app/v1/workspaces/{id}/action-requests","href":"/pt-br/api-reference/endpoint/workspaces/action-requests/create"}]}]},{"group":"Cobrança","icon":"credit-card","pages":[{"title":"Listar pedidos","sidebarTitle":"Listar pedidos","api":"GET https://api.vertracloud.app/v1/orders","href":"/pt-br/api-reference/endpoint/billing/list-orders"},{"title":"Obter status do pedido","sidebarTitle":"Status do pedido","api":"GET https://api.vertracloud.app/v1/orders/{orderId}/status","href":"/pt-br/api-reference/endpoint/billing/order-status"},{"title":"Criar pedido","sidebarTitle":"Criar pedido","api":"POST https://api.vertracloud.app/v1/orders","href":"/pt-br/api-reference/endpoint/billing/create-order"},{"title":"Iniciar pagamento via PIX","sidebarTitle":"Iniciar PIX","api":"POST https://api.vertracloud.app/v1/orders/{orderId}/initiate/pix","href":"/pt-br/api-reference/endpoint/billing/initiate-pix"},{"title":"Obter dados de cobrança","sidebarTitle":"Obter dados de cobrança","api":"GET https://api.vertracloud.app/v1/users/me/billing","href":"/pt-br/api-reference/endpoint/billing/get-billing-details"},{"title":"Atualizar dados de cobrança","sidebarTitle":"Atualizar dados de cobrança","api":"PUT https://api.vertracloud.app/v1/users/me/billing","href":"/pt-br/api-reference/endpoint/billing/update-billing-details"}]},{"group":"Resgate","icon":"ticket","pages":[{"title":"Resgatar código","sidebarTitle":"Resgatar código","api":"POST https://api.vertracloud.app/v1/redeem/{code}","href":"/pt-br/api-reference/endpoint/redeem/redeem"}]}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/pt-br/changelog"}]}],"global":{"anchors":[{"anchor":"Documentação","icon":"book-open-cover","href":"https://docs.vertracloud.app/pt-br"},{"anchor":"Discord","icon":"discord","href":"https://discord.gg/vertracloud"},{"anchor":"Status","icon":"heart-pulse","href":"https://status.vertracloud.app"}]}},{"language":"es","navbar":{"links":[{"href":"mailto:[email protected]","label":"Soporte"}],"primary":{"type":"button","label":"Panel","href":"https://vertracloud.app/dashboard"}},"pages":[{"title":"es","href":"/es-es"}]}]},"basePath":"","title":"Criar um template privado - Vertra Cloud","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","2b790eda92","b0f84f53ff"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","Page-DSVu9Ucl.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js"]}