Files
123123/ZA.CoreService.ESBCertificateManager/Models/DeploymentRunResult.cs
2026-07-24 08:10:13 +02:00

41 lines
1.4 KiB
C#

namespace ZA.CoreService.ESBCertificateManager.Models;
public sealed class DeploymentRunResult
{
public Guid RunId { get; init; } = Guid.NewGuid();
public required IReadOnlyList<TargetStepResult> TargetResults { get; init; }
public bool OverallSuccess => TargetResults.All(r => r.Success);
public DateTimeOffset StartedAt { get; init; }
public DateTimeOffset FinishedAt { get; init; }
public string CertificateFilePath { get; init; } = string.Empty;
public string CertificateFingerprint { get; init; } = string.Empty;
}
public sealed class TargetStepResult
{
public required int TargetId { get; init; }
public required string TargetName { get; init; }
public bool Success { get; init; }
public required string StatusText { get; init; }
public string? Detail { get; init; }
public IReadOnlyList<string> Steps { get; init; } = [];
public DateTimeOffset StartedAt { get; init; }
public DateTimeOffset FinishedAt { get; init; }
public bool CopySucceeded { get; init; }
public bool RestartSucceeded { get; init; }
public bool TlsSucceeded { get; init; }
public string? ObservedFingerprint { get; init; }
}
public sealed class ValidationIssue
{
public required string Message { get; init; }
public int? TargetId { get; init; }
}
public sealed class PreflightValidationResult
{
public bool IsValid => Issues.Count == 0;
public List<ValidationIssue> Issues { get; } = [];
}