# `OffBroadway.Splunk.Client`
[🔗](https://github.com/Intility/off_broadway_splunk/blob/v3.0.1/lib/off_broadway/splunk/client.ex#L1)

A generic behaviour for implementing Splunk clients for
`OffBroadway.Splunk.Producer`.

This module defines callbacks to normalize options and receive items
for a Splunk job.

Modules that implements this behaviour should be passed as the
`:splunk_client` option from `OffBroadway.Splunk.Producer`.

# `messages`

```elixir
@type messages() :: [Broadway.Message.t()]
```

# `ack_message`
*optional* 

```elixir
@callback ack_message(message :: Broadway.Message.t(), ack_options :: any()) :: any()
```

# `init`

```elixir
@callback init(opts :: any()) ::
  {:ok, normalized_opts :: any()} | {:error, reason :: binary()}
```

# `receive_messages`

```elixir
@callback receive_messages(sid :: binary(), demand :: pos_integer(), opts :: any()) ::
  {:ok, messages()} | {:error, reason :: any()}
```

# `receive_status`

```elixir
@callback receive_status(name :: binary(), opts :: any()) ::
  {:ok, response :: any()} | {:error, reason :: any()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
