# API Changes in v2.54

> Reference: API changes of Opc.UaFx.Advanced in v2.54: 93 added, 10 removed, 9 changed, 0 obsoleted.

<dl class="api-definition">
<dt>Releases</dt>
<dd>v2.54.0, v2.54.1, v2.54.1.1</dd>
<dt>Compared with</dt>
<dd>v2.53.1</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced</dd>
</dl>

## Added

### Opc.UaFx

| Symbol | Signature |
|---|---|
| [IOpcEventFieldSet](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopceventfieldset/)<span class="api-meta">1 member</span> | `public interface IOpcEventFieldSet` |
| [IOpcReadOnlyNodeDataStore.ToArray](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcreadonlynodedatastore/members#toarray) | `object[] ToArray()` |
| [IOpcStateMachine](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcstatemachine/)<span class="api-meta">9 members</span> | `public interface IOpcStateMachine` |
| [IOpcStateMachine&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.iopcstatemachine-1/)<span class="api-meta">4 members</span> | `public interface IOpcStateMachine<T> : IOpcStateMachine` |
| [OpcCertificateValidationRules.DisableBackwardsCompatibleValidation](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccertificatevalidationrules/#disablebackwardscompatiblevalidation) | `DisableBackwardsCompatibleValidation = 2` |
| [OpcEndpointDescription.SupportedTokenTypes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcendpointdescription/members#supportedtokentypes) | `public IEnumerable<OpcAccessControlTokenType> SupportedTokenTypes { get; }` |
| [OpcEvent.Create](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcevent/members#create) | `public static OpcEvent Create(OpcContext context, OpcEventFilter filter, IEnumerable<object> data)` |
| [OpcEventDataView](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventdataview/)<span class="api-meta">10 members</span> | `public class OpcEventDataView : IOpcReadOnlyNodeDataStore, IOpcNamespaceResolver` |
| [OpcFiniteStateMachineNode.AvailableStates](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/members#availablestates) | `public OpcNodeId[] AvailableStates { get; set; }` |
| [OpcFiniteStateMachineNode.AvailableStatesNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/members#availablestatesnode) | `public OpcNodeIdArrayVariableNode AvailableStatesNode { get; }` |
| [OpcFiniteStateMachineNode.AvailableTransitions](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/members#availabletransitions) | `public OpcNodeId[] AvailableTransitions { get; set; }` |
| [OpcFiniteStateMachineNode.AvailableTransitionsNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/members#availabletransitionsnode) | `public OpcNodeIdArrayVariableNode AvailableTransitionsNode { get; }` |
| [OpcFiniteStateMachineNode.CanChangeStateTo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/members#canchangestateto-opc-uafx-opccontext-system-object-system-object) | `public bool CanChangeStateTo(OpcContext context, object oldState, object newState)` |
| [OpcFiniteStateMachineNode.CanChangeStateTo](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/members#canchangestateto-opc-uafx-opccontext-system-object) | `public bool CanChangeStateTo(OpcContext context, object newState)` |
| [OpcFiniteStateMachineNode.CreateSubStatesMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/members#createsubstatesmachinenode) | `protected virtual OpcFiniteStateMachineNode CreateSubStatesMachineNode(object state)` |
| [OpcFiniteStateMachineNode.GetSubStatesMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/members#getsubstatesmachinenode-noparams) | `public OpcFiniteStateMachineNode GetSubStatesMachineNode()` |
| [OpcFiniteStateMachineNode.GetSubStatesMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/members#getsubstatesmachinenode-system-object) | `public OpcFiniteStateMachineNode GetSubStatesMachineNode(object state)` |
| [OpcFiniteStateMachineNode.IsAccessible](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/members#isaccessible) | `public override bool IsAccessible(OpcContext context, OpcNodeId viewId)` |
| [OpcFiniteStateMachineNode.SupportsCurrentState](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/members#supportscurrentstate) | `public virtual bool SupportsCurrentState { get; }` |
| [OpcFiniteStateMachineNode&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode-1/)<span class="api-meta">16 members</span> | `public class OpcFiniteStateMachineNode<T> : OpcFiniteStateMachineNode, IOpcNode, IOpcNodeInfo, IOpcStateMachine<T>, IOpcStateMachine` |
| [OpcFolderNode.InheritReferenceTypeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfoldernode/members#inheritreferencetypeid) | `protected override bool InheritReferenceTypeId { get; }` |
| [OpcInstanceNode.InheritReferenceTypeId](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenode/members#inheritreferencetypeid) | `protected virtual bool InheritReferenceTypeId { get; }` |
| [OpcInstanceNodeSnapshot.ToArray](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcinstancenodesnapshot/members#toarray) | `public object[] ToArray()` |
| [OpcNode.EventReported](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#eventreported) | `public event OpcNodeEventReportedEventHandler EventReported` |
| [OpcNode.InitializeChildren](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#initializechildren) | `protected virtual void InitializeChildren(OpcContext context)` |
| [OpcNode.IsAccessible](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#isaccessible) | `public virtual bool IsAccessible(OpcContext context, OpcNodeId viewId)` |
| [OpcNode.OnEventReported](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#oneventreported) | `protected virtual void OnEventReported(OpcNodeEventReportedEventArgs e)` |
| [OpcNode.ResolveModel](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnode/members#resolvemodel) | `protected virtual OpcNodeModel ResolveModel()` |
| [OpcNodeEventReportedEventArgs](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeeventreportedeventargs/)<span class="api-meta">2 members</span> | `public class OpcNodeEventReportedEventArgs : OpcNodeEventArgs` |
| [OpcNodeEventReportedEventHandler](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeeventreportedeventhandler/) | `public delegate void OpcNodeEventReportedEventHandler(object sender, OpcNodeEventReportedEventArgs e)` |
| [OpcNodeIdArrayVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidarrayvariablenode/)<span class="api-meta">19 members</span> | `public class OpcNodeIdArrayVariableNode : OpcDataVariableNode, IOpcNode, IOpcVariableNodeInfo, IOpcNodeInfo` |
| [OpcNodeIdVariableNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeidvariablenode/)<span class="api-meta">11 members</span> | `public class OpcNodeIdVariableNode : OpcDataVariableNode, IOpcNode, IOpcVariableNodeInfo, IOpcNodeInfo` |
| [OpcNodeSet.GetNodes](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodeset/members#getnodes) | `public IEnumerable<IOpcNodeInfo> GetNodes()` |
| [OpcObjectNode.IsHistorizingEvents](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcobjectnode/members#ishistorizingevents) | `public bool IsHistorizingEvents { get; set; }` |
| [OpcReadEventHistoryDetails.NumberOfEvents](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadeventhistorydetails/members#numberofevents) | `public int NumberOfEvents { get; set; }` |
| [OpcReadEventHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadeventhistorydetails/members#opcreadeventhistorydetails-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter) | `public OpcReadEventHistoryDetails(DateTime? startTime, DateTime? endTime, int numberOfEvents, OpcEventFilter filter)` |
| [OpcReadEventHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadeventhistorydetails/members#opcreadeventhistorydetails-system-nullable-of-system-datetime-system-nullable-of-system-datetime-opc-uafx-opceventfilter) | `public OpcReadEventHistoryDetails(DateTime? startTime, DateTime? endTime, OpcEventFilter filter)` |
| [OpcReadEventHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadeventhistorydetails/members#opcreadeventhistorydetails-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter) | `public OpcReadEventHistoryDetails(DateTime? startTime, int numberOfEvents, OpcEventFilter filter)` |
| [OpcReadEventHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadeventhistorydetails/members#opcreadeventhistorydetails-system-int32-opc-uafx-opceventfilter) | `public OpcReadEventHistoryDetails(int numberOfEvents, OpcEventFilter filter)` |
| [OpcReadNodeIdArrayVariableValueCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadnodeidarrayvariablevaluecallback/) | `public delegate OpcVariableValue<OpcNodeId[]> OpcReadNodeIdArrayVariableValueCallback(OpcReadVariableValueContext<OpcNodeIdArrayVariableNode> context, OpcVariableValue<OpcNodeId[]> value)` |
| [OpcStructEncodingField](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcstructencodingfield/)<span class="api-meta">2 members</span> | `public class OpcStructEncodingField : OpcStructField` |
| [OpcWriteNodeIdArrayVariableValueCallback](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcwritenodeidarrayvariablevaluecallback/) | `public delegate OpcVariableValue<OpcNodeId[]> OpcWriteNodeIdArrayVariableValueCallback(OpcWriteVariableValueContext<OpcNodeIdArrayVariableNode> context, OpcVariableValue<OpcNodeId[]> value)` |

### Opc.UaFx.Client

| Symbol | Signature |
|---|---|
| [IOpcEventHistoryNavigator&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.iopceventhistorynavigator-1/)<span class="api-meta">8 members</span> | `public interface IOpcEventHistoryNavigator<T> : IEnumerable<T>, IEnumerable, IDisposable where T : OpcEvent` |
| [IOpcEventHistoryPage&lt;T&gt;](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.iopceventhistorypage-1/)<span class="api-meta">4 members</span> | `public interface IOpcEventHistoryPage<T> : IEnumerable<T>, IEnumerable where T : OpcEvent` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32-system-int32-system-int32-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(DateTime? startTime, DateTime? endTime, int numberOfEvents, int nodeId, int namespaceIndex, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32-system-int32-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(DateTime? startTime, DateTime? endTime, int numberOfEvents, int nodeId, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter-opc-uafx-client-opcreadeventhistory) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(DateTime? startTime, DateTime? endTime, int numberOfEvents, OpcEventFilter filter, OpcReadEventHistory command)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter) | `public IEnumerable<OpcEvent> ReadEventHistory(DateTime? startTime, DateTime? endTime, int nodeId, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32-opc-uafx-opcnodeid-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(DateTime? startTime, DateTime? endTime, int numberOfEvents, OpcNodeId nodeId, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32-system-string-system-int32-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(DateTime? startTime, DateTime? endTime, int numberOfEvents, string nodeId, int namespaceIndex, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32-system-string-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(DateTime? startTime, DateTime? endTime, int numberOfEvents, string nodeId, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-opc-uafx-opceventfilter-opc-uafx-client-opcreadeventhistory) | `public IEnumerable<OpcEvent> ReadEventHistory(DateTime? startTime, DateTime? endTime, OpcEventFilter filter, OpcReadEventHistory command)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-opc-uafx-opcnodeid-opc-uafx-opceventfilter) | `public IEnumerable<OpcEvent> ReadEventHistory(DateTime? startTime, DateTime? endTime, OpcNodeId nodeId, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-string-system-int32-opc-uafx-opceventfilter) | `public IEnumerable<OpcEvent> ReadEventHistory(DateTime? startTime, DateTime? endTime, string nodeId, int namespaceIndex, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-string-opc-uafx-opceventfilter) | `public IEnumerable<OpcEvent> ReadEventHistory(DateTime? startTime, DateTime? endTime, string nodeId, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-int32-system-int32-system-int32-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(DateTime? startTime, int numberOfEvents, int nodeId, int namespaceIndex, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-int32-system-int32-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(DateTime? startTime, int numberOfEvents, int nodeId, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter-opc-uafx-client-opcreadeventhistory) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(DateTime? startTime, int numberOfEvents, OpcEventFilter filter, OpcReadEventHistory command)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-int32-opc-uafx-opcnodeid-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(DateTime? startTime, int numberOfEvents, OpcNodeId nodeId, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-int32-system-string-system-int32-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(DateTime? startTime, int numberOfEvents, string nodeId, int namespaceIndex, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-nullable-of-system-datetime-system-int32-system-string-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(DateTime? startTime, int numberOfEvents, string nodeId, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-int32-system-int32-system-int32-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(int numberOfEvents, int nodeId, int namespaceIndex, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-int32-system-int32-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(int numberOfEvents, int nodeId, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-int32-opc-uafx-opceventfilter-opc-uafx-client-opcreadeventhistory) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(int numberOfEvents, OpcEventFilter filter, OpcReadEventHistory command)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-int32-opc-uafx-opcnodeid-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(int numberOfEvents, OpcNodeId nodeId, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-int32-system-string-system-int32-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(int numberOfEvents, string nodeId, int namespaceIndex, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-system-int32-system-string-opc-uafx-opceventfilter) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(int numberOfEvents, string nodeId, OpcEventFilter filter)` |
| [OpcClient.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventhistory#readeventhistory-opc-uafx-opcnodeid-opc-uafx-opcreadeventhistorydetails) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventHistory(OpcNodeId nodeId, OpcReadEventHistoryDetails details)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter-system-collections-generic-ienumerable-of-opc-uafx-opcnodeid) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(DateTime? startTime, DateTime? endTime, int numberOfEvents, OpcEventFilter filter, IEnumerable<OpcNodeId> nodeIds)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter-system-collections-generic-ienumerable-of-opc-uafx-client-opcreadeventhistory) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(DateTime? startTime, DateTime? endTime, int numberOfEvents, OpcEventFilter filter, IEnumerable<OpcReadEventHistory> commands)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter-opc-uafx-opcnodeid-array) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(DateTime? startTime, DateTime? endTime, int numberOfEvents, OpcEventFilter filter, params OpcNodeId[] nodeIds)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter-opc-uafx-client-opcreadeventhistory-array) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(DateTime? startTime, DateTime? endTime, int numberOfEvents, OpcEventFilter filter, params OpcReadEventHistory[] commands)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-opc-uafx-opceventfilter-system-collections-generic-ienumerable-of-opc-uafx-opcnodeid) | `public IDictionary<OpcNodeId, IEnumerable<OpcEvent>> ReadEventsHistory(DateTime? startTime, DateTime? endTime, OpcEventFilter filter, IEnumerable<OpcNodeId> nodeIds)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-opc-uafx-opceventfilter-system-collections-generic-ienumerable-of-opc-uafx-client-opcreadeventhistory) | `public IDictionary<OpcNodeId, IEnumerable<OpcEvent>> ReadEventsHistory(DateTime? startTime, DateTime? endTime, OpcEventFilter filter, IEnumerable<OpcReadEventHistory> commands)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-opc-uafx-opceventfilter-opc-uafx-opcnodeid-array) | `public IDictionary<OpcNodeId, IEnumerable<OpcEvent>> ReadEventsHistory(DateTime? startTime, DateTime? endTime, OpcEventFilter filter, params OpcNodeId[] nodeIds)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-nullable-of-system-datetime-system-nullable-of-system-datetime-opc-uafx-opceventfilter-opc-uafx-client-opcreadeventhistory-array) | `public IDictionary<OpcNodeId, IEnumerable<OpcEvent>> ReadEventsHistory(DateTime? startTime, DateTime? endTime, OpcEventFilter filter, params OpcReadEventHistory[] commands)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter-system-collections-generic-ienumerable-of-opc-uafx-opcnodeid) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(DateTime? startTime, int numberOfEvents, OpcEventFilter filter, IEnumerable<OpcNodeId> nodeIds)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter-system-collections-generic-ienumerable-of-opc-uafx-client-opcreadeventhistory) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(DateTime? startTime, int numberOfEvents, OpcEventFilter filter, IEnumerable<OpcReadEventHistory> commands)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter-opc-uafx-opcnodeid-array) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(DateTime? startTime, int numberOfEvents, OpcEventFilter filter, params OpcNodeId[] nodeIds)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-nullable-of-system-datetime-system-int32-opc-uafx-opceventfilter-opc-uafx-client-opcreadeventhistory-array) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(DateTime? startTime, int numberOfEvents, OpcEventFilter filter, params OpcReadEventHistory[] commands)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-collections-generic-ienumerable-of-opc-uafx-opcnodeid-opc-uafx-opcreadeventhistorydetails) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(IEnumerable<OpcNodeId> nodeIds, OpcReadEventHistoryDetails details)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-int32-opc-uafx-opceventfilter-system-collections-generic-ienumerable-of-opc-uafx-opcnodeid) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(int numberOfEvents, OpcEventFilter filter, IEnumerable<OpcNodeId> nodeIds)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-int32-opc-uafx-opceventfilter-system-collections-generic-ienumerable-of-opc-uafx-client-opcreadeventhistory) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(int numberOfEvents, OpcEventFilter filter, IEnumerable<OpcReadEventHistory> commands)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-int32-opc-uafx-opceventfilter-opc-uafx-opcnodeid-array) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(int numberOfEvents, OpcEventFilter filter, params OpcNodeId[] nodeIds)` |
| [OpcClient.ReadEventsHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/readeventshistory#readeventshistory-system-int32-opc-uafx-opceventfilter-opc-uafx-client-opcreadeventhistory-array) | `public IOpcEventHistoryNavigator<OpcEvent> ReadEventsHistory(int numberOfEvents, OpcEventFilter filter, params OpcReadEventHistory[] commands)` |
| [OpcReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcreadeventhistory/)<span class="api-meta">5 members</span> | `public class OpcReadEventHistory : OpcNodeServiceCommand` |

### Opc.UaFx.Server

| Symbol | Signature |
|---|---|
| [IOpcEventHistoryProvider](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.iopceventhistoryprovider/)<span class="api-meta">2 members</span> | `public interface IOpcEventHistoryProvider` |
| [OpcNodeManager.ReadEventHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#readeventhistory) | `protected virtual IEnumerable<OpcEvent> ReadEventHistory(OpcContext context, IOpcNode node, OpcEventFilter eventFilter, DateTime? startTime, DateTime? endTime, bool timeFlowsBackward, uint? maxCount)` |
| [OpcNodeManager.RetrieveEventHistoryProvider](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#retrieveeventhistoryprovider) | `protected virtual IOpcEventHistoryProvider RetrieveEventHistoryProvider(IOpcNode node)` |
| [OpcServerBinding.UseExclusiveAddress](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserverbinding/members#useexclusiveaddress) | `public bool UseExclusiveAddress { get; set; }` |

### Opc.UaFx.Services

| Symbol | Signature |
|---|---|
| [IOpcReadEventsHistoryService](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.iopcreadeventshistoryservice/)<span class="api-meta">3 members</span> | `[CLSCompliant(false)] public interface IOpcReadEventsHistoryService : IOpcService<OpcReadEventsHistoryResponse, OpcReadEventsHistoryRequest>` |
| [OpcReadEventsHistoryRequest](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcreadeventshistoryrequest/)<span class="api-meta">7 members</span> | `[CLSCompliant(false)] public class OpcReadEventsHistoryRequest : OpcServiceRequest<HistoryReadValueId, HistoryReadValueIdCollection>, IOpcServiceRequest` |
| [OpcReadEventsHistoryResponse](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.services.opcreadeventshistoryresponse/)<span class="api-meta">4 members</span> | `[CLSCompliant(false)] public class OpcReadEventsHistoryResponse : OpcServiceResponse<HistoryReadResultCollection>, IOpcServiceResponse` |

## Removed

### Opc.UaFx

| Symbol | Signature |
|---|---|
| OpcEventNodeView.EventTypeId | `public OpcNodeId EventTypeId { get; }` |
| OpcEventNodeView.Filter | `public OpcEventFilter Filter { get; }` |
| OpcEventNodeView.Get&lt;T&gt; | `public T Get<T>(OpcAttribute attribute, OpcName name)` |
| OpcEventNodeView.Get&lt;T&gt; | `public T Get<T>(OpcAttribute attribute, OpcNamePath path)` |
| OpcEventNodeView.Get&lt;T&gt; | `public T Get<T>(OpcAttribute attribute, params OpcName[] pathElements)` |
| OpcEventNodeView.Get&lt;T&gt; | `public T Get<T>(OpcAttribute attribute, string name = "")` |
| OpcEventNodeView.Get&lt;T&gt; | `public T Get<T>(OpcName name)` |
| OpcEventNodeView.Get&lt;T&gt; | `public T Get<T>(string name = "")` |
| OpcReadEventHistoryDetails.NumberOfValues | `public int NumberOfValues { get; set; }` |
| OpcReadEventHistoryDetails | `public OpcReadEventHistoryDetails()` |

## Changed

### Opc.UaFx

| Symbol | Signature (old, new) |
|---|---|
| [OpcEventDataSetItem](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventdatasetitem/) | `public class OpcEventDataSetItem : OpcNotificationDataSetItem`<br>`public class OpcEventDataSetItem : OpcNotificationDataSetItem, IOpcEventFieldSet` |
| [OpcEventNodeView](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnodeview/) | `public class OpcEventNodeView : IOpcReadOnlyNodeDataStore, IOpcNamespaceResolver`<br>`public class OpcEventNodeView : OpcEventDataView, IOpcReadOnlyNodeDataStore, IOpcNamespaceResolver` |
| [OpcEventNodeView.Data](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opceventnodeview/members#data) | `public OpcEventDataSetItem Data { get; }`<br>`public IOpcEventFieldSet Data { get; }` |
| [OpcExclusiveLimitStateMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcexclusivelimitstatemachinenode/) | `[OpcNodeType(9318)] public class OpcExclusiveLimitStateMachineNode : OpcFiniteStateMachineNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(9318)] public class OpcExclusiveLimitStateMachineNode : OpcFiniteStateMachineNode, IOpcNode, IOpcNodeInfo, IOpcStateMachine` |
| [OpcFiniteStateMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcfinitestatemachinenode/) | `[OpcNodeType(2771)] public class OpcFiniteStateMachineNode : OpcStateMachineNode, IOpcNode, IOpcNodeInfo`<br>`[OpcNodeType(2771)] public class OpcFiniteStateMachineNode : OpcStateMachineNode, IOpcNode, IOpcNodeInfo, IOpcStateMachine` |
| [OpcReadEventHistoryDetails](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadeventhistorydetails/) | `public class OpcReadEventHistoryDetails : OpcReadHistoryDetails`<br>`public class OpcReadEventHistoryDetails` |
| [OpcReadEventHistoryDetails.Filter](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcreadeventhistorydetails/members#filter) | `public OpcEventFilter Filter { get; }`<br>`public OpcEventFilter Filter { get; set; }` |
| [OpcShelvedStateMachineNode](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcshelvedstatemachinenode/) | `public class OpcShelvedStateMachineNode : OpcFiniteStateMachineNode, IOpcNode, IOpcNodeInfo`<br>`public class OpcShelvedStateMachineNode : OpcFiniteStateMachineNode, IOpcNode, IOpcNodeInfo, IOpcStateMachine` |

### Opc.UaFx.Client

| Symbol | Signature (old, new) |
|---|---|
| [OpcClient](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcclient/) | `public class OpcClient : OpcApplicationInstance<OpcTransport, OpcClientSecurity>, IDisposable, IOpcApplicationInstance, IOpcNamespaceResolver, IOpcAddNodesService, IOpcService<OpcAddNodesResponse, OpcAddNodesRequest>, IOpcAddReferencesService, IOpcService<OpcAddReferencesResponse, OpcAddReferencesRequest>, IOpcBrowseService, IOpcService<OpcBrowseResponse, OpcBrowseRequest>, IOpcBrowseNextService, IOpcService<OpcBrowseNextResponse, OpcBrowseNextRequest>, IOpcCallMethodsService, IOpcService<OpcCallMethodsResponse, OpcCallMethodsRequest>, IOpcDeleteNodesService, IOpcService<OpcDeleteNodesResponse, OpcDeleteNodesRequest>, IOpcDeleteReferencesService, IOpcService<OpcDeleteReferencesResponse, OpcDeleteReferencesRequest>, IOpcReadNodesService, IOpcService<OpcReadNodesResponse, OpcReadNodesRequest>, IOpcReadNodesHistoryService, IOpcService<OpcReadNodesHistoryResponse, OpcReadNodesHistoryRequest>, IOpcRegisterNodesService, IOpcService<OpcRegisterNodesResponse, OpcRegisterNodesRequest>, IOpcTranslatePathsService, IOpcService<OpcTranslatePathsResponse, OpcTranslatePathsRequest>, IOpcUnregisterNodesService, IOpcService<OpcUnregisterNodesResponse, OpcUnregisterNodesRequest>, IOpcUpdateNodesHistoryService, IOpcService<OpcUpdateNodesHistoryResponse, OpcUpdateNodesHistoryRequest>, IOpcWriteNodesService, IOpcService<OpcWriteNodesResponse, OpcWriteNodesRequest>`<br>`public class OpcClient : OpcApplicationInstance<OpcTransport, OpcClientSecurity>, IDisposable, IOpcApplicationInstance, IOpcNamespaceResolver, IOpcAddNodesService, IOpcService<OpcAddNodesResponse, OpcAddNodesRequest>, IOpcAddReferencesService, IOpcService<OpcAddReferencesResponse, OpcAddReferencesRequest>, IOpcBrowseService, IOpcService<OpcBrowseResponse, OpcBrowseRequest>, IOpcBrowseNextService, IOpcService<OpcBrowseNextResponse, OpcBrowseNextRequest>, IOpcCallMethodsService, IOpcService<OpcCallMethodsResponse, OpcCallMethodsRequest>, IOpcDeleteNodesService, IOpcService<OpcDeleteNodesResponse, OpcDeleteNodesRequest>, IOpcDeleteReferencesService, IOpcService<OpcDeleteReferencesResponse, OpcDeleteReferencesRequest>, IOpcReadEventsHistoryService, IOpcService<OpcReadEventsHistoryResponse, OpcReadEventsHistoryRequest>, IOpcReadNodesService, IOpcService<OpcReadNodesResponse, OpcReadNodesRequest>, IOpcReadNodesHistoryService, IOpcService<OpcReadNodesHistoryResponse, OpcReadNodesHistoryRequest>, IOpcRegisterNodesService, IOpcService<OpcRegisterNodesResponse, OpcRegisterNodesRequest>, IOpcTranslatePathsService, IOpcService<OpcTranslatePathsResponse, OpcTranslatePathsRequest>, IOpcUnregisterNodesService, IOpcService<OpcUnregisterNodesResponse, OpcUnregisterNodesRequest>, IOpcUpdateNodesHistoryService, IOpcService<OpcUpdateNodesHistoryResponse, OpcUpdateNodesHistoryRequest>, IOpcWriteNodesService, IOpcService<OpcWriteNodesResponse, OpcWriteNodesRequest>` |
