# Node models

<dl class="api-definition">
<dt>Concept</dt>
<dd><a href="/docs/development/opcua/server/node-models">Node models</a></dd>
</dl>

| Type | Description |
|---|---|
| [IOpcNodeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcnodeinfo/) | Defines an interface which can be used to access basic properties used over any kind of node in an immutable way. |
| [OpcModellingDirective](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmodellingdirective/) | Specifies how a node handles one of its child nodes according to its node model (see [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/)). |
| [OpcModellingRule](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmodellingrule/) | Specifies the modelling rule of a node of a type, as defined by OPC UA, which determines whether the node is to be created for each instance of the type. |
| [OpcNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/) | Represents the base class of the node classes which define the nodes of an address space, such as [OpcObjectNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/), [OpcVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcvariablenode/) and [OpcMethodNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcmethodnode/). |
| [OpcNodeModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/) |  |
| [OpcNodeTypeInfo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodetypeinfo/) | Represents type declarations used for node types. |
