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

An operation on a channel: a `:send` (the application publishes) or
`:receive` (the application consumes).

# `action`

```elixir
@type action() :: :send | :receive
```

# `t`

```elixir
@type t() :: %AsyncApiSpex.Operation{
  action: action() | nil,
  bindings: map() | nil,
  channel: AsyncApiSpex.Reference.t() | nil,
  description: String.t() | nil,
  extensions: map(),
  messages: [AsyncApiSpex.Reference.t()] | nil,
  summary: String.t() | nil,
  tags: [AsyncApiSpex.Tag.t()] | nil,
  title: String.t() | nil
}
```

---

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