# Azion CLI firewall

Os comandos `firewall` da Azion CLI criam, listam, descrevem, atualizam e excluem firewalls. Um [firewall](/pt-br/documentacao/plataforma/firewall/) inspeciona as requisições de um workload antes da aplicação dele, e esses comandos ativam ou desativam WAF, Network Shield e Functions no firewall. Um firewall não inspeciona nenhuma requisição até que um deployment do workload o indique, por meio da flag `--firewall-id` de `azion create workload-deployment`. 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 firewall` cria um firewall com o nome e as configurações que você passa:

```bash
azion create firewall [flags]
```

| Flag                   | Curta | Tipo   | Padrão | Descrição                                                                                                                                                                                   |
| ---------------------- | ----- | ------ | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `--active`             | —     | string | —      | Ativa (`true`) ou desativa (`false`) o firewall.                                                                                                                                            |
| `--debug-rules`        | —     | string | —      | Aceita `true` ou `false`. Com `true`, você pode verificar se as regras do [Rules Engine para Firewall](/pt-br/documentacao/plataforma/firewall/rules-engine/) do firewall foram executadas. |
| `--file`               | —     | string | —      | Caminho para um arquivo JSON com os atributos do firewall. Use `-` para ler o JSON da entrada padrão.                                                                                       |
| `--functions-enabled`  | —     | string | —      | Ativa (`true`) ou desativa (`false`) [Functions no Firewall](/pt-br/documentacao/plataforma/firewall/functions/) para o firewall.                                                           |
| `--name`               | —     | string | —      | **Obrigatório**, exceto quando `--file` é informada. Nome do firewall. Sem ela, o comando pergunta o nome.                                                                                  |
| `--network-protection` | —     | string | —      | Ativa (`true`) ou desativa (`false`) [Network Shield](/pt-br/documentacao/plataforma/firewall/#network-shield) para o firewall.                                                             |
| `--waf-enabled`        | —     | string | —      | Ativa (`true`) ou desativa (`false`) [WAF](/pt-br/documentacao/plataforma/firewall/#waf) para o firewall.                                                                                   |

Este comando cria um firewall ativo chamado `my-firewall`, com Functions e WAF ativados:

```bash
azion create firewall --name my-firewall --active true --functions-enabled true --waf-enabled true
```

O comando exibe o ID do firewall:

```text
Created Firewall with ID 12353
```

---

## Listar

`azion list firewall` lista os firewalls da sua conta, 50 por página:

```bash
azion list firewall [flags]
```

| Flag          | Curta | Tipo   | Padrão | Descrição                                                                                        |
| ------------- | ----- | ------ | ------ | ------------------------------------------------------------------------------------------------ |
| `--details`   | —     | —      | —      | Adiciona as colunas `DEBUG`, `LAST EDITOR` e `LAST MODIFIED` à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 firewalls em cada página.                                                              |

Este comando lista os firewalls da conta:

```bash
azion list firewall
```

O comando exibe uma linha por firewall:

```text
ID     NAME                     ACTIVE
12350  my-blog-firewall         true
12351  my-store-firewall        true
12352  my-api-firewall          true
12353  my-firewall              true
12354  my-site-firewall         true
```

---

## Descrever

`azion describe firewall` exibe as configurações de um firewall:

```bash
azion describe firewall [flags]
```

| Flag            | Curta | Tipo | Padrão | Descrição                   |
| --------------- | ----- | ---- | ------ | --------------------------- |
| `--firewall-id` | —     | int  | —      | ID do firewall a descrever. |

Este comando descreve o firewall com ID `12353`:

```bash
azion describe firewall --firewall-id 12353
```

O comando exibe o nome, as opções de ativação e o estado do firewall:

```text
ID:            12353
Name:          my-firewall
Modules:       {"ddos_protection":{"enabled":true},"functions":{"enabled":true},"network_protection":{"enabled":true},"waf":{"enabled":true}}
Debug:         false
Active:        true
Last Editor:   you@example.com
Modified at:   "2026-01-01T12:00:00.853715Z"
```

Com `--format json`, o comando exibe o objeto completo: `active`, `created_at`, `debug`, `id`, `is_versioned`, `last_editor`, `last_modified`, `modules`, `name`, `product_version`, `version`, `version_id` e `version_state`. O objeto `modules` contém um valor `enabled` para `ddos_protection`, `functions`, `network_protection` e `waf`. As flags de criação e de atualização definem os três últimos, e `network_protection` é o nome de Network Shield na API.

Um ID que não existe falha com este erro:

```text
Error: Failed to get the Firewall: The given ID or API's endpoint doesn't exist or isn't available. Check that the identifying information is correct. Check your settings and try again. If the error persists, contact Azion support
```

---

## Atualizar

`azion update firewall` altera o nome, o estado ativo ou as opções de ativação de um firewall:

```bash
azion update firewall [flags]
```

| Flag                   | Curta | Tipo   | Padrão | Descrição                                                                                                                          |
| ---------------------- | ----- | ------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------- |
| `--active`             | —     | string | —      | Ativa (`true`) ou desativa (`false`) o firewall.                                                                                   |
| `--debug-rules`        | —     | string | —      | Aceita `true` ou `false`. Com `true`, você pode verificar se as regras do Rules Engine para Firewall do firewall foram executadas. |
| `--file`               | —     | string | —      | Caminho para um arquivo JSON com os atributos a alterar. Use `-` para ler o JSON da entrada padrão.                                |
| `--firewall-id`        | —     | int    | —      | **Obrigatório**, também com `--file`. ID do firewall a atualizar. Sem ela, o comando pergunta o ID.                                |
| `--functions-enabled`  | —     | string | —      | Ativa (`true`) ou desativa (`false`) Functions no Firewall para o firewall.                                                        |
| `--name`               | —     | string | —      | Novo nome do firewall.                                                                                                             |
| `--network-protection` | —     | string | —      | Ativa (`true`) ou desativa (`false`) Network Shield para o firewall.                                                               |
| `--waf-enabled`        | —     | string | —      | Ativa (`true`) ou desativa (`false`) WAF para o firewall.                                                                          |

As flags de ativação aceitam `true` ou `false`. Qualquer outro valor, como `yes`, é recusado:

```text
Error: Invalid value for --waf-enabled flag: yes
```

Este comando renomeia o firewall com ID `12353` para `my-firewall-renamed`, ativa a depuração e ativa Network Shield:

```bash
azion update firewall --firewall-id 12353 --name my-firewall-renamed --debug-rules true --network-protection true
```

O comando exibe o ID do firewall atualizado:

```text
Updated Firewall with ID 12353
```

---

## Excluir

`azion delete firewall` exclui um firewall:

```bash
azion delete firewall [flags]
```

| Flag            | Curta | Tipo | Padrão | Descrição                 |
| --------------- | ----- | ---- | ------ | ------------------------- |
| `--firewall-id` | —     | int  | —      | ID do firewall a excluir. |

Este comando exclui o firewall com ID `12353`:

```bash
azion delete firewall --firewall-id 12353
```

O comando confirma a exclusão:

```text
Firewall 12353 was successfully deleted
```

---

## Usar um arquivo JSON

`azion create firewall` e `azion update firewall` leem os atributos do firewall de um arquivo JSON com `--file`.

Este arquivo cria um firewall ativo chamado `my-site-firewall`. O comando lê `name` e `active` dele:

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

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

```bash
azion create firewall --file fw-create.json
```

O comando exibe o ID do firewall:

```text
Created Firewall with ID 12354
```

O firewall criado a partir desse arquivo tem Functions e Network Shield ativados e WAF desativado, como `azion describe firewall --format json` mostra no objeto `modules`.

Na atualização, o comando não lê `"id"` do arquivo. Passe `--firewall-id` na linha de comando, ou o comando pergunta o ID. Este arquivo renomeia o firewall com ID `12354` e o mantém ativo:

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

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

```bash
azion update firewall --firewall-id 12354 --file fw-update.json
```

O comando exibe o ID do firewall atualizado:

```text
Updated Firewall with ID 12354
```

---

## Recursos relacionados

- [Opções globais](/pt-br/documentacao/devtools/cli/globals.md): As opções que todo comando aceita, como `--format`, `--out` e `-y`.
- [Firewall](/pt-br/documentacao/plataforma/firewall.md): O que um firewall inspeciona e os produtos que ele executa em uma requisição.
- [Azion CLI firewall-rule](/pt-br/documentacao/devtools/cli/recursos/firewall-rule.md): Os comandos que criam, ordenam e gerenciam as regras que um firewall executa.
- [Azion CLI firewall-instance](/pt-br/documentacao/devtools/cli/recursos/firewall-instance.md): Os comandos que adicionam instâncias de function a um firewall.
