@type auth() :: %{api_token: binary()}
@type t() :: %IncidentIo.Client{auth: auth() | nil, endpoint: binary()}
@spec new() :: t()
@spec new(binary()) :: t()
@spec new(map()) :: t()
@spec new(map(), binary()) :: t()
@spec new(auth(), binary()) :: t()