# `Snodo.Authorization.Component`
[🔗](https://github.com/joshrotenberg/snodo/blob/v0.4.1/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. `requested_uri` carries the
concrete URI for a resource-template read or subscription read check. It is
`nil` during discovery and template completion, where no concrete resource
URI was requested. A policy may key on these fields; 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(),
  requested_uri: String.t() | nil,
  uri: String.t() | nil
}
```

---

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