# `Wardrik.Channel.Installation`

A channel added to one workspace, such as a Slack app added to one Slack workspace.

    %Wardrik.Channel.Installation{
      channel: "slack",
      workspace: "T0123",
      name: "Acme",
      owner: "acme",
      token: "xoxb-...",
      approvers: ["@maria"]
    }

## Fields

  * `:channel` - the channel's name, as `"slack"`.
  * `:workspace` - the workspace's ID in the chat app.
  * `:owner` - whose agents answer there: an org, as `"acme"`, or a person, as `"acme/@jon"`.
  * `:token` - the chat app's token for the workspace. Hidden from `inspect/2`.
  * `:name` - the workspace's name in the chat app, if it gave one.
  * `:approvers` - who may decide the calls those agents wait on, named as the chat app names
    people, or `:anyone`. With `[]`, the person who started the turn decides.

# `t`

```elixir
@type t() :: %Wardrik.Channel.Installation{
  approvers: [String.t()] | :anyone,
  channel: String.t(),
  name: String.t() | nil,
  owner: String.t(),
  token: String.t(),
  workspace: String.t()
}
```

# `agents`

```elixir
@spec agents(t()) :: String.t()
```

Returns the resource pattern for the owner's agents, as `acme/agent/*`.

---

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