# `Incant.DataSource`
[🔗](https://github.com/elixir-vibe/incant/blob/v0.1.1/lib/incant/data_source.ex#L1)

Behaviour for non-Ecto and analytical data sources.

# `capability`

```elixir
@type capability() ::
  :filter
  | :sort
  | :paginate
  | :aggregate
  | :group
  | :timeseries
  | :search
  | :export
  | :live_update
  | :mutate
  | :drilldown
```

# `capabilities`

```elixir
@callback capabilities() :: [capability()]
```

# `query`

```elixir
@callback query(Incant.Query.t()) :: {:ok, Incant.Result.t()} | {:error, term()}
```

# `schema`

```elixir
@callback schema() :: term()
```

---

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