using System.ComponentModel.DataAnnotations; using System.Text.Json.Serialization; using StellaOps.Scheduler.Models; namespace StellaOps.Scheduler.WebService.GraphJobs; public sealed record GraphOverlayJobRequest { [Required] public string GraphSnapshotId { get; init; } = string.Empty; public string? BuildJobId { get; init; } [Required] [JsonConverter(typeof(JsonStringEnumConverter))] public GraphOverlayKind OverlayKind { get; init; } [Required] public string OverlayKey { get; init; } = string.Empty; public IReadOnlyList? Subjects { get; init; } [JsonConverter(typeof(JsonStringEnumConverter))] public GraphOverlayJobTrigger? Trigger { get; init; } public string? CorrelationId { get; init; } public IDictionary? Metadata { get; init; } }