// -----------------------------------------------------------------------------
// 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;
///
/// Assembles unified evidence packages for findings.
///
public interface IUnifiedEvidenceService
{
///
/// Gets the complete unified evidence package for a finding.
///
/// Finding identifier.
/// Options controlling what evidence to include.
/// Cancellation token.
/// Unified evidence package or null if finding not found.
Task GetUnifiedEvidenceAsync(
string findingId,
UnifiedEvidenceOptions? options = null,
CancellationToken cancellationToken = default);
}
///
/// Options for customizing unified evidence retrieval.
///
public sealed record UnifiedEvidenceOptions
{
/// Include SBOM evidence tab.
public bool IncludeSbom { get; init; } = true;
/// Include reachability evidence tab.
public bool IncludeReachability { get; init; } = true;
/// Include VEX claims tab.
public bool IncludeVexClaims { get; init; } = true;
/// Include attestations tab.
public bool IncludeAttestations { get; init; } = true;
/// Include delta evidence tab.
public bool IncludeDeltas { get; init; } = true;
/// Include policy evidence tab.
public bool IncludePolicy { get; init; } = true;
/// Generate replay command.
public bool IncludeReplayCommand { get; init; } = true;
}