summaryrefslogtreecommitdiff
path: root/modules/wg/options.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/wg/options.nix')
-rw-r--r--modules/wg/options.nix141
1 files changed, 75 insertions, 66 deletions
diff --git a/modules/wg/options.nix b/modules/wg/options.nix
index 4f090d0..56fd964 100644
--- a/modules/wg/options.nix
+++ b/modules/wg/options.nix
@@ -1,79 +1,88 @@
-{ lib
-, ...}:
{
- options.oxalab.wg = with lib;
- lib.mkOption {
- default = [];
- type = types.listOf (types.submodule {
- options = {
- # general network stuff
- networkName = mkOption {
- type = types.nullOr types.str;
- default = null;
- };
- CIDRs = mkOption {
- type = types.nullOr (types.listOf types.str);
- default = null;
- };
-
- hosts = mkOption {
- default = {};
- type = types.attrsOf (types.submodule {
- options = {
-
- enable = mkOption {
- type = types.bool;
- default = true;
- };
- address = mkOption {
- type = types.listOf types.str;
- default = null;
- };
- publicKey = mkOption {
- type = types.str;
- default = null;
- };
- privateKeyFile = mkOption {
- type = types.path;
- default = null;
- };
-
- endpoint.enable = mkOption {
- type = types.bool;
- default = false;
- };
- endpoint.endpoint = mkOption {
- type = types.nullOr types.str;
- default = null;
- };
- endpoint.port = mkOption {
- type = types.nullOr types.int;
- default = null;
- };
- endpoint.publicIface = mkOption {
- type = types.nullOr types.str;
- default = null;
- };
+ lib,
+ ...
+}:
+{
+ options.oxalab.wg =
+ with lib;
+ lib.mkOption {
+ default = [ ];
+ type = types.listOf (
+ types.submodule {
+ options = {
+ # general network stuff
+ networkName = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ };
+ CIDRs = mkOption {
+ type = types.nullOr (types.listOf types.str);
+ default = null;
+ };
- endpoint.extraPeers = mkOption {
- default = [];
- type = types.listOf (types.submodule {
+ hosts = mkOption {
+ default = { };
+ type = types.attrsOf (
+ types.submodule {
options = {
+
+ enable = mkOption {
+ type = types.bool;
+ default = true;
+ };
address = mkOption {
type = types.listOf types.str;
- default = [];
+ default = null;
};
publicKey = mkOption {
+ type = types.str;
+ default = null;
+ };
+ privateKeyFile = mkOption {
+ type = types.path;
+ default = null;
+ };
+
+ endpoint.enable = mkOption {
+ type = types.bool;
+ default = false;
+ };
+ endpoint.endpoint = mkOption {
type = types.nullOr types.str;
default = null;
};
+ endpoint.port = mkOption {
+ type = types.nullOr types.int;
+ default = null;
+ };
+ endpoint.publicIface = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ };
+
+ endpoint.extraPeers = mkOption {
+ default = [ ];
+ type = types.listOf (
+ types.submodule {
+ options = {
+ address = mkOption {
+ type = types.listOf types.str;
+ default = [ ];
+ };
+ publicKey = mkOption {
+ type = types.nullOr types.str;
+ default = null;
+ };
+ };
+ }
+ );
+ };
};
- });
- };
+ }
+ );
};
- });
- };
- };
- });
- };
+ };
+ }
+ );
+ };
}