{ lib, config, ... }: let cfg = config.customOps; in { options = with lib; { customOps = mkOption { description = "custom options"; type = types.submodule { options = { owner = mkOption { type = types.str; default = null; description = "machine owner username"; }; domain = mkOption { type = types.submodule { options = { name = mkOption { type = types.str; default = null; }; tld = mkOption { type = types.str; default = null; }; fqdn = mkOption { type = types.str; default = "${cfg.domain.name}.${cfg.domain.tld}"; }; }; }; description = "machine domain name"; }; }; }; }; }; }