Files
git.stella-ops.org/src/StellaOps.Concelier.Connector.Vndr.Adobe/Configuration/AdobeOptions.cs
2025-10-18 20:47:13 +03:00

51 lines
1.6 KiB
C#

using System;
using System.Collections.Generic;
namespace StellaOps.Concelier.Connector.Vndr.Adobe.Configuration;
public sealed class AdobeOptions
{
public const string HttpClientName = "source-vndr-adobe";
public Uri IndexUri { get; set; } = new("https://helpx.adobe.com/security/security-bulletin.html");
public List<Uri> AdditionalIndexUris { get; } = new();
public TimeSpan InitialBackfill { get; set; } = TimeSpan.FromDays(90);
public TimeSpan WindowOverlap { get; set; } = TimeSpan.FromDays(3);
public int MaxEntriesPerFetch { get; set; } = 100;
public void Validate()
{
if (IndexUri is null || !IndexUri.IsAbsoluteUri)
{
throw new ArgumentException("IndexUri must be an absolute URI.", nameof(IndexUri));
}
foreach (var uri in AdditionalIndexUris)
{
if (uri is null || !uri.IsAbsoluteUri)
{
throw new ArgumentException("Additional index URIs must be absolute.", nameof(AdditionalIndexUris));
}
}
if (InitialBackfill <= TimeSpan.Zero)
{
throw new ArgumentException("InitialBackfill must be positive.", nameof(InitialBackfill));
}
if (WindowOverlap < TimeSpan.Zero)
{
throw new ArgumentException("WindowOverlap cannot be negative.", nameof(WindowOverlap));
}
if (MaxEntriesPerFetch <= 0)
{
throw new ArgumentException("MaxEntriesPerFetch must be positive.", nameof(MaxEntriesPerFetch));
}
}
}