# `WardrikOAuth.Metadata`

An authorization server's metadata, discovered from its issuer or resource.

# `t`

```elixir
@type t() :: %WardrikOAuth.Metadata{
  authorization_endpoint: String.t() | nil,
  device_authorization_endpoint: String.t() | nil,
  documents_supported?: boolean(),
  iss_supported?: boolean(),
  issuer: String.t() | nil,
  registration_endpoint: String.t() | nil,
  token_endpoint: String.t()
}
```

An authorization server's metadata.

# `discover`

```elixir
@spec discover(WardrikOAuth.Provider.t(), keyword()) :: {:ok, t()} | {:error, term()}
```

Returns the metadata of `provider`'s authorization server.

Uses the provider's own endpoints if it names both. Otherwise discovers them from `issuer`, or
from `resource`'s protected resource metadata.

---

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