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

An AsyncAPI 3.0 document.

The top-level object. `asyncapi` is fixed to `"3.0.0"`. `servers`, `channels`,
and `operations` are maps keyed by the id used to reference them from
elsewhere in the document. `components` holds reusable objects extracted by
`AsyncApiSpex.resolve/1`.

# `t`

```elixir
@type t() :: %AsyncApiSpex.Document{
  asyncapi: String.t(),
  channels: %{optional(String.t()) =&gt; AsyncApiSpex.Channel.t()},
  components: AsyncApiSpex.Components.t(),
  default_content_type: String.t() | nil,
  extensions: map(),
  id: String.t() | nil,
  info: AsyncApiSpex.Info.t() | nil,
  operations: %{optional(String.t()) =&gt; AsyncApiSpex.Operation.t()},
  servers: %{optional(String.t()) =&gt; AsyncApiSpex.Server.t()}
}
```

---

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