using System.Collections.Generic; namespace StellaOps.Excititor.WebService.Options; public sealed class MirrorDistributionOptions { public const string SectionName = "Excititor:Mirror"; public List Domains { get; } = new(); } public sealed class MirrorDomainOptions { public string Id { get; set; } = string.Empty; public string DisplayName { get; set; } = string.Empty; public bool RequireAuthentication { get; set; } = false; /// /// Maximum index requests allowed per rolling window. /// public int MaxIndexRequestsPerHour { get; set; } = 120; /// /// Maximum export downloads allowed per rolling window. /// public int MaxDownloadRequestsPerHour { get; set; } = 600; public List Exports { get; } = new(); } public sealed class MirrorExportOptions { public string Key { get; set; } = string.Empty; public string Format { get; set; } = string.Empty; public Dictionary Filters { get; } = new(); public Dictionary Sort { get; } = new(); public int? Limit { get; set; } = null; public int? Offset { get; set; } = null; public string? View { get; set; } = null; }