// // Copyright (c) StellaOps. Licensed under AGPL-3.0-or-later. // namespace StellaOps.AirGap.Sync.Models; /// /// Represents an air-gap bundle containing job logs from one or more offline nodes. /// public sealed record AirGapBundle { /// /// Gets the unique bundle identifier. /// public required Guid BundleId { get; init; } /// /// Gets the tenant ID for this bundle. /// public required string TenantId { get; init; } /// /// Gets when the bundle was created. /// public required DateTimeOffset CreatedAt { get; init; } /// /// Gets the node ID that created this bundle. /// public required string CreatedByNodeId { get; init; } /// /// Gets the job logs from each offline node. /// public required IReadOnlyList JobLogs { get; init; } /// /// Gets the bundle manifest digest for integrity verification. /// public required string ManifestDigest { get; init; } /// /// Gets the optional DSSE signature over the manifest. /// public string? Signature { get; init; } /// /// Gets the key ID used for signing (if signed). /// public string? SignedBy { get; init; } }