using AVEVA.Historian.Client.Models; namespace AVEVA.Historian.Client; public sealed class HistorianClientOptions { public const int DefaultPort = 32568; public required string Host { get; init; } public int Port { get; init; } = DefaultPort; public TimeSpan ConnectTimeout { get; init; } = TimeSpan.FromSeconds(5); public TimeSpan RequestTimeout { get; init; } = TimeSpan.FromSeconds(30); public string UserName { get; init; } = string.Empty; public string Password { get; init; } = string.Empty; public bool IntegratedSecurity { get; init; } public bool Compression { get; init; } public HistorianConnectionKind ConnectionKind { get; init; } = HistorianConnectionKind.Process; public HistorianTransport Transport { get; init; } = HistorianTransport.LocalPipe; public string TargetSpn { get; init; } = @"NT SERVICE\aahClientAccessPoint"; /// /// When true, the WCF channel factories used by the SDK accept the server's /// X.509 certificate without chain validation. Useful when connecting to a /// development / on-prem Historian whose /HistCert endpoint presents an /// installer-generated self-signed cert that isn't in the local trust store /// (notably .NET WCF on Linux ignores the system CA bundle for its own /// X509Chain checks). Default false; do not enable in production where the /// server's identity matters. /// public bool AllowUntrustedServerCertificate { get; init; } /// /// Overrides the expected DNS identity in the endpoint address — set this to /// whatever DNS name the server's certificate actually claims (often /// localhost on installer-generated AVEVA Historian certificates) when /// connecting via IP address or a hostname that doesn't match the cert SAN/CN. /// Without this override WCF rejects the channel with /// "Identity check failed for outgoing message". Has no effect on transports /// that don't validate a server certificate. /// public string? ServerDnsIdentity { get; init; } }