src/Azure.IIoT.OpcUa.Publisher/src/Stack/Runtime/OpcUaClientOptions.cs (30 lines of code) (raw):

// ------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License (MIT). See License.txt in the repo root for license information. // ------------------------------------------------------------ namespace Azure.IIoT.OpcUa.Publisher.Stack { using System; /// <summary> /// Opc ua client options /// </summary> public sealed class OpcUaClientOptions { /// <summary> /// Application name /// </summary> public string? ApplicationName { get; set; } /// <summary> /// Application uri /// </summary> public string? ApplicationUri { get; set; } /// <summary> /// Product uri /// </summary> public string? ProductUri { get; set; } /// <summary> /// Default session timeout. This is the timoout used to /// establish a session with the server. /// </summary> public TimeSpan? DefaultSessionTimeoutDuration { get; set; } /// <summary> /// Default service call timeout duration. If the service /// call timeout is not specified in the request header and /// the this value is used. /// </summary> public TimeSpan? DefaultServiceCallTimeoutDuration { get; set; } /// <summary> /// Default connect timeout duration. If the connect timeout /// is not specified in the request header this value is used. /// If not specified the default service call timeout is used. /// </summary> public TimeSpan? DefaultConnectTimeoutDuration { get; set; } /// <summary> /// Keep alive interval. The client will send keep alives /// to the server at this interval and expect a response /// or initiate a session recovery / reconnect sequence. /// </summary> public TimeSpan? KeepAliveIntervalDuration { get; set; } /// <summary> /// How long to wait until connected or until /// reconnecting is attempted. /// </summary> public TimeSpan? CreateSessionTimeoutDuration { get; set; } /// <summary> /// Reverse connect port to use other than the /// default port 4840. /// </summary> public int? ReverseConnectPort { get; set; } /// <summary> /// Disable complex type preloading. The type system /// will still be lazily loaded when requested e.g., /// during subscription creation. /// </summary> public bool? DisableComplexTypePreloading { get; set; } /// <summary> /// How long to at least wait until reconnecting. /// </summary> public TimeSpan? MinReconnectDelayDuration { get; set; } /// <summary> /// How long to at most wait until reconnecting. /// </summary> public TimeSpan? MaxReconnectDelayDuration { get; set; } /// <summary> /// How long to keep clients around after a service call. /// </summary> public TimeSpan? LingerTimeoutDuration { get; set; } /// <summary> /// Transport quota /// </summary> public TransportOptions Quotas { get; } = new TransportOptions(); /// <summary> /// Security configuration /// </summary> public SecurityOptions Security { get; } = new SecurityOptions(); /// <summary> /// Enable traces in the stack beyond errors /// </summary> public bool? EnableOpcUaStackLogging { get; set; } /// <summary> /// Folder to write keysets to for later decryption /// of wireshark traces. /// </summary> public string? OpcUaKeySetLogFolderName { get; set; } /// <summary> /// Minimum number of publish requests to queue /// at all times. Default is 2. /// </summary> public int? MinPublishRequests { get; set; } /// <summary> /// The publish requests per subscription factor in /// percent, e.g., 120% means 1.2 requests per /// subscription. Use this to control network latency /// </summary> public int? PublishRequestsPerSubscriptionPercent { get; set; } /// <summary> /// Max number of publish requests to queue /// at all times. Default is 15. /// </summary> public int? MaxPublishRequests { get; set; } /// <summary> /// Limit max nodes to read in a batch operation /// </summary> public int? MaxNodesPerReadOverride { get; set; } /// <summary> /// Limit max nodes to browse in a batch operation /// </summary> public int? MaxNodesPerBrowseOverride { get; set; } } }