Packages
A stateless Elixir wrapper for the Logpoint SIEM API. Covers searching, incidents, alert rules, user-defined lists, and repos with builder patterns for rules and notifications.
Retired package: Renamed - Renamed to guardsix
Current section
Files
Jump to
Current section
Files
lib/logpoint_api/data/search_params.ex
defmodule LogpointApi.Data.SearchParams do
@moduledoc """
Search query parameters passed to `LogpointApi.Core.Search` functions.
Built via `LogpointApi.search_params/4,5`.
"""
@derive Jason.Encoder
defstruct [:query, :time_range, :limit, :repos]
@type t :: %__MODULE__{
query: String.t(),
time_range: String.t() | [number()],
limit: non_neg_integer(),
repos: [String.t()]
}
def new(query, time_range, limit, repos) do
%__MODULE__{
query: query,
time_range: time_range,
limit: limit,
repos: repos
}
end
def new(query, start_time, end_time, limit, repos) do
%__MODULE__{
query: query,
time_range: [start_time, end_time],
limit: limit,
repos: repos
}
end
def to_form_data(%__MODULE__{} = params) do
%{
query: params.query,
time_range: serialize_time_range(params.time_range),
limit: params.limit,
repos: serialize_repos(params.repos)
}
end
defp serialize_time_range(time_range) when is_list(time_range), do: time_range
defp serialize_time_range(time_range) when is_binary(time_range), do: time_range
defp serialize_repos(repos) when is_list(repos) do
Enum.join(repos, ",")
end
defp serialize_repos(repos), do: repos
end