41 lines
1.2 KiB
C#
41 lines
1.2 KiB
C#
using System.Text.Json.Serialization;
|
|
|
|
namespace StellaOps.Policy.Determinization.Evidence;
|
|
|
|
/// <summary>
|
|
/// VEX (Vulnerability Exploitability eXchange) claim summary.
|
|
/// </summary>
|
|
public sealed record VexClaimSummary
|
|
{
|
|
/// <summary>
|
|
/// VEX status.
|
|
/// </summary>
|
|
[JsonPropertyName("status")]
|
|
public required string Status { get; init; } // "affected", "not_affected", "fixed", "under_investigation"
|
|
|
|
/// <summary>
|
|
/// Confidence in this claim [0.0, 1.0].
|
|
/// Weighted average if multiple sources.
|
|
/// </summary>
|
|
[JsonPropertyName("confidence")]
|
|
public required double Confidence { get; init; }
|
|
|
|
/// <summary>
|
|
/// Number of VEX statements supporting this claim.
|
|
/// </summary>
|
|
[JsonPropertyName("statement_count")]
|
|
public required int StatementCount { get; init; }
|
|
|
|
/// <summary>
|
|
/// When this summary was computed (UTC).
|
|
/// </summary>
|
|
[JsonPropertyName("computed_at")]
|
|
public required DateTimeOffset ComputedAt { get; init; }
|
|
|
|
/// <summary>
|
|
/// Justification text (if provided).
|
|
/// </summary>
|
|
[JsonPropertyName("justification")]
|
|
public string? Justification { get; init; }
|
|
}
|