55 lines
2.0 KiB
C#
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;
|
|
}
|