namespace StellaOps.Evidence.Bundle;
/// Provenance attestation evidence.
public sealed class ProvenanceEvidence
{
public required EvidenceStatus Status { get; init; }
public string? Hash { get; init; }
public DsseEnvelope? DsseEnvelope { get; init; }
public BuildAncestry? Ancestry { get; init; }
public RekorReference? RekorEntry { get; init; }
public string? VerificationStatus { get; init; }
public string? UnavailableReason { get; init; }
}
public sealed class DsseEnvelope
{
public required string PayloadType { get; init; }
public required string Payload { get; init; }
public required IReadOnlyList Signatures { get; init; }
}
public sealed class DsseSignature
{
public required string KeyId { get; init; }
public required string Sig { get; init; }
}
public sealed class BuildAncestry
{
public string? ImageDigest { get; init; }
public string? LayerDigest { get; init; }
public string? ArtifactDigest { get; init; }
public string? CommitHash { get; init; }
public string? BuildId { get; init; }
public DateTimeOffset? BuildTime { get; init; }
}
public sealed class RekorReference
{
public required string LogId { get; init; }
public required long LogIndex { get; init; }
public string? Uuid { get; init; }
public DateTimeOffset? IntegratedTime { get; init; }
}