lib/telemetry_deck/error.ex

defmodule TelemetryDeck.Error do
  @moduledoc """
  Structured error returned by `TelemetryDeck.Client`.
  """
  @moduledoc since: "0.1.0"

  defexception [:reason, :status, :body, :message]

  @typedoc """
  Error details for failed TelemetryDeck delivery attempts.
  """
  @typedoc since: "0.1.0"
  @type t :: %__MODULE__{
          reason: atom(),
          status: nil | pos_integer(),
          body: term(),
          message: nil | String.t()
        }
end