namespace Cleanuparr.Infrastructure.Health; /// /// Service for checking the health of download clients and arr instances /// public interface IHealthCheckService { /// /// Occurs when a client's health status changes /// event EventHandler ClientHealthChanged; /// /// Checks the health of a specific download client /// /// The client ID to check /// The health status of the client Task CheckClientHealthAsync(Guid clientId); /// /// Checks the health of all enabled download clients /// /// A dictionary of client IDs to health statuses Task> CheckAllClientsHealthAsync(); /// /// Gets the current health status of a download client /// /// The client ID /// The current health status, or null if the client hasn't been checked HealthStatus? GetClientHealth(Guid clientId); /// /// Gets the current health status of all download clients that have been checked /// /// A dictionary of client IDs to health statuses IDictionary GetAllClientHealth(); /// /// Checks the health of a specific arr instance /// /// The arr instance ID to check /// The health status of the arr instance Task CheckArrInstanceHealthAsync(Guid instanceId); /// /// Checks the health of all enabled arr instances /// /// A dictionary of instance IDs to health statuses Task> CheckAllArrInstancesHealthAsync(); /// /// Gets the current health status of an arr instance /// /// The arr instance ID /// The current health status, or null if the instance hasn't been checked ArrHealthStatus? GetArrInstanceHealth(Guid instanceId); /// /// Gets the current health status of all arr instances that have been checked /// /// A dictionary of instance IDs to health statuses IDictionary GetAllArrInstanceHealth(); }