using System.Collections.Generic; using System.Net.Http; using System.Threading; using System.Threading.Tasks; using StellaOps.Cli.Configuration; using StellaOps.Cli.Services.Models; using StellaOps.Cli.Services.Models.AdvisoryAi; using StellaOps.Cli.Services.Models.Bun; using StellaOps.Cli.Services.Models.Ruby; namespace StellaOps.Cli.Services; internal interface IBackendOperationsClient { Task DownloadScannerAsync(string channel, string outputPath, bool overwrite, bool verbose, CancellationToken cancellationToken); Task UploadScanResultsAsync(string filePath, CancellationToken cancellationToken); Task TriggerJobAsync(string jobKind, IDictionary parameters, CancellationToken cancellationToken); Task ExecuteExcititorOperationAsync(string route, HttpMethod method, object? payload, CancellationToken cancellationToken); Task DownloadExcititorExportAsync(string exportId, string destinationPath, string? expectedDigestAlgorithm, string? expectedDigest, CancellationToken cancellationToken); Task> GetExcititorProvidersAsync(bool includeDisabled, CancellationToken cancellationToken); Task EvaluateRuntimePolicyAsync(RuntimePolicyEvaluationRequest request, CancellationToken cancellationToken); Task SimulatePolicyAsync(string policyId, PolicySimulationInput input, CancellationToken cancellationToken); Task SimulateTaskRunnerAsync(TaskRunnerSimulationRequest request, CancellationToken cancellationToken); Task ActivatePolicyRevisionAsync(string policyId, int version, PolicyActivationRequest request, CancellationToken cancellationToken); Task DownloadOfflineKitAsync(string? bundleId, string destinationDirectory, bool overwrite, bool resume, CancellationToken cancellationToken); Task ImportOfflineKitAsync(OfflineKitImportRequest request, CancellationToken cancellationToken); Task GetOfflineKitStatusAsync(CancellationToken cancellationToken); Task ExecuteAocIngestDryRunAsync(AocIngestDryRunRequest request, CancellationToken cancellationToken); Task ExecuteAocVerifyAsync(AocVerifyRequest request, CancellationToken cancellationToken); Task GetPolicyFindingsAsync(PolicyFindingsQuery query, CancellationToken cancellationToken); Task GetPolicyFindingAsync(string policyId, string findingId, CancellationToken cancellationToken); Task GetPolicyFindingExplainAsync(string policyId, string findingId, string? mode, CancellationToken cancellationToken); Task GetEntryTraceAsync(string scanId, CancellationToken cancellationToken); Task GetRubyPackagesAsync(string scanId, CancellationToken cancellationToken); Task GetBunPackagesAsync(string scanId, CancellationToken cancellationToken); Task CreateAdvisoryPipelinePlanAsync(AdvisoryAiTaskType taskType, AdvisoryPipelinePlanRequestModel request, CancellationToken cancellationToken); Task TryGetAdvisoryPipelineOutputAsync(string cacheKey, AdvisoryAiTaskType taskType, string profile, CancellationToken cancellationToken); // CLI-VEX-30-001: VEX consensus operations Task ListVexConsensusAsync(VexConsensusListRequest request, string? tenant, CancellationToken cancellationToken); // CLI-VEX-30-002: VEX consensus detail Task GetVexConsensusAsync(string vulnerabilityId, string productKey, string? tenant, CancellationToken cancellationToken); // CLI-VEX-30-003: VEX simulation Task SimulateVexConsensusAsync(VexSimulationRequest request, string? tenant, CancellationToken cancellationToken); // CLI-VEX-30-004: VEX export Task ExportVexConsensusAsync(VexExportRequest request, string? tenant, CancellationToken cancellationToken); Task DownloadVexExportAsync(string exportId, string? tenant, CancellationToken cancellationToken); // CLI-VULN-29-001: Vulnerability explorer list Task ListVulnerabilitiesAsync(VulnListRequest request, string? tenant, CancellationToken cancellationToken); // CLI-VULN-29-002: Vulnerability detail Task GetVulnerabilityAsync(string vulnerabilityId, string? tenant, CancellationToken cancellationToken); // CLI-VULN-29-003: Vulnerability workflow operations Task ExecuteVulnWorkflowAsync(VulnWorkflowRequest request, string? tenant, CancellationToken cancellationToken); // CLI-VULN-29-004: Vulnerability simulation Task SimulateVulnerabilitiesAsync(VulnSimulationRequest request, string? tenant, CancellationToken cancellationToken); // CLI-VULN-29-005: Vulnerability export Task ExportVulnerabilitiesAsync(VulnExportRequest request, string? tenant, CancellationToken cancellationToken); Task DownloadVulnExportAsync(string exportId, string? tenant, CancellationToken cancellationToken); // CLI-POLICY-23-006: Policy history and explain Task GetPolicyHistoryAsync(PolicyHistoryRequest request, CancellationToken cancellationToken); Task GetPolicyExplainAsync(PolicyExplainRequest request, CancellationToken cancellationToken); // CLI-POLICY-27-002: Policy submission/review workflow Task BumpPolicyVersionAsync(PolicyVersionBumpRequest request, CancellationToken cancellationToken); Task SubmitPolicyForReviewAsync(PolicySubmitRequest request, CancellationToken cancellationToken); Task AddPolicyReviewCommentAsync(PolicyReviewCommentRequest request, CancellationToken cancellationToken); Task ApprovePolicyReviewAsync(PolicyApproveRequest request, CancellationToken cancellationToken); Task RejectPolicyReviewAsync(PolicyRejectRequest request, CancellationToken cancellationToken); Task GetPolicyReviewStatusAsync(PolicyReviewStatusRequest request, CancellationToken cancellationToken); // CLI-POLICY-27-004: Policy lifecycle (publish/promote/rollback/sign) Task PublishPolicyAsync(PolicyPublishRequest request, CancellationToken cancellationToken); Task PromotePolicyAsync(PolicyPromoteRequest request, CancellationToken cancellationToken); Task RollbackPolicyAsync(PolicyRollbackRequest request, CancellationToken cancellationToken); Task SignPolicyAsync(PolicySignRequest request, CancellationToken cancellationToken); Task VerifyPolicySignatureAsync(PolicyVerifySignatureRequest request, CancellationToken cancellationToken); // CLI-RISK-66-001: Risk profile list Task ListRiskProfilesAsync(RiskProfileListRequest request, CancellationToken cancellationToken); // CLI-RISK-66-002: Risk simulate Task SimulateRiskAsync(RiskSimulateRequest request, CancellationToken cancellationToken); // CLI-RISK-67-001: Risk results Task GetRiskResultsAsync(RiskResultsRequest request, CancellationToken cancellationToken); // CLI-RISK-68-001: Risk bundle verify Task VerifyRiskBundleAsync(RiskBundleVerifyRequest request, CancellationToken cancellationToken); // CLI-SIG-26-001: Reachability operations Task UploadCallGraphAsync(ReachabilityUploadCallGraphRequest request, Stream callGraphStream, CancellationToken cancellationToken); Task ListReachabilityAnalysesAsync(ReachabilityListRequest request, CancellationToken cancellationToken); Task ExplainReachabilityAsync(ReachabilityExplainRequest request, CancellationToken cancellationToken); // CLI-SDK-63-001: API spec download Task ListApiSpecsAsync(string? tenant, CancellationToken cancellationToken); Task DownloadApiSpecAsync(ApiSpecDownloadRequest request, CancellationToken cancellationToken); // CLI-SDK-64-001: SDK update Task CheckSdkUpdatesAsync(SdkUpdateRequest request, CancellationToken cancellationToken); Task ListInstalledSdksAsync(string? language, string? tenant, CancellationToken cancellationToken); }