# `Dmn.Model.Requirement`
[🔗](https://github.com/FeeJai/BDM/blob/dmn-v0.1.0/apps/dmn/lib/dmn/model/drg.ex#L1)

An information, knowledge or authority requirement (DMN 1.6, 6.3.13 to 6.3.15): `element` is the reference to what is
required, and `kind` says what kind of requirement it is.

| `kind` | XML | Required |
| ------ | --- | -------- |
| `:decision` | `informationRequirement/requiredDecision` | a decision, whose value is an input |
| `:input` | `informationRequirement/requiredInput` | an input data |
| `:knowledge` | `knowledgeRequirement/requiredKnowledge` | a business knowledge model or a decision service, which is invoked |
| `:authority_decision`, `:authority_input`, `:authority_authority` | `authorityRequirement/…` | a source of authority, which the engine does not use |

# `kind`

```elixir
@type kind() ::
  :decision
  | :input
  | :knowledge
  | :authority_decision
  | :authority_input
  | :authority_authority
```

# `t`

```elixir
@type t() :: %Dmn.Model.Requirement{
  element: Dmn.Model.Reference.t(),
  id: String.t() | nil,
  kind: kind(),
  line: pos_integer() | nil
}
```

---

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