{{DNS configuration for BIND}} extern type dnsRecord; extern type srv_domain; {{Like domain, but may contain underscores}} extern type bind_pattern; {{Ways of describing in which cases a DNS mapping applies}} extern val literal : host -> bind_pattern; {{A rule applies only to this particular host.}} extern val default : bind_pattern; {{A rule applies directly to the domain for the current vhost block.}} extern val wildcard : bind_pattern; {{A rule applies to every host within the current domain.}} extern type srv_pattern; {{Like bind_pattern, but for SRV and TXT records, where underscores are allowed in hostnames}} extern val srv_literal : srv_domain -> srv_pattern; extern val srv_default : srv_pattern; extern val srv_wildcard : srv_pattern; extern val dnsA : bind_pattern -> ip -> dnsRecord; extern val dnsAAAA : bind_pattern -> ipv6 -> dnsRecord; extern val dnsAFSDB : domain -> dnsRecord; extern val dnsCNAME : bind_pattern -> domain -> dnsRecord; extern val dnsMX : int -> domain -> dnsRecord; extern val dnsNS : domain -> dnsRecord; extern val dnsSRV : srv_pattern -> int -> int -> int -> domain -> dnsRecord; extern val dnsTXT : srv_pattern -> no_newlines -> dnsRecord; extern val dns : dnsRecord -> [Domain] {TTL : int};