Skip to main content

lib/kameleoon/client_config.ex

defmodule Kameleoon.ClientConfig do
  @moduledoc """
  Configuration payload used when creating a client through `Kameleoon.ClientFactory`.
  """

  @default_refresh_interval_minutes 60
  @default_session_duration_minutes 30
  @default_timeout_millis 10_000
  @default_tracking_interval_millis 1_000

  defstruct client_id: nil,
            client_secret: nil,
            refresh_interval_minutes: @default_refresh_interval_minutes,
            session_duration_minutes: @default_session_duration_minutes,
            default_timeout_millis: @default_timeout_millis,
            tracking_interval_millis: @default_tracking_interval_millis,
            proxy_host: nil,
            environment: nil,
            top_level_domain: nil,
            network_domain: nil

  @type t :: %__MODULE__{
          client_id: String.t() | nil,
          client_secret: String.t() | nil,
          refresh_interval_minutes: non_neg_integer(),
          session_duration_minutes: non_neg_integer(),
          default_timeout_millis: non_neg_integer(),
          tracking_interval_millis: non_neg_integer(),
          proxy_host: String.t() | nil,
          environment: String.t() | nil,
          top_level_domain: String.t() | nil,
          network_domain: String.t() | nil
        }
end