using System; using System.Collections.Immutable; using System.Linq; namespace StellaOps.Cryptography.Kms; public sealed partial class FileKmsClient { private static KmsKeyMetadata ToMetadata(KeyMetadataRecord record) { var versions = record.Versions .Select(v => new KmsKeyVersionMetadata( v.VersionId, v.State, v.CreatedAt, v.DeactivatedAt, v.PublicKey, v.CurveName)) .ToImmutableArray(); var createdAt = record.CreatedAt ?? (versions.Length > 0 ? versions.Min(v => v.CreatedAt) : TimeProvider.System.GetUtcNow()); return new KmsKeyMetadata(record.KeyId, record.Algorithm, record.State, createdAt, versions); } }