{ config, pkgs, lib, ... }: with lib; { options.machine = { confPath = mkOption { type = types.path; description = '' Path to the machines configuration.nix ''; }; allowUnfree = mkOption { type = types.bool; description = '' Wether to allow the installation of unfree packages. ''; }; pkgs = mkOption { type = types.listOf types.string; description = '' The list of metapackages to be installed. ''; }; services = mkOption { type = types.listOf types.string; description = '' List of services to be enabled. ''; }; conffiles = mkOption { type = types.listOf types.string; description = '' List of configuration files to be enabled. ''; }; hostName = mkOption { type = types.str; description = '' The Machines HostName ''; }; firewall = { allowPing = mkOption { type = types.bool; description = '' See networking.firewall.allowPing. ''; }; allowedUDPPorts = mkOption { type = types.listOf types.int; description = '' See networking.firewall.allowerdUDPPorts. ''; }; allowedTCPPorts = mkOption { type = types.listOf types.int; description = '' See networking.firewall.allowedTCPPorts. ''; }; allowedUDPPortRanges = mkOption { type = types.listOf (types.attrsOf types.int); description = '' See networking.firewall.allowerdUDPPortRanges. ''; }; allowedTCPPortRanges = mkOption { type = types.listOf (types.attrsOf types.int); description = '' See networking.firewall.allowedTCPPortRanges. ''; }; }; }; }