# Azion CLI application

Os comandos `application` da Azion CLI criam, listam, descrevem, atualizam e excluem [Applications](/pt-br/documentacao/plataforma/applications/), o recurso que guarda as configurações de entrega de um site ou de uma API, como cache settings, regras e function instances. Esses comandos gerenciam o recurso e não fazem o deploy de código. As opções que todo comando aceita, como `--format`, `--out` e `-y`, estão em [Opções globais](/pt-br/documentacao/devtools/cli/globals/).

---

## Criar

`azion create application` cria uma aplicação com o nome e as configurações que você passa:

```bash
azion create application [flags]
```

| Flag                        | Curta | Tipo   | Padrão | Descrição                                                                                                                                                                          |
| --------------------------- | ----- | ------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--active`                  | —     | string | —      | Ativa (`true`) ou desativa (`false`) a aplicação.                                                                                                                                  |
| `--application-accelerator` | —     | string | —      | Ativa (`true`) ou desativa (`false`) [Application Accelerator](/pt-br/documentacao/plataforma/applications/application-accelerator/configuracoes/) na aplicação.                   |
| `--cache`                   | —     | string | —      | Ativa (`true`) ou desativa (`false`) [Cache](/pt-br/documentacao/plataforma/applications/cache/cache-settings/) na aplicação.                                                      |
| `--debug-enabled`           | —     | string | —      | Aceita `true` ou `false`. Com `true`, você pode verificar se as regras do [Rules Engine](/pt-br/documentacao/plataforma/applications/rules-engine/) da aplicação foram executadas. |
| `--file`                    | —     | string | —      | Caminho de um arquivo JSON com os atributos da aplicação. Use `-` para ler o JSON da entrada padrão.                                                                               |
| `--function`                | —     | string | —      | Ativa (`true`) ou desativa (`false`) [Functions](/pt-br/documentacao/plataforma/functions/) na aplicação.                                                                          |
| `--image-processor`         | —     | string | —      | Ativa (`true`) ou desativa (`false`) [Image Processor](/pt-br/documentacao/plataforma/applications/image-processor/configuracoes/) na aplicação.                                   |
| `--name`                    | —     | string | —      | **Obrigatório**, a menos que `--file` seja definido. Nome da aplicação. Sem ele, o comando pergunta o nome.                                                                        |

Este comando cria uma aplicação chamada `my-app` com Functions e Cache ativados:

```bash
azion create application --name my-app --function true --cache true
```

O comando imprime o ID da aplicação:

```text
Created Application with ID 1234567890
```

---

## Listar

`azion list application` lista as aplicações da sua conta, 50 por página:

```bash
azion list application [flags]
```

| Flag          | Curta | Tipo   | Padrão | Descrição                                                                                        |
| ------------- | ----- | ------ | ------ | ------------------------------------------------------------------------------------------------ |
| `--details`   | —     | —      | —      | Adiciona as colunas `LAST EDITOR`, `LAST MODIFIED` e `DEBUG` às colunas `ID`, `NAME` e `ACTIVE`. |
| `--filter`    | —     | string | —      | Nome pelo qual filtrar a lista.                                                                  |
| `--order-by`  | —     | string | —      | Campo pelo qual ordenar a lista.                                                                 |
| `--page`      | —     | int    | `1`    | Número da página a retornar.                                                                     |
| `--page-size` | —     | int    | `50`   | Número de aplicações em cada página.                                                             |

Este comando retorna a segunda página de uma lista dividida em páginas de três aplicações:

```bash
azion list application --page 2 --page-size 3
```

O comando imprime uma linha por aplicação:

```text
ID          NAME                    ACTIVE
1234567896  my-blog                 true
1234567897  my-store                true
1234567898  my-api                  true
```

---

## Descrever

`azion describe application` imprime as configurações de uma aplicação:

```bash
azion describe application [flags]
```

| Flag               | Curta | Tipo | Padrão | Descrição                    |
| ------------------ | ----- | ---- | ------ | ---------------------------- |
| `--application-id` | —     | int  | —      | ID da aplicação a descrever. |

Este comando descreve a aplicação com ID `1234567890`:

```bash
azion describe application --application-id 1234567890
```

O comando imprime o ID, o nome e o estado da aplicação:

```text
ID:       1234567890
Name:     my-app
Active:   true
Debug:    false
```

Com `--format json`, o comando imprime o objeto completo: `active`, `debug`, `id`, `is_versioned`, `last_editor`, `last_modified`, `modules`, `name`, `product_version`, `version`, `version_id` e `version_state`. O objeto `modules` guarda um valor `enabled` para `application_accelerator`, `cache`, `functions` e `image_processor`, que as flags de criação e de atualização definem.

---

## Atualizar

`azion update application` altera o nome, o estado ativo ou as configurações de uma aplicação:

```bash
azion update application [flags]
```

| Flag                        | Curta | Tipo   | Padrão | Descrição                                                                                                             |
| --------------------------- | ----- | ------ | ------ | --------------------------------------------------------------------------------------------------------------------- |
| `--active`                  | —     | string | —      | Ativa (`true`) ou desativa (`false`) a aplicação.                                                                     |
| `--application-accelerator` | —     | string | —      | Ativa (`true`) ou desativa (`false`) Application Accelerator na aplicação.                                            |
| `--application-id`          | —     | int    | —      | ID da aplicação a atualizar. Você pode omiti-lo quando o JSON de `--file` traz `"id"`.                                |
| `--cache`                   | —     | string | —      | Ativa (`true`) ou desativa (`false`) Cache na aplicação.                                                              |
| `--debug-enabled`           | —     | string | —      | Aceita `true` ou `false`. Com `true`, você pode verificar se as regras do Rules Engine da aplicação foram executadas. |
| `--file`                    | —     | string | —      | Caminho de um arquivo JSON com os atributos a alterar. Use `-` para ler o JSON da entrada padrão.                     |
| `--functions`               | —     | string | —      | Ativa (`true`) ou desativa (`false`) Functions na aplicação.                                                          |
| `--image-processor`         | —     | string | —      | Ativa (`true`) ou desativa (`false`) Image Processor na aplicação.                                                    |
| `--name`                    | —     | string | —      | Novo nome da aplicação.                                                                                               |

Um valor diferente de `true` ou `false` nessas flags é recusado com `Error: The given data isn’t a boolean type value. Provide a valid boolean type in the command’s flag value and try again.`

O comando precisa de pelo menos um campo a alterar. Apenas com `--application-id`, ele não altera nada e falha com este erro:

```text
Error: Inform at least one field to be updated. It's not possible to update an Application without specifying the fields that will be updated. Run ‘azion update edge-application --help’ to display more information and try again.  If the error persists, contact Azion support.
```

Este comando renomeia a aplicação com ID `1234567890` para `my-app-renamed` e ativa a depuração:

```bash
azion update application --application-id 1234567890 --name my-app-renamed --debug-enabled true
```

O comando imprime o ID da aplicação atualizada:

```text
Updated Application with ID 1234567890
```

---

## Excluir

`azion delete application` exclui uma aplicação:

```bash
azion delete application [flags]
```

| Flag               | Curta | Tipo   | Padrão    | Descrição                                                                                                                                                        |
| ------------------ | ----- | ------ | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--application-id` | —     | int    | —         | ID da aplicação a excluir.                                                                                                                                       |
| `--cascade`        | —     | —      | `true`    | Exclui os recursos que `azion deploy` criou, conforme listados em `azion/azion.json` do diretório atual. Sem esse arquivo, o comando falha e mantém a aplicação. |
| `--config-dir`     | —     | string | `"azion"` | Caminho relativo da pasta que guarda os seus arquivos `azion.json` e `args.json`.                                                                                |

> **Atenção**
>
> Qualquer flag `--cascade`, incluindo `--cascade=false`, exclui os recursos listados em `azion/azion.json` do diretório atual. Para excluir apenas a aplicação, omita `--cascade`.

Este comando exclui a aplicação com ID `1234567890` e nada mais:

```bash
azion delete application --application-id 1234567890 -y
```

O comando confirma a exclusão:

```text
Application 1234567890 was successfully deleted
```

---

## Usar um arquivo JSON

`azion create application` e `azion update application` leem os atributos da aplicação de um arquivo JSON com `--file`.

Este arquivo cria uma aplicação ativa chamada `my-site`. O comando lê `name` e `active` dele:

```json
{
  "name": "my-site",
  "active": true
}
```

Passe o arquivo para o comando de criação:

```bash
azion create application --file app-create.json
```

O comando imprime o ID da aplicação:

```text
Created Application with ID 1234567891
```

Na atualização, o comando também lê `"id"` do arquivo, então `--application-id` não é necessário. Este arquivo renomeia a aplicação com ID `1234567891` e a mantém ativa:

```json
{
  "id": 1234567891,
  "name": "my-site-updated",
  "active": true
}
```

Passe o arquivo para o comando de atualização:

```bash
azion update application --file app-update.json
```

O comando imprime o ID da aplicação atualizada:

```text
Updated Application with ID 1234567891
```

O mesmo arquivo também funciona com `--application-id 1234567891` na linha de comando.

---

## Recursos relacionados

- [Opções globais](/pt-br/documentacao/devtools/cli/globals.md): As opções que todo comando aceita, como `--format`, `--out` e `-y`.
- [Applications](/pt-br/documentacao/plataforma/applications.md): O que uma aplicação guarda e como ela entrega um site ou uma API.
- [Azion CLI deploy](/pt-br/documentacao/devtools/cli/deploy.md): Como é feito o deploy de um projeto e quais recursos uma exclusão em cascata remove em seguida.
- [Azion CLI rules-engine](/pt-br/documentacao/devtools/cli/recursos/rules-engine.md): Os comandos que criam e gerenciam as regras que uma aplicação executa.
