anchor.diff:          '';
         };
   
  -      allowNotify = mkOption {
  -        type        = types.listOf types.str;
  -        default     = [ ];
  -        example     = [ "192.0.2.0/24 NOKEY" "10.0.0.1-10.0.0.5 my_tsig_key_name"
  -                        "10.0.3.4&255.255.0.0 BLOCKED"
  -                      ];
  -        description = ''
  -          Listed primary servers are allowed to notify this secondary server.
  -          <screen><![CDATA[
  -          Format: <ip> <key-name | NOKEY | BLOCKED>
  -
  -          <ip> either a plain IPv4/IPv6 address or range. Valid patters for ranges:
  -          * 10.0.0.0/24            # via subnet size
  -          * 10.0.0.0&255.255.255.0 # via subnet mask
  -          * 10.0.0.1-10.0.0.254    # via range
  -
  -          A optional port number could be added with a '@':
  -          * 2001:1234::1@1234
  -
  -          <key-name | NOKEY | BLOCKED>
  -          * <key-name> will use the specified TSIG key
  -          * NOKEY      no TSIG signature is required
  -          * BLOCKED    notifies from non-listed or blocked IPs will be ignored
  -          * ]]></screen>
  -        '';
  -      };
  -
  -      requestXFR = mkOption {
  -        type        = types.listOf types.str;
  -        default     = [];
  -        example     = [];
  -        description = ''
  -          Format: <code>[AXFR|UDP] &lt;ip-address&gt; &lt;key-name | NOKEY&gt;</code>
  -        '';
  -      };
  -
  -      allowAXFRFallback = mkOption {
  -        type        = types.bool;
  -        default     = true;
  -        description = ''
  -          If NSD as secondary server should be allowed to AXFR if the primary
  -          server does not allow IXFR.
  +      data = mkOption {
  +        type = types.str;
  +        default = "";
  +        example = "";
  +        description = ''
  +          The actual zone data. This is the content of your zone file.
  +          Use imports or pkgs.lib.readFile if you don't want this data in your config file.
           '';
         };
   
         notify = mkOption {
  -        type        = types.listOf types.str;
  -        default     = [];
  -        example     = [ "10.0.0.1@3721 my_key" "::5 NOKEY" ];
  +        type = types.listOf types.str;
  +        default = [];
  +        example = [ "10.0.0.1@3721 my_key" "::5 NOKEY" ];
           description = ''
             This primary server will notify all given secondary servers about
             zone changes.
  
positive.code:     ${cfg.extraConfig}
    '';
  
    yesOrNo     = b: if b then "yes" else "no";
    maybeString = pre: s: if s == null then "" else ''${pre} "${s}"'';
    forEach     = pre: l: concatMapStrings (x: pre + x + "\n") l;
  
  
    keyConfigFile = concatStrings (mapAttrsToList (keyName: keyOptions: ''
  
negative.code:         '';
        };
  
        zoneStats = mkOption {
          type = types.nullOr types.str;
          default = null;
          example = "%s";
          description = ''
            When set to something distinct to null NSD is able to collect
            statistics per zone. All statistics of this zone(s) will be added
  