Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
- Added Deno analyzer with comprehensive metadata and evidence structure. - Created a detailed implementation plan for Sprint 130 focusing on Deno analyzer. - Introduced AdvisoryAiGuardrailOptions for managing guardrail configurations. - Developed GuardrailPhraseLoader for loading blocked phrases from JSON files. - Implemented tests for AdvisoryGuardrailOptions binding and phrase loading. - Enhanced telemetry for Advisory AI with metrics tracking. - Added VexObservationProjectionService for querying VEX observations. - Created extensive tests for VexObservationProjectionService functionality. - Introduced Ruby language analyzer with tests for simple and complex workspaces. - Added Ruby application fixtures for testing purposes.
47 lines
2.5 KiB
C#
47 lines
2.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace StellaOps.Excititor.WebService.Contracts;
|
|
|
|
public sealed record VexObservationProjectionResponse(
|
|
[property: JsonPropertyName("vulnerabilityId")] string VulnerabilityId,
|
|
[property: JsonPropertyName("productKey")] string ProductKey,
|
|
[property: JsonPropertyName("generatedAt") ] DateTimeOffset GeneratedAt,
|
|
[property: JsonPropertyName("totalCount")] int TotalCount,
|
|
[property: JsonPropertyName("truncated")] bool Truncated,
|
|
[property: JsonPropertyName("statements")] IReadOnlyList<VexObservationStatementResponse> Statements);
|
|
|
|
public sealed record VexObservationStatementResponse(
|
|
[property: JsonPropertyName("observationId")] string ObservationId,
|
|
[property: JsonPropertyName("providerId")] string ProviderId,
|
|
[property: JsonPropertyName("status")] string Status,
|
|
[property: JsonPropertyName("justification")] string? Justification,
|
|
[property: JsonPropertyName("detail")] string? Detail,
|
|
[property: JsonPropertyName("firstSeen")] DateTimeOffset FirstSeen,
|
|
[property: JsonPropertyName("lastSeen")] DateTimeOffset LastSeen,
|
|
[property: JsonPropertyName("scope")] VexObservationScopeResponse Scope,
|
|
[property: JsonPropertyName("anchors")] IReadOnlyList<string> Anchors,
|
|
[property: JsonPropertyName("document")] VexObservationDocumentResponse Document,
|
|
[property: JsonPropertyName("signature")] VexObservationSignatureResponse? Signature);
|
|
|
|
public sealed record VexObservationScopeResponse(
|
|
[property: JsonPropertyName("key")] string Key,
|
|
[property: JsonPropertyName("name")] string? Name,
|
|
[property: JsonPropertyName("version")] string? Version,
|
|
[property: JsonPropertyName("purl")] string? Purl,
|
|
[property: JsonPropertyName("cpe")] string? Cpe,
|
|
[property: JsonPropertyName("componentIdentifiers")] IReadOnlyList<string> ComponentIdentifiers);
|
|
|
|
public sealed record VexObservationDocumentResponse(
|
|
[property: JsonPropertyName("digest")] string Digest,
|
|
[property: JsonPropertyName("format")] string Format,
|
|
[property: JsonPropertyName("revision")] string? Revision,
|
|
[property: JsonPropertyName("sourceUri")] string SourceUri);
|
|
|
|
public sealed record VexObservationSignatureResponse(
|
|
[property: JsonPropertyName("type")] string Type,
|
|
[property: JsonPropertyName("keyId")] string? KeyId,
|
|
[property: JsonPropertyName("issuer")] string? Issuer,
|
|
[property: JsonPropertyName("verifiedAt")] DateTimeOffset? VerifiedAtUtc);
|