{ lib, ... }: { options.lab = { networking = { public = { ipv4 = { router = lib.mkOption { type = lib.types.str; description = '' Public IPv4 address of the router. ''; }; }; ipv6 = { router = lib.mkOption { type = lib.types.str; description = '' Publicly routable IPv6 address of the router. ''; }; }; }; dmz = { ipv4 = { prefixLength = lib.mkOption { type = lib.types.str; description = '' IPv4 prefix length of DMZ network. ''; }; dockerSwarm = lib.mkOption { type = lib.types.str; description = '' IPv4 address of the Docker Swarm in the DMZ. ''; }; router = lib.mkOption { type = lib.types.str; description = '' The router's IPv4 address on the DMZ network. ''; }; services = lib.mkOption { type = lib.types.str; description = '' The IPv4 address of the interface serving DHCP and DNS on the DMZ network. ''; }; }; ipv6 = { prefixLength = lib.mkOption { type = lib.types.str; description = '' IPv6 prefix length of DMZ network. ''; }; dockerSwarm = lib.mkOption { type = lib.types.str; description = '' Globally routable IPv6 address of the Docker Swarm. ''; }; router = lib.mkOption { type = lib.types.str; description = '' The router's IPv6 address on the DMZ network. ''; }; services = lib.mkOption { type = lib.types.str; description = '' The IPv6 address of the interface serving DHCP and DNS on the DMZ network. ''; }; }; }; }; }; }