# `AsyncApiSpex.Components`
[🔗](https://github.com/jamescarr/ankusa/blob/async_api_spex-v0.2.0/packages/async_api_spex/lib/async_api_spex/components.ex#L1)

Reusable objects referenced from elsewhere in the document.

Keys are the component names; `AsyncApiSpex.resolve/1` fills `schemas` and
`messages` from `use AsyncApiSpex.Schema` and `use AsyncApiSpex.Message`
declarations.

# `t`

```elixir
@type t() :: %AsyncApiSpex.Components{
  channels: %{optional(String.t()) =&gt; AsyncApiSpex.Channel.t()},
  correlation_ids: %{optional(String.t()) =&gt; AsyncApiSpex.CorrelationId.t()},
  extensions: map(),
  messages: %{optional(String.t()) =&gt; AsyncApiSpex.Message.t()},
  operations: %{optional(String.t()) =&gt; AsyncApiSpex.Operation.t()},
  parameters: %{optional(String.t()) =&gt; AsyncApiSpex.Parameter.t()},
  schemas: %{optional(String.t()) =&gt; map()},
  servers: %{optional(String.t()) =&gt; AsyncApiSpex.Server.t()}
}
```

---

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