using OTSSignsOrchestrator.Server.Data.Entities; namespace OTSSignsOrchestrator.Server.Health; /// /// Result of a single health check execution. /// public record HealthCheckResult(HealthStatus Status, string Message, string? Detail = null); /// /// Contract for an individual health check that runs against a specific . /// public interface IHealthCheck { /// Human-readable name written to . string CheckName { get; } /// /// When true the engine will automatically call /// if the check returns . /// bool AutoRemediate { get; } /// Execute the check for . Task RunAsync(Instance instance, CancellationToken ct); /// /// Attempt automatic remediation. Return true if the issue was fixed. /// The default implementation does nothing and returns false. /// Task RemediateAsync(Instance instance, CancellationToken ct) => Task.FromResult(false); }