# Explicador de declaração AS3

> Cole o JSON que você faz POST em /mgmt/shared/appsvcs/declare e ele o lê de volta: se é uma requisição AS3 completa ou uma declaração apenas ADC, o schemaVersion e os metadados, e a árvore Tenant para Application para recurso com cada classe explicada, verificando as regras estruturais que o F5 documenta. Roda inteiramente no seu navegador.

- Tool: https://ronutz.com/pt-BR/tools/as3-explainer-validator
- Family: Redes

---

## O que faz

Cole uma declaração AS3 do F5 BIG-IP, o JSON que você faz POST em `/mgmt/shared/appsvcs/declare`, e ela a lê de volta para você: se é uma requisição AS3 completa ou uma declaração apenas ADC, as opções de nível superior, os metadados do ADC, e a árvore Tenant para Application para recurso com cada classe nomeada e explicada. Ela também verifica as regras estruturais que o F5 documenta. É uma ferramenta decode-only que roda inteiramente no seu navegador, baseada no guia do usuário e na referência de schema do AS3 do F5.

## Requisição ou declaração

A primeira coisa que ela informa é qual das duas formas você colou. Uma requisição AS3 completa tem `class: "AS3"` e carrega `action` (deploy, dry-run, retrieve, remove, patch) e `persist`, envolvendo a declaração. Uma declaração apenas ADC tem `class: "ADC"` no topo e omite o wrapper, o que significa que as opções action e persist não estão disponíveis. A ferramenta mostra o action e o persist de uma requisição, e o schemaVersion, id, label e remark da declaração ADC em ambos os casos.

## A árvore que ela percorre

Abaixo dos metadados, a ferramenta percorre a hierarquia fixa do AS3: cada Tenant (que vira uma partição no BIG-IP), cada Application (com seu template, notando quando generic é assumido por padrão no AS3 3.20 e posterior), e cada objeto de recurso dentro. Para cada objeto ela mostra a classe e uma explicação em linguagem simples, de Service_HTTP e Service_HTTPS a Pool, Monitor, TLS_Server, TLS_Client, Certificate, Persist, WAF_Policy, Endpoint_Policy e iRule. Uma classe que ela não reconhece ainda é listada e marcada, nunca escondida.

## As verificações estruturais

Junto com a explicação, a ferramenta aplica as regras documentadas que tornam uma declaração válida: uma classe AS3 ou ADC de nível superior, um schemaVersion obrigatório, ao menos um Tenant contendo ao menos uma Application contendo ao menos um recurso, e a regra de correspondência entre template e classe de service (um template de http, https, tcp, udp ou l4 exige um objeto Service correspondente chamado service, antes serviceMain). Ela também sinaliza nomes reservados (Common, Shared, service) como informativos e verifica se os nomes de objeto seguem a regra de 1 a 64 caracteres, começando com letra, alfanuméricos.

## Escopo e grounding

Este é um explicador de estrutura e verificador de sanidade, não um validador completo de JSON-Schema. Ele não reproduz o schema inteiro do AS3 nem verifica cada propriedade, então uma declaração que passa aqui ainda pode ser rejeitada pelo próprio AS3; trate um resultado limpo como um bom sinal, não uma garantia. Nada que você cola é enviado ou sai da página. Baseado na documentação do AS3 do F5; para uma implantação, valide contra a sua versão do AS3 e a referência de schema.

## Standards and references

- [F5 BIG-IP AS3: Composing a Declaration (AS3 class, ADC class, Tenant, Application, template/service rule)](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/userguide/composing-a-declaration.html)
- [F5 BIG-IP AS3: Declaration Purpose and Function (tree model, reserved names, pointers, minimum declaration)](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/refguide/declaration-purpose-function.html)
- [F5 BIG-IP AS3: Using AS3 (POST/GET/DELETE/PATCH to /mgmt/shared/appsvcs/declare; CRUD actions)](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/userguide/using-as3.html)
- [F5 BIG-IP AS3: Schema Reference (the complete class and property catalog)](https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/refguide/schema-reference.html)

## Related reading

- [Anatomia de uma declaração AS3: da classe AS3 até o Pool](https://ronutz.com/pt-BR/learn/as3-declaration-anatomy.md): Uma declaração AS3 do F5 BIG-IP é uma árvore JSON que descreve a configuração desejada, em termos de tenant e application, e deixa o AS3 resolver a ordem das operações. Isto percorre a estrutura de cima a baixo: o wrapper de requisição AS3 versus uma declaração apenas ADC, a classe ADC e seu schemaVersion, o Tenant que vira uma partição, a Application e seu template, e as classes de recurso como Service_HTTP, Pool e TLS_Server, além das regras que tornam uma declaração válida.
- [Declarative Onboarding: A Metade L1-L3 do Automation Toolchain](https://ronutz.com/pt-BR/learn/bigip-declarative-onboarding-do.md): O AS3 configura serviços de aplicação em um BIG-IP que já está na rede. O Declarative Onboarding é o que o coloca lá: licenciamento, provisionamento, DNS e NTP, VLANs e self IPs e rotas, usuários e cluster, expressos como uma declaração JSON contra um Device com um único tenant chamado Common. Este artigo percorre o modelo, as fases de onboarding e as pegadinhas específicas de versão que mordem em produção.
- [Telemetry Streaming: A Extensão do Automation Toolchain que Observa em Vez de Configurar](https://ronutz.com/pt-BR/learn/bigip-telemetry-streaming-ts.md): O AS3 configura serviços de aplicação e o DO faz o onboarding do dispositivo. O Telemetry Streaming é a terceira extensão do F5 Automation Toolchain, e é a que observa em vez de configurar: ele agrega, normaliza e encaminha estatísticas e eventos do BIG-IP para um consumidor como Splunk, ElasticSearch, DataDog ou Prometheus, tudo a partir de uma única declaração JSON. Este artigo percorre o modelo da classe Telemetry, o pipeline de fonte-e-consumidor, e as lacunas que fazem uma declaração ter sucesso sem coletar nada.
