{ lib, ... }: with lib; { options.local.ns.zones = mkOption { type = with lib.types; attrsOf (submodule ({ config, name, ... }: let cfg = config.localNS; in { options.localNS = { enable = mkEnableOption "local NS settings"; primary = mkOption { type = str; }; }; config = mkIf cfg.enable { ns = [ { name = "@"; host = cfg.primary; } ]; a = [ { name = cfg.primary; ipv4 = "37.205.12.147"; } ]; aaaa = [ { name = cfg.primary; ipv6 = "2a03:3b40:fe:3ec::1"; } ]; }; })); }; }