# Azion CLI network-list

Os comandos `network-list` da Azion CLI criam, listam, descrevem, atualizam e excluem [network lists](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/). Uma network list é um conjunto nomeado de endereços IP e intervalos CIDR, de Autonomous System Numbers (ASNs) ou de países, com o qual uma regra de firewall compara o cliente de uma requisição. 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 network-list` cria uma network list com o nome, o tipo e os itens que você passa:

```bash
azion create network-list [flags]
```

| Flag       | Curta | Tipo   | Padrão | Descrição                                                                                                                                |
| ---------- | ----- | ------ | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `--active` | —     | string | —      | Ativa (`true`) ou desativa (`false`) a network list.                                                                                     |
| `--file`   | —     | string | —      | Caminho para um arquivo JSON com os atributos da network list.                                                                           |
| `--items`  | —     | string | —      | **Obrigatório**, exceto quando `--file` é informada. Itens da network list, separados por vírgula. Sem ela, o comando pergunta os itens. |
| `--name`   | —     | string | —      | Nome da network list.                                                                                                                    |
| `--type`   | —     | string | —      | Tipo dos itens: `asn`, `countries` ou `ip_cidr`.                                                                                         |

Um valor de `--type` fora desses três é recusado:

```text
Error: Failed to create Network List: ["\"ipv4\" is not a valid choice."]
```

Este comando cria uma network list ativa chamada `my-ip-list` com dois intervalos CIDR:

```bash
azion create network-list --name my-ip-list --type ip_cidr --items '192.0.2.0/24,198.51.100.7/32' --active true
```

O comando exibe o ID da network list:

```text
Created Network List with ID 12365
```

---

## Listar

`azion list network-list` lista as network lists da sua conta, 50 por página:

```bash
azion list network-list [flags]
```

| Flag          | Curta | Tipo   | Padrão | Descrição                                                    |
| ------------- | ----- | ------ | ------ | ------------------------------------------------------------ |
| `--details`   | —     | —      | —      | Adiciona a coluna `TYPE` à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 network lists em cada página.                      |

Este comando lista as network lists da conta com os tipos delas:

```bash
azion list network-list --details
```

O comando exibe uma linha por network list. A lista com ID `2` é a lista de exit nodes Tor que a Azion fornece a toda conta:

```text
ID     NAME                              ACTIVE  TYPE
2      Azion IP Tor Exit Nodes           true    ip_cidr
12364  my-allowed-countries              true    countries
12365  my-ip-list                        true    ip_cidr
12366  my-country-list                   true    countries
```

---

## Descrever

`azion describe network-list` exibe o tipo, os itens e o estado de uma network list:

```bash
azion describe network-list [flags]
```

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

Este comando descreve a network list com ID `12365`:

```bash
azion describe network-list --network-list-id 12365
```

O comando exibe o nome, o tipo, os itens e o estado da network list:

```text
ID:              12365
Name:            my-ip-list
Type:            ip_cidr
Items:           ["192.0.2.0/24","198.51.100.7/32"]
Last Editor:     you@example.com
Last Modified:   "2026-01-01T12:00:00.710776Z"
Active:          true
```

Com `--format json`, o comando exibe o objeto completo: `active`, `created_at`, `id`, `is_versioned`, `items`, `last_editor`, `last_modified`, `name`, `type`, `version`, `version_id` e `version_state`.

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

```text
Error: Failed to describe Network List: The given ID or API's endpoint doesn't exist or isn't available. Check that the identifying information is correct
```

---

## Atualizar

`azion update network-list` altera o nome, os itens ou o estado ativo de uma network list:

```bash
azion update network-list [flags]
```

| Flag                | Curta | Tipo   | Padrão | Descrição                                                                                               |
| ------------------- | ----- | ------ | ------ | ------------------------------------------------------------------------------------------------------- |
| `--active`          | —     | string | —      | Ativa (`true`) ou desativa (`false`) a network list.                                                    |
| `--add-item`        | —     | string | —      | Itens a adicionar à network list, separados por vírgula. Os itens que já estão na lista permanecem.     |
| `--file`            | —     | string | —      | Caminho para um arquivo JSON com os atributos a alterar.                                                |
| `--items`           | —     | string | —      | Itens da network list, separados por vírgula. Eles substituem todos os itens que a lista contém.        |
| `--name`            | —     | string | —      | Novo nome da network list.                                                                              |
| `--network-list-id` | —     | int    | —      | **Obrigatório**, também com `--file`. ID da network list a atualizar. Sem ela, o comando pergunta o ID. |
| `--remove-item`     | —     | string | —      | Itens a remover da network list, separados por vírgula. Os outros itens permanecem.                     |
| `--type`            | —     | string | —      | Tipo dos itens: `asn`, `countries` ou `ip_cidr`.                                                        |

`--items` substitui a lista inteira, enquanto `--add-item` e `--remove-item` alteram somente os itens que indicam. Para manter os itens que uma lista contém, use `--add-item`.

Este comando adiciona o intervalo `203.0.113.5/32` à network list com ID `12365`:

```bash
azion update network-list --network-list-id 12365 --add-item '203.0.113.5/32'
```

O comando exibe o ID da network list atualizada:

```text
Updated Network List with ID 12365
```

A lista passa a conter `192.0.2.0/24`, `198.51.100.7/32` e `203.0.113.5/32`. A mesma lista atualizada com `--items '192.0.2.10/32'` contém somente `192.0.2.10/32`.

---

## Excluir

`azion delete network-list` exclui uma network list:

```bash
azion delete network-list [flags]
```

| Flag                | Curta | Tipo | Padrão | Descrição                     |
| ------------------- | ----- | ---- | ------ | ----------------------------- |
| `--network-list-id` | —     | int  | —      | ID da network list a excluir. |

Este comando exclui a network list com ID `12366`:

```bash
azion delete network-list --network-list-id 12366 -y
```

O comando confirma a exclusão:

```text
Network List 12366 was successfully deleted
```

---

## Usar um arquivo JSON

`azion create network-list` e `azion update network-list` leem os atributos da network list de um arquivo JSON com `--file`. O arquivo traz `items` como um array de strings.

Este arquivo cria uma network list ativa chamada `my-country-list` que contém dois países:

```json
{
  "name": "my-country-list",
  "type": "countries",
  "items": ["BR", "US"],
  "active": true
}
```

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

```bash
azion create network-list --file nl-create.json
```

O comando exibe o ID da network list:

```text
Created Network List with ID 12366
```

Na atualização, o comando não lê `"id"` do arquivo. Passe `--network-list-id` na linha de comando, ou o comando pergunta o ID. Os campos que o arquivo omite mantêm os valores deles. Este arquivo renomeia a network list com ID `12366` e adiciona `PT` aos itens dela:

```json
{
  "id": 12366,
  "name": "my-country-list-updated",
  "items": ["BR", "US", "PT"]
}
```

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

```bash
azion update network-list --network-list-id 12366 --file nl-update.json
```

O comando exibe o ID da network list atualizada:

```text
Updated Network List with ID 12366
```

---

## Recursos relacionados

- [Opções globais](/pt-br/documentacao/devtools/cli/globals.md): As opções que todo comando aceita, como `--format`, `--out` e `-y`.
- [Network Lists](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists.md): O formato dos itens de cada tipo de lista, as anotações dos itens e os erros de API que uma lista retorna.
- [Azion CLI firewall-rule](/pt-br/documentacao/devtools/cli/recursos/firewall-rule.md): Os comandos que criam as regras de firewall que comparam requisições com uma network list.
- [Azion CLI firewall](/pt-br/documentacao/devtools/cli/recursos/firewall.md): Os comandos que ativam Network Shield, de que as regras que usam uma network list precisam.
