namespace ZA.CoreService.ESBCertificateManager.Models;
///
/// Sonic-Verbindung für MfApi-Container-Restart (wie SMC).
///
public sealed class SonicConnection
{
/// Alias; referenziert von DeploymentTarget.SonicConnectionName.
public required string Name { get; init; }
/// Sonic-Domain, z.B. proalpha-test.
public required string DomainName { get; init; }
/// Broker-/Management-URL wie in der SMC, z.B. tcp://host:13070.
public required string ConnectionUrl { get; init; }
public required string Username { get; init; }
///
/// Nur zur Laufzeit aus Always Encrypted geladen.
/// Darf nicht geloggt oder dauerhaft gespeichert werden.
///
public string Password { get; init; } = string.Empty;
///
/// Verweis auf eine generische Windows-Anmeldeinformation.
/// Enthält ausdrücklich kein Kennwort.
///
public string CredentialReference { get; init; } = string.Empty;
/// Installationsroot (optional; Libs oft unter lib).
public string SonicHome { get; init; } = @"C:\Sonic\MQ10.0";
/// Optional: JRE/JDK-Home.
public string JavaHome { get; init; } = string.Empty;
/// Optional: direkter Pfad zu java.exe.
public string JavaPath { get; init; } = string.Empty;
/// Ordner mit mgmt_client.jar / mfcontext.jar / …
public string MfClientLibPath { get; init; } = string.Empty;
/// Container-Kurznamen, z.B. ct-ZADBService.
public List KnownContainers { get; init; } = [];
public int TimeoutSeconds { get; init; } = 120;
public int PostRestartDelaySeconds { get; init; } = 20;
public string ManagementModeDisplay => "MfApi (SMC Restart)";
}