41 lines
1.4 KiB
C#
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; } = [];
|
|
}
|