diff --git a/lib.nix b/lib.nix index 088ad1c..372f091 100644 --- a/lib.nix +++ b/lib.nix @@ -71,9 +71,49 @@ in { getSiteGatewayV4 getHostGatewayV4 getSiteGatewayV6 getHostGatewayV6 getSiteV4PrefixLength getSiteV6PrefixLength; - types = lib.types // { - fudo = with lib.types; rec { - networkHost = { + fudo-types = with lib.types; rec { + networkHost = { + hostname = mkOption { + type = str; + description = "Hostname"; + default = name; + }; + + ipv4-address = mkOption { + type = nullOr str; + description = "The V4 IP of a given host, if any."; + default = null; + }; + + ipv6-address = mkOption { + type = nullOr str; + description = "The V6 IP of a given host, if any."; + default = null; + }; + + mac-address = mkOption { + type = nullOr str; + description = + "The MAC address of a given host, if desired for IP reservation."; + default = null; + }; + + description = mkOption { + type = nullOr str; + description = "Description of the host."; + default = null; + }; + + sshfp-records = mkOption { + type = listOf str; + description = "List of SSHFP records for this host."; + default = [ ]; + }; + }; + + networkHosts = let + # This is necessary because of the default 'name'...sigh. + networkHostOpt = { name, ... }: { hostname = mkOption { type = str; description = "Hostname"; @@ -111,48 +151,6 @@ in { default = [ ]; }; }; - - networkHosts = let - # This is necessary because of the default 'name'...sigh. - networkHostOpt = { name, ... }: { - hostname = mkOption { - type = str; - description = "Hostname"; - default = name; - }; - - ipv4-address = mkOption { - type = nullOr str; - description = "The V4 IP of a given host, if any."; - default = null; - }; - - ipv6-address = mkOption { - type = nullOr str; - description = "The V6 IP of a given host, if any."; - default = null; - }; - - mac-address = mkOption { - type = nullOr str; - description = - "The MAC address of a given host, if desired for IP reservation."; - default = null; - }; - - description = mkOption { - type = nullOr str; - description = "Description of the host."; - default = null; - }; - - sshfp-records = mkOption { - type = listOf str; - description = "List of SSHFP records for this host."; - default = [ ]; - }; - }; - in attrsOf (submodule networkHostOpt); - }; + in attrsOf (submodule networkHostOpt); }; }