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

An `itemDefinition` (DMN 1.6, 7.3.3): a type of the model. It has one of a `type_ref` (a built-in type or another item
definition), `components` (a context of them), and a `function_item`; or none of them, which is `Any`. `allowed_values` and
`type_constraint` are `Dmn.Model.UnaryTests`, and `is_collection` makes it a list of the type.

# `t`

```elixir
@type t() :: %Dmn.Model.ItemDefinition{
  allowed_values: Dmn.Model.UnaryTests.t() | nil,
  components: [t()],
  function_item: Dmn.Model.FunctionItem.t() | nil,
  id: String.t() | nil,
  is_collection: boolean(),
  label: String.t() | nil,
  line: pos_integer() | nil,
  name: String.t(),
  type_constraint: Dmn.Model.UnaryTests.t() | nil,
  type_language: String.t() | nil,
  type_ref: String.t() | nil
}
```

---

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