2026-08-12 14:04:55 +03:00
|
|
|
using RudderSdk.Core.Abstractions;
|
|
|
|
|
|
|
|
|
|
namespace RudderSdk.Core;
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Configuration for <see cref="RudderClient"/>. Only <see cref="BaseUrl"/> and
|
|
|
|
|
/// <see cref="ProjectKey"/> are required; everything else falls back to a
|
|
|
|
|
/// sensible default.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public sealed class RudderClientOptions
|
|
|
|
|
{
|
|
|
|
|
/// <summary>API base URL, e.g. https://api.example.com. Required.</summary>
|
|
|
|
|
public string? BaseUrl { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>Project key issued in the admin panel. Required.</summary>
|
|
|
|
|
public string? ProjectKey { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>HTTP transport. Defaults to <see cref="HttpClientTransport"/>.</summary>
|
|
|
|
|
public IRudderTransport? Transport { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>Session token storage. Defaults to <see cref="InMemoryTokenStore"/>.</summary>
|
|
|
|
|
public ITokenStore? TokenStore { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>Device identity for login. Defaults to <see cref="GuidDeviceIdProvider"/>.</summary>
|
|
|
|
|
public IDeviceIdProvider? DeviceIdProvider { get; set; }
|
|
|
|
|
|
|
|
|
|
/// <summary>Diagnostic sink. Null by default (silent).</summary>
|
|
|
|
|
public IRudderLogger? Logger { get; set; }
|
|
|
|
|
|
2026-09-04 14:03:41 +03:00
|
|
|
/// <summary>Time source for the effects client; override in tests.</summary>
|
2026-08-12 14:04:55 +03:00
|
|
|
public IClock? Clock { get; set; }
|
|
|
|
|
}
|