Files
suitelinkclient/src/SuiteLink.Client/SuiteLinkRuntimeOptions.cs
2026-03-17 11:04:19 -04:00

29 lines
952 B
C#

namespace SuiteLink.Client;
public sealed record class SuiteLinkRuntimeOptions
{
public SuiteLinkRuntimeOptions(
SuiteLinkRetryPolicy retryPolicy,
SuiteLinkCatchUpPolicy catchUpPolicy,
TimeSpan catchUpTimeout)
{
ArgumentNullException.ThrowIfNull(retryPolicy);
if (catchUpTimeout <= TimeSpan.Zero)
{
throw new ArgumentOutOfRangeException(nameof(catchUpTimeout), catchUpTimeout, "Catch-up timeout must be positive.");
}
RetryPolicy = retryPolicy;
CatchUpPolicy = catchUpPolicy;
CatchUpTimeout = catchUpTimeout;
}
public SuiteLinkRetryPolicy RetryPolicy { get; init; }
public SuiteLinkCatchUpPolicy CatchUpPolicy { get; init; }
public TimeSpan CatchUpTimeout { get; init; }
public static SuiteLinkRuntimeOptions Default { get; } =
new(SuiteLinkRetryPolicy.Default, SuiteLinkCatchUpPolicy.None, TimeSpan.FromSeconds(2));
}