lib/telemetry_deck.ex

defmodule TelemetryDeck do
  @moduledoc """
  Elixir client for TelemetryDeck's Ingest API v2.

  `TelemetryDeck` is the entry point for the package documentation. Use
  `TelemetryDeck.Config` to describe your TelemetryDeck app, `TelemetryDeck.Signal`
  to build an event, and `TelemetryDeck.Client` to send one signal or a batch of
  signals.

  ## Example

      iex> config =
      ...>   TelemetryDeck.Config.new!(
      ...>     namespace: "my-namespace",
      ...>     app_id: "AAAA-BBBB",
      ...>     request_fun: fn _url, _opts -> {:ok, %Req.Response{status: 202}} end
      ...>   )
      iex> signal =
      ...>   TelemetryDeck.Signal.new!(
      ...>     type: "App.User.signedIn",
      ...>     client_user: TelemetryDeck.Hash.client_user("user-123", "secret")
      ...>   )
      iex> TelemetryDeck.Client.send(config, signal)
      {:ok, %TelemetryDeck.Response{status: 202, body: ""}}

  """
  @moduledoc since: "0.1.0"
end