# `Money.ExchangeRates.Supervisor`
[🔗](https://github.com/ex-money/money/blob/v6.2.0/lib/money/exchange_rates/supervisor.ex#L1)

> This module is deprecated. Add `Money.ExchangeRates.Retriever` to your supervision tree directly.

Supervises the exchange rates retrieval service.

> #### Deprecated {: .warning}
>
> Add `Money.ExchangeRates.Retriever` directly to your application's
> supervision tree instead:
>
> ```elixir
> children = [
>   Money.ExchangeRates.Retriever
> ]
> ```
>
> If your callback module depends on other applications being started first,
> position `Money.ExchangeRates.Retriever` after those dependencies in the
> children list.

# `child_spec`

Returns a specification to start this module under a supervisor.

See `Supervisor`.

# `delete_retriever`

> This function is deprecated. Migrate to managing `Money.ExchangeRates.Retriever` in your own supervision tree, then use your supervisor's `delete_child/2`.

```elixir
@spec delete_retriever() :: :ok | {:error, :not_found | :restarting | :running}
```

# `restart_retriever`

> This function is deprecated. Migrate to managing `Money.ExchangeRates.Retriever` in your own supervision tree, then use your supervisor's `restart_child/2`.

```elixir
@spec restart_retriever() ::
  {:ok, pid() | :undefined}
  | {:ok, pid() | :undefined, term()}
  | {:error, term()}
```

# `retriever_running?`

> This function is deprecated. Use `Process.whereis(Money.ExchangeRates.Retriever)` directly.

```elixir
@spec retriever_running?() :: boolean()
```

# `retriever_status`

> This function is deprecated. Use `Process.whereis(Money.ExchangeRates.Retriever)` to check if the retriever is running.

```elixir
@spec retriever_status() :: :running | :stopped | :not_started
```

# `start_link`

> This function is deprecated. Add `Money.ExchangeRates.Retriever` to your supervision tree directly.

```elixir
@spec start_link(Keyword.t()) :: Supervisor.on_start()
```

# `start_retriever`

> This function is deprecated. Add `Money.ExchangeRates.Retriever` to your supervision tree directly.

```elixir
@spec start_retriever(Money.ExchangeRates.Config.t()) :: Supervisor.on_start_child()
```

# `stop`

> This function is deprecated. Manage `Money.ExchangeRates.Retriever` directly in your supervision tree.

```elixir
@spec stop(Supervisor.supervisor()) :: :ok | {:error, :not_found}
```

# `stop_retriever`

> This function is deprecated. Migrate to managing `Money.ExchangeRates.Retriever` in your own supervision tree, then use your supervisor's `terminate_child/2`.

```elixir
@spec stop_retriever() :: :ok | {:error, :not_found}
```

---

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