using System; using System.Collections.Generic; using System.Diagnostics; using System.ServiceProcess; using System.Xml; namespace WinSW.Configuration { public interface IWinSWConfiguration { // TODO: Document the parameters && refactor string Name { get; } string DisplayName { get; } string Description { get; } string Executable { get; } string ExecutablePath { get; } bool HideWindow { get; } // Installation Native.SC_ACTION[] FailureActions { get; } TimeSpan ResetFailureAfter { get; } // Executable management string Arguments { get; } string? StartArguments { get; } string? StopExecutable { get; } string? StopArguments { get; } string WorkingDirectory { get; } ProcessPriorityClass Priority { get; } TimeSpan StopTimeout { get; } bool StopParentProcessFirst { get; } // Service management ServiceStartMode StartMode { get; } string[] ServiceDependencies { get; } TimeSpan WaitHint { get; } TimeSpan SleepTime { get; } bool Interactive { get; } /// /// Destination for logging. /// If undefined, a default one should be used. /// string LogDirectory { get; } // TODO: replace by enum string LogMode { get; } Log Log { get; } // Environment List Downloads { get; } Dictionary EnvironmentVariables { get; } // Misc bool BeepOnShutdown { get; } // Extensions XmlNode? ExtensionsConfiguration { get; } List? YamlExtensionsConfiguration { get; } List ExtensionIds { get; } // Service Account ServiceAccount ServiceAccount { get; } string BaseName { get; } string BasePath { get; } bool DelayedAutoStart { get; } string? SecurityDescriptor { get; } } }