Files
git.stella-ops.org/src/Scanner/StellaOps.Scanner.WebService/Services/IUnifiedEvidenceService.cs
StellaOps Bot b9f71fc7e9 sprints work
2025-12-24 21:46:08 +02:00

55 lines
2.0 KiB
C#

// -----------------------------------------------------------------------------
// IUnifiedEvidenceService.cs
// Sprint: SPRINT_9200_0001_0002_SCANNER_unified_evidence_endpoint
// Description: Service interface for assembling unified evidence for findings.
// -----------------------------------------------------------------------------
using StellaOps.Scanner.WebService.Contracts;
namespace StellaOps.Scanner.WebService.Services;
/// <summary>
/// Assembles unified evidence packages for findings.
/// </summary>
public interface IUnifiedEvidenceService
{
/// <summary>
/// Gets the complete unified evidence package for a finding.
/// </summary>
/// <param name="findingId">Finding identifier.</param>
/// <param name="options">Options controlling what evidence to include.</param>
/// <param name="cancellationToken">Cancellation token.</param>
/// <returns>Unified evidence package or null if finding not found.</returns>
Task<UnifiedEvidenceResponseDto?> GetUnifiedEvidenceAsync(
string findingId,
UnifiedEvidenceOptions? options = null,
CancellationToken cancellationToken = default);
}
/// <summary>
/// Options for customizing unified evidence retrieval.
/// </summary>
public sealed record UnifiedEvidenceOptions
{
/// <summary>Include SBOM evidence tab.</summary>
public bool IncludeSbom { get; init; } = true;
/// <summary>Include reachability evidence tab.</summary>
public bool IncludeReachability { get; init; } = true;
/// <summary>Include VEX claims tab.</summary>
public bool IncludeVexClaims { get; init; } = true;
/// <summary>Include attestations tab.</summary>
public bool IncludeAttestations { get; init; } = true;
/// <summary>Include delta evidence tab.</summary>
public bool IncludeDeltas { get; init; } = true;
/// <summary>Include policy evidence tab.</summary>
public bool IncludePolicy { get; init; } = true;
/// <summary>Generate replay command.</summary>
public bool IncludeReplayCommand { get; init; } = true;
}