namespace RackPeek.Domain.Discovery;
/// Reads containers off a Docker Engine API. The IO half of docker discovery.
public interface IDockerClient {
/// Describes where this client is pointed, for error messages.
string Endpoint { get; }
///
/// Running containers only. A stopped container has no host port bindings — the
/// daemon does not create them until it runs — so it can never be described as a
/// Service, which makes listing stopped containers pointless here.
///
Task> ListContainersAsync(CancellationToken cancellationToken = default);
///
/// The engine's own identity, or null when it cannot be read. Null is an expected
/// answer, not an error: the read-only socket proxies the docs recommend usually
/// allow /containers but block /info.
///
Task GetInfoAsync(CancellationToken cancellationToken = default);
}