# Azion CLI dns-zone

Os comandos `dns-zone` da Azion CLI criam, listam, descrevem, atualizam e excluem zonas, o objeto do [Edge DNS](/pt-br/documentacao/plataforma/edge-dns/) que guarda um domínio e os seus registros. Os campos de uma zona, os seus limites e os erros que a API retorna estão em [Zonas e registros](/pt-br/documentacao/plataforma/edge-dns/zonas-e-registros/). 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 dns-zone` cria uma zona para o domínio que você informa:

```bash
azion create dns-zone [flags]
```

| Flag       | Curta | Tipo   | Padrão | Descrição                                                                                                                |
| ---------- | ----- | ------ | ------ | ------------------------------------------------------------------------------------------------------------------------ |
| `--active` | —     | —      | `true` | Ativa (`--active=true`) ou desativa (`--active=false`) a zona.                                                           |
| `--domain` | —     | string | —      | **Obrigatório**, a menos que `--file` esteja definida. Domínio que a zona atende. Sem ela, o comando pergunta o domínio. |
| `--file`   | —     | string | —      | Caminho de um arquivo JSON com os atributos da zona. Use `-` para ler o JSON da entrada padrão.                          |
| `--name`   | —     | string | —      | Nome da zona.                                                                                                            |

Este comando cria uma zona chamada `my-zone` para o domínio `my-domain.com`:

```bash
azion create dns-zone --name my-zone --domain my-domain.com
```

O comando imprime o ID da zona:

```text
Created DNS zone with ID 1234
```

Um domínio que outra conta hospeda é recusado com `["Domain Belongs to Another Account."]`, e um domínio que já tem uma zona na sua conta é recusado com `["This field must be unique."]`. Os dois erros são explicados em [Zonas e registros](/pt-br/documentacao/plataforma/edge-dns/zonas-e-registros/#erros).

---

## Listar

`azion list dns-zone` lista as zonas da sua conta, 50 por página:

```bash
azion list dns-zone [flags]
```

| Flag          | Curta | Tipo   | Padrão | Descrição                                                                               |
| ------------- | ----- | ------ | ------ | --------------------------------------------------------------------------------------- |
| `--details`   | —     | —      | —      | Aceita, e imprime as mesmas colunas `ID`, `NAME`, `DOMAIN` e `ACTIVE` da lista simples. |
| `--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 zonas em cada página.                                                         |

Este comando lista todas as zonas da conta:

```bash
azion list dns-zone
```

O comando imprime uma linha por zona, com o seu domínio e o seu estado:

```text
ID    NAME          DOMAIN              ACTIVE
1234  my-zone       my-domain.com       true
1235  my-file-zone  my-file-domain.com  false
```

---

## Descrever

`azion describe dns-zone` imprime as configurações de uma zona:

```bash
azion describe dns-zone [flags]
```

| Flag        | Curta | Tipo | Padrão | Descrição                                |
| ----------- | ----- | ---- | ------ | ---------------------------------------- |
| `--zone-id` | —     | int  | —      | **Obrigatório**. ID da zona a descrever. |

Este comando descreve a zona com ID `1235`:

```bash
azion describe dns-zone --zone-id 1235
```

O comando imprime a zona e os nameservers da Azion que respondem pelo seu domínio:

```text
ID:                1235
Name:              my-file-zone
Domain:            my-file-domain.com
Active:            false
Nameservers:       ["ns1.aziondns.net","ns2.aziondns.com","ns3.aziondns.org"]
Product Version:   2.0
```

Com `--format json`, o comando imprime o mesmo objeto com as chaves `active`, `domain`, `id`, `name`, `nameservers` e `product_version`.

---

## Atualizar

`azion update dns-zone` altera o nome ou o estado ativo de uma zona. O comando não tem flag para o domínio:

```bash
azion update dns-zone [flags]
```

| Flag        | Curta | Tipo   | Padrão | Descrição                                                                                         |
| ----------- | ----- | ------ | ------ | ------------------------------------------------------------------------------------------------- |
| `--active`  | —     | —      | `true` | Ativa (`--active=true`) ou desativa (`--active=false`) a zona.                                    |
| `--file`    | —     | string | —      | Caminho de um arquivo JSON com os atributos a alterar. Use `-` para ler o JSON da entrada padrão. |
| `--name`    | —     | string | —      | Novo nome da zona.                                                                                |
| `--zone-id` | —     | int    | —      | **Obrigatório**. ID da zona a atualizar.                                                          |

Escreva `--active` com sinal de igual. Com um espaço, `--active false` imprime `DNS zone 1234 was updated` e deixa a zona ativa.

Este comando desativa a zona com ID `1234`:

```bash
azion update dns-zone --zone-id 1234 --active=false
```

O comando confirma a atualização:

```text
DNS zone 1234 was updated
```

---

## Excluir

`azion delete dns-zone` exclui uma zona:

```bash
azion delete dns-zone [flags]
```

| Flag        | Curta | Tipo | Padrão | Descrição                              |
| ----------- | ----- | ---- | ------ | -------------------------------------- |
| `--zone-id` | —     | int  | —      | **Obrigatório**. ID da zona a excluir. |

Este comando exclui a zona com ID `1235`:

```bash
azion delete dns-zone --zone-id 1235 -y
```

O comando confirma a exclusão:

```text
DNS zone 1235 was successfully deleted
```

---

## Usar um arquivo JSON

`azion create dns-zone` e `azion update dns-zone` leem os atributos da zona de um arquivo JSON com `--file`.

Este arquivo cria uma zona chamada `my-file-zone` para `my-file-domain.com` e a mantém desativada. O comando lê `name`, `domain` e `active` do arquivo:

```json
{
  "name": "my-file-zone",
  "domain": "my-file-domain.com",
  "active": false
}
```

Informe o arquivo ao comando de criação:

```bash
azion create dns-zone --file zone-create.json
```

O comando imprime o ID da zona:

```text
Created DNS zone with ID 1235
```

Na atualização, informe o ID da zona com `--zone-id`. Este arquivo renomeia a zona e a ativa:

```json
{
  "name": "my-file-zone-updated",
  "active": true
}
```

Informe o arquivo ao comando de atualização:

```bash
azion update dns-zone --zone-id 1235 --file zone-update.json
```

O comando confirma a atualização:

```text
DNS zone 1235 was updated
```

---

## Recursos relacionados

- [Opções globais](/pt-br/documentacao/devtools/cli/globals.md): As opções que todo comando aceita, como `--format`, `--out` e `-y`.
- [Zonas e registros](/pt-br/documentacao/plataforma/edge-dns/zonas-e-registros.md): Cada campo de zona e de registro, os nameservers e os erros que a API retorna.
- [Azion CLI dns-record](/pt-br/documentacao/devtools/cli/recursos/dns-record.md): Os comandos que criam e gerenciam os registros dentro de uma zona.
- [Azion CLI dnssec](/pt-br/documentacao/devtools/cli/recursos/dnssec.md): Os comandos que leem o DNSSEC de uma zona e o ativam ou desativam.
