# `Ory.Connection`

Handle Tesla connections for Ory.

Additional middleware can be set in the compile-time or runtime configuration:

    config :tesla, Ory.Connection,
      base_url: "http://localhost",
      adapter: Tesla.Adapter.Hackney

The default base URL can also be set as:

    config :ory_kratos,
      :base_url, "http://localhost"

# `options`

```elixir
@type options() :: [base_url: String.t(), user_agent: String.t()]
```

The list of options that can be passed to new/1.

- `base_url`: Overrides the base URL on a per-client basis.
- `user_agent`: Overrides the User-Agent header.

# `adapter`

Returns the default adapter for this API.

# `middleware`

```elixir
@spec middleware(options()) :: [Tesla.Client.middleware()]
```

Returns fully configured middleware for passing to Tesla.client/2.

# `new`

```elixir
@spec new() :: Tesla.Env.client()
```

Configure a client with no authentication.

### Returns

Tesla.Env.client

# `new`

```elixir
@spec new(options()) :: Tesla.Env.client()
```

Configure a client that may have authentication.

### Parameters

- `options`: a keyword list of OpenAPIPetstore.Connection.options.

### Returns

Tesla.Env.client

# `request`

```elixir
@spec request(Tesla.Client.t(), [Tesla.option()]) :: Tesla.Env.result()
```

Forward requests to Tesla.

---

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