using MaksIT.PodmanClientDotNet.Dtos.Common; using MaksIT.PodmanClientDotNet.Dtos.Pod; using MaksIT.PodmanClientDotNet.Models.Pod; using MaksIT.Results; public partial class PodmanClient { public Task> CreatePodAsync(PodCreateRequest request, CancellationToken cancellationToken = default) => PostJsonAsync("/libpod/pods/create", "Create pod", request, cancellationToken: cancellationToken); public Task?>> ListPodsAsync(bool all = false, CancellationToken cancellationToken = default) => GetJsonAsync>( "/libpod/pods/json", "List pods", [("all", all.ToString().ToLowerInvariant())], cancellationToken ); public Task> InspectPodAsync(string name, CancellationToken cancellationToken = default) => GetJsonAsync($"/libpod/pods/{Uri.EscapeDataString(name)}/json", "Inspect pod", cancellationToken: cancellationToken); public Task PodExistsAsync(string name, CancellationToken cancellationToken = default) => GetWithoutBodyAsync($"/libpod/pods/{Uri.EscapeDataString(name)}/exists", "Pod exists", cancellationToken: cancellationToken); public Task DeletePodAsync(string name, bool force = false, CancellationToken cancellationToken = default) => DeleteWithoutBodyAsync( $"/libpod/pods/{Uri.EscapeDataString(name)}", "Delete pod", [("force", force.ToString().ToLowerInvariant())], cancellationToken ); public Task StartPodAsync(string name, CancellationToken cancellationToken = default) => PostWithoutBodyAsync($"/libpod/pods/{Uri.EscapeDataString(name)}/start", "Start pod", cancellationToken: cancellationToken); public Task StopPodAsync(string name, int timeout = 10, CancellationToken cancellationToken = default) => PostWithoutBodyAsync( $"/libpod/pods/{Uri.EscapeDataString(name)}/stop", "Stop pod", query: [("t", timeout.ToString())], cancellationToken: cancellationToken ); public Task RestartPodAsync(string name, int timeout = 10, CancellationToken cancellationToken = default) => PostWithoutBodyAsync( $"/libpod/pods/{Uri.EscapeDataString(name)}/restart", "Restart pod", query: [("t", timeout.ToString())], cancellationToken: cancellationToken ); public Task KillPodAsync(string name, string? signal = null, CancellationToken cancellationToken = default) => PostWithoutBodyAsync( $"/libpod/pods/{Uri.EscapeDataString(name)}/kill", "Kill pod", query: signal is null ? null : [("signal", signal)], cancellationToken: cancellationToken ); public Task PausePodAsync(string name, CancellationToken cancellationToken = default) => PostWithoutBodyAsync($"/libpod/pods/{Uri.EscapeDataString(name)}/pause", "Pause pod", cancellationToken: cancellationToken); public Task UnpausePodAsync(string name, CancellationToken cancellationToken = default) => PostWithoutBodyAsync($"/libpod/pods/{Uri.EscapeDataString(name)}/unpause", "Unpause pod", cancellationToken: cancellationToken); public Task> PrunePodsAsync(CancellationToken cancellationToken = default) => PostLibpodAsync("/libpod/pods/prune", "Prune pods", cancellationToken: cancellationToken); public Task> TopPodAsync(string name, CancellationToken cancellationToken = default) => GetJsonAsync($"/libpod/pods/{Uri.EscapeDataString(name)}/top", "Top pod", cancellationToken: cancellationToken); public Task> GetPodsStatsAsync(CancellationToken cancellationToken = default) => GetJsonAsync("/libpod/pods/stats", "Get pods stats", cancellationToken: cancellationToken); }