//
// 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);
}