> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vertracloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Obter informações de atualização do template

> Mostra o que atualizar uma aplicação ou stack para a versão mais recente do seu template faria e se algo bloqueia, sem alterar nada.

Informa se existe uma versão mais nova do template para uma aplicação ou uma stack e o que a atualização mudaria. Nada é gravado. Há duas rotas com a mesma resposta: `GET /v1/apps/{id}/template/update` para uma aplicação e `GET /v1/stacks/{stack_id}/template/update` para uma stack. Com uma chave de API, o escopo é `templates:read`. Membros do workspace que podem ler o recurso podem chamá-la; atualizar é para o dono (veja [Atualizar template](https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/update.md)).

Uma aplicação que faz parte de uma stack criada a partir de um template responde pela **stack inteira**, com todos os serviços juntos. Uma aplicação avulsa, ou uma em uma stack montada à mão, responde sozinha. As atualizações nunca são automáticas: elas só rodam quando você pede. Veja [Atualizações e rollback](https://docs.vertracloud.app/pt-br/templates/use/updates-and-rollback.md).

**id** `string` *required*

O ID da aplicação (na rota `/v1/apps/{id}/template/update`).

**stack\_id** `string` *required*

O ID da stack (na rota `/v1/stacks/{stack_id}/template/update`).

### Resposta

**response** `object`

O que a atualização faria.

**Mostrar objeto**

**update\_available** `boolean`

`true` quando existe uma versão mais nova e nada estrutural bloqueia a atualização. Fica `false` quando `blocked` traz um motivo estrutural.

**current\_version** `string`

A versão que o recurso roda agora.

**latest\_version** `string | null`

A versão pronta mais nova, ou `null` quando não há uma mais nova ou a atualização está bloqueada estruturalmente.

**security** `boolean`

`true` quando a nova versão, ou uma intermediária, é uma release de segurança.

**changelog** `object | null`

O que mudou na nova versão, como um texto por idioma, ou `null`.

**new\_inputs** `object[]`

As perguntas obrigatórias que a nova versão acrescenta, no mesmo formato de `inputs` em [Obter template](https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/get.md). Apenas perguntas sem valor padrão que a plataforma não gera. Responda-as em `inputs` ao atualizar. Perguntas que você já respondeu não são feitas de novo.

**added\_services** `object[]`

Os serviços que a nova versão acrescenta, no formato usado em [Listar templates](https://docs.vertracloud.app/pt-br/api-reference/endpoint/templates/list.md). Eles são criados na mesma operação.

**removed\_services** `string[]`

Os IDs dos serviços que a nova versão remove e que existem na sua conta. Eles não são apagados: saem do template e você pode apagá-los por conta própria.

**ram\_changes** `object[]`

Serviços cuja memória mínima subiu acima do que eles têm. Cada um traz `service_id`, `current` e `required_min`, em MB. Envie a nova memória em `ram` ao atualizar.

**free\_ram** `integer`

A memória livre na sua conta, em MB.

**opens\_permissions** `boolean`

`true` quando a nova versão abre permissões que a aplicação tinha fechadas, por exemplo quando um template fechado passa a ser aberto. Permissões nunca são tornadas mais restritas por uma atualização.

**rollback\_with\_data** `boolean`

`true` quando voltar da nova versão sempre leva os dados junto: o template migra os dados ao atualizar, então reverter só o código é recusado e você restaura o snapshot da atualização.

**blocked** `object | null`

`null` quando a atualização pode seguir. Caso contrário, o motivo pelo qual não pode.

**Mostrar objeto**

**reason** `string`

`no_new_version` (já está na versão mais recente), `detached` (saiu do template), `template_removed` (o autor removeu o template, ou ele está descontinuado), `link_revoked` (o link de compartilhamento de onde ele veio foi revogado), `app_building` (a aplicação está em build), `deploy_in_progress` (outro deploy ou atualização do mesmo alvo está rodando), `plan`, `ram` ou `image_slots`.

**details** `object`

Números por trás do motivo. Para `plan`, `details.reason` é um de `no_plan`, `min_plan`, `web_publish`, `image_plan`, `blob_plan`, `max_apps` ou `max_databases`; para `ram` traz a memória necessária e a livre; para `template_removed`, `details.deprecated` diferencia um template descontinuado de um removido.

```bash cURL theme={null}
curl https://api.vertracloud.app/v1/apps/9d2c7e41-60fa-4b13-8e75-c1a4b3f08d26/template/update \
  -H "Authorization: Bearer $VERTRA_API_KEY"
```

```json Response theme={null}
{
  "response": {
    "update_available": true,
    "current_version": "1.0.0",
    "latest_version": "1.1.0",
    "security": true,
    "changelog": { "en": "Updated discord.js to a release with a security fix." },
    "new_inputs": [],
    "added_services": [],
    "removed_services": [],
    "ram_changes": [{ "service_id": "app", "current": 256, "required_min": 384 }],
    "free_ram": 1024,
    "opens_permissions": false,
    "rollback_with_data": false,
    "blocked": null
  }
}
```

### Respostas de erro

**code** `string`

O código de erro que indica o motivo da falha. Valores possíveis:

* `VALIDATION_ERROR`: O ID não é válido (`400`).
* `API_KEY_SCOPE_DENIED`: A chave de API não tem o escopo `templates:read` (`403`).
* `APP_NOT_FOUND`: A aplicação não existe ou não é sua (`404`).
* `STACK_NOT_FOUND`: A stack não existe ou não é sua (`404`).
* `TEMPLATE_NOT_FOUND`: A aplicação ou a stack não veio de um template (`404`).
* `INTERNAL_SERVER_ERROR`: Falha inesperada (`500`).

```json Error Response theme={null}
{
  "code": "APP_NOT_FOUND"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.