using NATS.Server.Auth;
namespace NATS.Server.Imports;
public sealed class ServiceExport
{
///
/// Gets authorization rules controlling which accounts may import this service.
///
public ExportAuth Auth { get; init; } = new();
///
/// Gets the exporting account that owns this service definition.
///
public Account? Account { get; init; }
///
/// Gets the response mode expected from service responders (singleton or streamed).
///
public ServiceResponseType ResponseType { get; init; } = ServiceResponseType.Singleton;
///
/// Gets the threshold used for service latency advisories and slow-response tracking.
///
public TimeSpan ResponseThreshold { get; init; } = TimeSpan.FromMinutes(2);
///
/// Gets optional service latency sampling configuration for exported service calls.
///
public ServiceLatency? Latency { get; init; }
///
/// Gets a value indicating whether distributed tracing headers are allowed for this service.
///
public bool AllowTrace { get; init; }
}