Authentication configuration.
@type basic() :: %{type: :basic, username: term(), password: term()}
@type bearer() :: %{type: :bearer, token: term()}
@type header() :: %{type: :header, name: term(), value: term()}
@type t() :: term()