using MaksIT.PodmanClientDotNet.Dtos.Manifest; using MaksIT.Results; public partial class PodmanClient { private static string ManifestPath(string name) => $"/libpod/manifests/{Uri.EscapeDataString(name)}"; public Task> CreateManifestAsync( string name, string? image = null, bool all = false, CancellationToken cancellationToken = default ) => PostLibpodAsync( "/libpod/manifests/create", "Create manifest", query: [ ("name", name), ("image", image), ("all", all.ToString().ToLowerInvariant()), ], cancellationToken: cancellationToken ); public Task DeleteManifestAsync(string name, string? digest = null, CancellationToken cancellationToken = default) => DeleteWithoutBodyAsync( ManifestPath(name), "Delete manifest", digest is null ? null : [("digest", digest)], cancellationToken ); public Task> InspectManifestAsync(string name, CancellationToken cancellationToken = default) => GetJsonAsync($"{ManifestPath(name)}/json", "Inspect manifest", cancellationToken: cancellationToken); public Task AddToManifestAsync(string name, ManifestAddRequestDto request, CancellationToken cancellationToken = default) => PostJsonWithoutBodyAsync($"{ManifestPath(name)}/add", "Add to manifest", request, cancellationToken: cancellationToken); public Task PushManifestAsync( string name, string destination, bool all = false, CancellationToken cancellationToken = default ) => PostWithoutBodyAsync( $"/libpod/manifests/{Uri.EscapeDataString(name)}/push", "Push manifest", query: [ ("destination", destination), ("all", all.ToString().ToLowerInvariant()), ], cancellationToken: cancellationToken ); }