• DNSControl is a system for maintaining DNS zones. It has two parts: a domain specific language (DSL) for describing DNS zones plus software that processes the DSL and pushes the resulting zones to DNS providers such as Route53, CloudFlare, and Gandi. It can talk to Microsoft ActiveDirectory and it generates the most beautiful BIND zone files ever. It runs anywhere Go runs (Linux, macOS, Windows). The provider model is extensible, so more providers can be added.

    dnsconfig.js:

    // define our registrar and providers
    var namecom = NewRegistrar("name.com", "NAMEDOTCOM");
    var r53 = NewDnsProvider("r53", "ROUTE53")

    D("example.com", namecom, DnsProvider(r53),
     A("@", "1.2.3.4"),
     CNAME("www","@"),
     MX("@",5,"mail.myserver.com."),
     A("test", "5.6.7.8")
    )

    https://github.com/StackExchange/dnscontrol/blob/master/README.md