nixos-config/terranix/graylog/modules/stream.nix

48 lines
1.1 KiB
Nix

{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.graylog.stream;
in {
options.graylog.stream = mkOption {
default = { };
type = with types;
attrsOf (submodule ({ name, ... }: {
options = {
title = mkOption {
default = name;
type = with types; str;
};
index_set_id = mkOption { type = with types; str; };
disabled = mkOption {
default = false;
type = with types; bool;
};
matching_type = mkOption {
default = "AND";
type = with types; str;
};
pipelines = mkOption {
default = [ ];
type = with types; listOf str;
};
};
}));
};
config = mkIf (cfg != { }) {
resource.graylog_stream = mapAttrs (name: value: {
inherit (value) title index_set_id disabled matching_type;
}) cfg;
resource.graylog_pipeline_connection = mapAttrs (name: pipelineConfig: {
stream_id = "\${graylog_stream.${name}.id}";
pipeline_ids = pipelineConfig.pipelines;
}) cfg;
};
}