{pkgs, lib, config, system, ...}: let inherit (lib) types; in { options.networking = { domainBase = lib.mkOption { type = types.str; description = "Base network name."; example = "example"; }; domainAliases = lib.mkOption { type = types.listOf types.str; description = "Domain aliases."; example = [ "example.org" "example.net" ]; }; zones = lib.mkOption { type = types.attrsOf (types.submodule ({name, options, config, ...}: { options = { iface = lib.mkOption { type = types.str; description = "Interface name."; example = "eth0"; }; ipv4 = lib.mkOption { type = types.str; description = "Static IPv4 address of the machine."; example = "1.2.3.4"; }; ipv6 = lib.mkOption { type = types.str; description = "Static IPv6 address of the machine."; example = "fe80::1"; }; }; })); }; }; }