// // Copyright (c) StellaOps. Licensed under the BUSL-1.1. // using StellaOps.AdvisoryAI.Attestation.Models; namespace StellaOps.AdvisoryAI.Attestation; /// /// Service for creating and verifying AI attestations. /// Sprint: SPRINT_20260109_011_001 Task: AIAT-002 /// public interface IAiAttestationService { /// /// Creates an attestation for an AI run. /// /// The attestation to create. /// Whether to sign the attestation. /// Cancellation token. /// The created attestation with optional signature. Task CreateRunAttestationAsync( AiRunAttestation attestation, bool sign = true, CancellationToken ct = default); /// /// Creates an attestation for a specific claim. /// /// The claim attestation to create. /// Whether to sign the attestation. /// Cancellation token. /// The created attestation with optional signature. Task CreateClaimAttestationAsync( AiClaimAttestation attestation, bool sign = true, CancellationToken ct = default); /// /// Verifies an AI run attestation. /// /// The run ID to verify. /// Cancellation token. /// Verification result. Task VerifyRunAttestationAsync( string runId, CancellationToken ct = default); /// /// Verifies a claim attestation. /// /// The claim ID to verify. /// Cancellation token. /// Verification result. Task VerifyClaimAttestationAsync( string claimId, CancellationToken ct = default); /// /// Gets a run attestation by ID. /// /// The run ID. /// Cancellation token. /// The attestation if found. Task GetRunAttestationAsync( string runId, CancellationToken ct = default); /// /// Gets claim attestations for a run. /// /// The run ID. /// Cancellation token. /// All claim attestations for the run. Task> GetClaimAttestationsAsync( string runId, CancellationToken ct = default); /// /// Lists recent run attestations. /// /// Tenant filter. /// Maximum results. /// Cancellation token. /// Recent attestations. Task> ListRecentAttestationsAsync( string tenantId, int limit = 100, CancellationToken ct = default); }