using StellaOps.Policy.Registry.Contracts; namespace StellaOps.Policy.Registry; /// /// Typed HTTP client for Policy Registry API. /// Based on OpenAPI: docs/schemas/policy-registry-api.openapi.yaml /// public interface IPolicyRegistryClient { // ============================================================ // VERIFICATION POLICY OPERATIONS // ============================================================ Task ListVerificationPoliciesAsync( Guid tenantId, PaginationParams? pagination = null, CancellationToken cancellationToken = default); Task CreateVerificationPolicyAsync( Guid tenantId, CreateVerificationPolicyRequest request, CancellationToken cancellationToken = default); Task GetVerificationPolicyAsync( Guid tenantId, string policyId, CancellationToken cancellationToken = default); Task UpdateVerificationPolicyAsync( Guid tenantId, string policyId, UpdateVerificationPolicyRequest request, CancellationToken cancellationToken = default); Task DeleteVerificationPolicyAsync( Guid tenantId, string policyId, CancellationToken cancellationToken = default); // ============================================================ // POLICY PACK OPERATIONS // ============================================================ Task ListPolicyPacksAsync( Guid tenantId, PolicyPackStatus? status = null, PaginationParams? pagination = null, CancellationToken cancellationToken = default); Task CreatePolicyPackAsync( Guid tenantId, CreatePolicyPackRequest request, CancellationToken cancellationToken = default); Task GetPolicyPackAsync( Guid tenantId, Guid packId, CancellationToken cancellationToken = default); Task UpdatePolicyPackAsync( Guid tenantId, Guid packId, UpdatePolicyPackRequest request, CancellationToken cancellationToken = default); Task DeletePolicyPackAsync( Guid tenantId, Guid packId, CancellationToken cancellationToken = default); Task CompilePolicyPackAsync( Guid tenantId, Guid packId, CancellationToken cancellationToken = default); Task SimulatePolicyPackAsync( Guid tenantId, Guid packId, SimulationRequest request, CancellationToken cancellationToken = default); Task PublishPolicyPackAsync( Guid tenantId, Guid packId, PublishRequest? request = null, CancellationToken cancellationToken = default); Task PromotePolicyPackAsync( Guid tenantId, Guid packId, PromoteRequest? request = null, CancellationToken cancellationToken = default); // ============================================================ // SNAPSHOT OPERATIONS // ============================================================ Task ListSnapshotsAsync( Guid tenantId, PaginationParams? pagination = null, CancellationToken cancellationToken = default); Task CreateSnapshotAsync( Guid tenantId, CreateSnapshotRequest request, CancellationToken cancellationToken = default); Task GetSnapshotAsync( Guid tenantId, Guid snapshotId, CancellationToken cancellationToken = default); Task DeleteSnapshotAsync( Guid tenantId, Guid snapshotId, CancellationToken cancellationToken = default); Task GetSnapshotByDigestAsync( Guid tenantId, string digest, CancellationToken cancellationToken = default); // ============================================================ // VIOLATION OPERATIONS // ============================================================ Task ListViolationsAsync( Guid tenantId, Severity? severity = null, PaginationParams? pagination = null, CancellationToken cancellationToken = default); Task AppendViolationAsync( Guid tenantId, CreateViolationRequest request, CancellationToken cancellationToken = default); Task AppendViolationBatchAsync( Guid tenantId, ViolationBatchRequest request, CancellationToken cancellationToken = default); Task GetViolationAsync( Guid tenantId, Guid violationId, CancellationToken cancellationToken = default); // ============================================================ // OVERRIDE OPERATIONS // ============================================================ Task CreateOverrideAsync( Guid tenantId, CreateOverrideRequest request, CancellationToken cancellationToken = default); Task GetOverrideAsync( Guid tenantId, Guid overrideId, CancellationToken cancellationToken = default); Task DeleteOverrideAsync( Guid tenantId, Guid overrideId, CancellationToken cancellationToken = default); Task ApproveOverrideAsync( Guid tenantId, Guid overrideId, ApproveOverrideRequest? request = null, CancellationToken cancellationToken = default); Task DisableOverrideAsync( Guid tenantId, Guid overrideId, CancellationToken cancellationToken = default); // ============================================================ // SEALED MODE OPERATIONS // ============================================================ Task GetSealedModeStatusAsync( Guid tenantId, CancellationToken cancellationToken = default); Task SealAsync( Guid tenantId, SealRequest? request = null, CancellationToken cancellationToken = default); Task UnsealAsync( Guid tenantId, UnsealRequest request, CancellationToken cancellationToken = default); Task VerifyBundleAsync( Guid tenantId, VerifyBundleRequest request, CancellationToken cancellationToken = default); // ============================================================ // STALENESS OPERATIONS // ============================================================ Task GetStalenessStatusAsync( Guid tenantId, CancellationToken cancellationToken = default); Task EvaluateStalenessAsync( Guid tenantId, EvaluateStalenessRequest request, CancellationToken cancellationToken = default); }