// ----------------------------------------------------------------------------- // LineageExportModels.cs // Sprint: SPRINT_20251229_005_001_BE_sbom_lineage_api (LIN-010) // Task: Evidence pack export models // ----------------------------------------------------------------------------- namespace StellaOps.SbomService.Models; /// /// Request to export an evidence pack for a lineage comparison. /// internal sealed record LineageExportRequest { public required string FromDigest { get; init; } public required string ToDigest { get; init; } public required string TenantId { get; init; } public bool IncludeSbomDiff { get; init; } = true; public bool IncludeVexDeltas { get; init; } = true; public bool IncludeReachabilityDiff { get; init; } = false; public bool IncludeAttestations { get; init; } = true; public bool SignWithKeyless { get; init; } = false; } /// /// Response containing evidence pack download URL. /// internal sealed record LineageExportResponse { public required string ExportId { get; init; } public required string DownloadUrl { get; init; } public required DateTimeOffset ExpiresAt { get; init; } public required long SizeBytes { get; init; } public string? SignatureDigest { get; init; } } /// /// Evidence pack structure (NDJSON format). /// internal sealed record EvidencePack { public required string Version { get; init; } public required string FromDigest { get; init; } public required string ToDigest { get; init; } public required DateTimeOffset GeneratedAt { get; init; } public required string ReplayHash { get; init; } public SbomDiffSummary? SbomDiff { get; init; } public IReadOnlyList? VexDeltas { get; init; } public object? ReachabilityDiff { get; init; } public IReadOnlyList? AttestationDigests { get; init; } }