# API Changes in v2.51

> Reference: API changes of Opc.UaFx.Advanced in v2.51: 6 added, 0 removed, 3 changed, 0 obsoleted.

<dl class="api-definition">
<dt>Releases</dt>
<dd>v2.51.0, v2.51.1, v2.51.2, v2.51.3, v2.51.4, v2.51.4.1</dd>
<dt>Compared with</dt>
<dd>v2.50.7</dd>
<dt>Package</dt>
<dd>Opc.UaFx.Advanced</dd>
</dl>

## Added

### Opc.UaFx

| Symbol | Signature |
|---|---|
| [OpcContaineeStates](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opccontaineestates/)<span class="api-meta">8 members</span> | `[Flags] public enum OpcContaineeStates : byte` |
| [OpcNodeModel.CreateByDefault](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/members#createbydefault-system-boolean) | `public OpcNodeModel CreateByDefault(bool recursive)` |
| [OpcNodeModel.OmitByDefault](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/members#omitbydefault-system-boolean) | `public OpcNodeModel OmitByDefault(bool recursive)` |
| [OpcNodeModel.OmitOptionals](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.opcnodemodel/members#omitoptionals-system-boolean) | `public OpcNodeModel OmitOptionals(bool recursive)` |

### Opc.UaFx.Client

| Symbol | Signature |
|---|---|
| [OpcSubscription.ResendData](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.client.opcsubscription/members#resenddata) | `public void ResendData()` |

### Opc.UaFx.Server

| Symbol | Signature |
|---|---|
| [OpcServer.EstimatedReturnTime](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcserver/members#estimatedreturntime) | `public DateTime? EstimatedReturnTime { get; set; }` |

## Changed

### Opc.UaFx.Server

| Symbol | Signature (old, new) |
|---|---|
| [IOpcNodeHistoryProvider.ReadHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.iopcnodehistoryprovider/members#readhistory) | `IEnumerable<OpcHistoryValue> ReadHistory(OpcContext context, DateTime? startTime, DateTime? endTime, OpcReadHistoryOptions options)`<br>`IEnumerable<OpcHistoryValue> ReadHistory(OpcContext context, DateTime? startTime, DateTime? endTime, bool timeFlowsBackward, uint? maxCount, OpcReadHistoryOptions options)` |
| [OpcNodeHistorian.ReadHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodehistorian/members#readhistory) | `public IEnumerable<OpcHistoryValue> ReadHistory(OpcContext context, DateTime? startTime, DateTime? endTime, OpcReadHistoryOptions options)`<br>`public IEnumerable<OpcHistoryValue> ReadHistory(OpcContext context, DateTime? startTime, DateTime? endTime, bool timeFlowsBackward, uint? maxCount, OpcReadHistoryOptions options)` |
| [OpcNodeManager.ReadHistory](https://www.traeger.de/en/docs/development/opcua/api/v2.59/opc.uafx.server.opcnodemanager/members#readhistory) | `protected virtual IEnumerable<OpcHistoryValue> ReadHistory(IOpcNode node, DateTime? startTime, DateTime? endTime, OpcReadHistoryOptions options)`<br>`protected virtual IEnumerable<OpcHistoryValue> ReadHistory(OpcContext context, IOpcNode node, DateTime? startTime, DateTime? endTime, bool timeFlowsBackward, uint? maxCount, OpcReadHistoryOptions options)` |
