diff --git a/dns/types/simple.nix b/dns/types/simple.nix index 3e089a8..e15cc3a 100644 --- a/dns/types/simple.nix +++ b/dns/types/simple.nix @@ -7,9 +7,21 @@ let inherit (builtins) stringLength; + # RFC 1035, 3.1 + domain-name = lib.types.addCheck lib.types.nonEmptyStr (s: stringLength s <= 255) // { + description = "an RFC 1035 DNS domain name"; + }; in { - # RFC 1035, 3.1 - domain-name = lib.types.addCheck lib.types.str (s: stringLength s <= 255); + inherit domain-name; + + # RFC 2181, section 11 + domain-label = lib.types.addCheck lib.types.nonEmptyStr (s: stringLength s <= 63) // { + description = "a DNS label"; + }; + + fqdn = lib.types.addCheck domain-name (lib.strings.hasSuffix ".") // { + description = "a fully-qualified DNS domain name"; + }; }