using System; using PSProxmoxVE.Core.Authentication; namespace PSProxmoxVE.Core.Exceptions { /// Exception thrown when the connected Proxmox VE server does not meet the minimum version requirement for an operation. public class PveVersionException : Exception { /// The minimum required major version number. public int RequiredMajor { get; } /// The minimum required minor version number. public int RequiredMinor { get; } /// The actual server version that did not meet the requirement. public PveVersion ActualVersion { get; } /// Initializes a new instance for a version requirement that was not met. /// The minimum required major version. /// The minimum required minor version. /// The actual server version detected. public PveVersionException(int requiredMajor, int requiredMinor, PveVersion actualVersion) : base($"This operation requires Proxmox VE {requiredMajor}.{requiredMinor} or later. Connected server is version {actualVersion}.") { RequiredMajor = requiredMajor; RequiredMinor = requiredMinor; ActualVersion = actualVersion; } /// Initializes a new instance for a version requirement that was not met, with an inner exception. /// The minimum required major version. /// The minimum required minor version. /// The actual server version detected. /// The exception that caused this failure. public PveVersionException(int requiredMajor, int requiredMinor, PveVersion actualVersion, Exception innerException) : base($"This operation requires Proxmox VE {requiredMajor}.{requiredMinor} or later. Connected server is version {actualVersion}.", innerException) { RequiredMajor = requiredMajor; RequiredMinor = requiredMinor; ActualVersion = actualVersion; } } }