{ lib, ... }: { options.garden.info.network = lib.mkOption { description = "Information about every host in the network."; type = with lib.types; attrsOf ( submodule ( { name, ... }: { options = { name = lib.mkOption { type = str; description = "Name of the host"; }; ipv4 = lib.mkOption { type = nullOr str; default = null; description = "IPv4 address of the host"; }; ipv4-local = lib.mkOption { type = nullOr str; default = null; description = "Local IPv4 address of the host"; }; ipv6 = lib.mkOption { type = nullOr str; default = null; description = "IPv6 address of the host"; }; netbird-ip = lib.mkOption { type = nullOr str; default = null; description = "NetBird IP address of the host"; }; }; config.name = name; } ) ); }; config.garden.info.network = builtins.fromJSON (builtins.readFile ../hidden/network.json); }