# `Snodo.Authorization.Component`
[🔗](https://github.com/joshrotenberg/snodo/blob/v0.2.0/lib/snodo/authorization/component.ex#L1)

The identity of one registered router component shown to an authorization policy.

`name` is the registered component name, which the router keeps unique within
each catalog. `uri` carries the exact registered resource URI or resource URI
template and is `nil` for tools and prompts. A policy may key on either, and
new fields are additive, so match with a map pattern rather than positionally.

# `kind`

```elixir
@type kind() :: :tool | :prompt | :resource | :resource_template
```

# `t`

```elixir
@type t() :: %Snodo.Authorization.Component{
  kind: kind(),
  name: String.t(),
  uri: String.t() | nil
}
```

---

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