using System.Threading;
using System.Threading.Tasks;
using StellaOps.Cli.Services.Models;
namespace StellaOps.Cli.Services;
///
/// Client for Sbomer API operations (layer fragments and composition).
/// Per CLI-SBOM-60-001.
///
internal interface ISbomerClient
{
///
/// Lists layer fragments for a scan.
///
Task ListLayersAsync(
SbomerLayerListRequest request,
CancellationToken cancellationToken);
///
/// Gets layer fragment details.
///
Task GetLayerAsync(
SbomerLayerShowRequest request,
CancellationToken cancellationToken);
///
/// Verifies a layer fragment DSSE signature.
///
Task VerifyLayerAsync(
SbomerLayerVerifyRequest request,
CancellationToken cancellationToken);
///
/// Gets the composition manifest for a scan.
///
Task GetCompositionManifestAsync(
SbomerCompositionShowRequest request,
CancellationToken cancellationToken);
///
/// Composes SBOM from layer fragments.
///
Task ComposeAsync(
SbomerComposeRequest request,
CancellationToken cancellationToken);
///
/// Verifies composition against manifest and fragments.
///
Task VerifyCompositionAsync(
SbomerCompositionVerifyRequest request,
CancellationToken cancellationToken);
///
/// Gets Merkle diagnostics for a composition.
///
Task GetMerkleDiagnosticsAsync(
string scanId,
string? tenant,
CancellationToken cancellationToken);
// CLI-SBOM-60-002: Drift detection methods
///
/// Analyzes drift between current SBOM and baseline.
///
Task AnalyzeDriftAsync(
SbomerDriftRequest request,
CancellationToken cancellationToken);
///
/// Verifies SBOM with local recomposition and drift detection.
///
Task VerifyDriftAsync(
SbomerDriftVerifyRequest request,
CancellationToken cancellationToken);
}