# definitions

*Definitions* are similar to parameters in that you can refer to them from within the commissioning file. They are different to parameters as they are intended for solely internal use, i.e. they can’t be re-configured at any time.

Values of definitions can be of any type - including object types - and be referred to by the `!ref` or `!merge` function, similar to [parameters](https://docs.cybus.io/1-8-0/documentation/services/service-commissioning-files/structure-of-service-commissioning-files/parameters).

## Example

{% code lineNumbers="true" %}

```yaml
modbusEndpointDefaults:
    connectionId: !ref modbusConnection
    operation: subscribe
    interval: 1000
    address:
        fc: 3
        length: 2
```

{% endcode %}

In the above example using `!ref modbusEndpointDefaults` would result in a the value:

{% code lineNumbers="true" %}

```yaml
connectionId: !ref modbusConnection
  operation: subscribe
  interval: 1000
  address:
    fc: 3
    length: 2
```

{% endcode %}
