Files
duplicati/Duplicati/WebserverCore/Dto/SystemInfoDto.cs
T
Kenneth Skovhede f49359eaf3 Removed use of Environment.OSVersion which is now deprecated.
Fallback to getting Windows version with `cmd /v ver`, which should be supported way back to DOS v6.
2024-09-18 16:02:01 +02:00

210 lines
5.8 KiB
C#

using Duplicati.Server.Serialization.Interface;
namespace Duplicati.WebserverCore.Dto;
public sealed record SystemInfoDto
{
/// <summary>
/// Gets or sets the API version.
/// </summary>
public required int APIVersion { get; init; }
/// <summary>
/// Gets or sets the password placeholder.
/// </summary>
public required string PasswordPlaceholder { get; init; }
/// <summary>
/// Gets or sets the server version.
/// </summary>
public required string? ServerVersion { get; init; }
/// <summary>
/// Gets or sets the server version name.
/// </summary>
public required string ServerVersionName { get; init; }
/// <summary>
/// Gets or sets the server version type.
/// </summary>
public required string? ServerVersionType { get; init; }
/// <summary>
/// Gets or sets the started by.
/// </summary>
public required string StartedBy { get; init; }
/// <summary>
/// Gets or sets the default update channel.
/// </summary>
public required string DefaultUpdateChannel { get; init; }
/// <summary>
/// Gets or sets the default usage report level.
/// </summary>
public required string DefaultUsageReportLevel { get; init; }
/// <summary>
/// Gets or sets the server time.
/// </summary>
public required DateTime ServerTime { get; init; }
/// <summary>
/// Gets or sets the OS type.
/// </summary>
public required string OSType { get; init; }
/// <summary>
/// Gets or sets the OS version.
/// </summary>
public required string OSVersion { get; init; }
/// <summary>
/// Gets or sets the directory separator.
/// </summary>
public required char DirectorySeparator { get; init; }
/// <summary>
/// Gets or sets the path separator.
/// </summary>
public required char PathSeparator { get; init; }
/// <summary>
/// Gets or sets a value indicating whether the filesystem is case sensitive.
/// </summary>
public required bool CaseSensitiveFilesystem { get; init; }
/// <summary>
/// Gets or sets the machine name.
/// </summary>
public required string MachineName { get; init; }
/// <summary>
/// Gets or sets the package type ID.
/// </summary>
public required string PackageTypeId { get; init; }
/// <summary>
/// Gets or sets the user name.
/// </summary>
public required string UserName { get; init; }
/// <summary>
/// Gets or sets the new line character.
/// </summary>
public required string NewLine { get; init; }
/// <summary>
/// Gets or sets the CLR version.
/// </summary>
public required string CLRVersion { get; init; }
/// <summary>
/// Gets or sets the options.
/// </summary>
public required IEnumerable<Library.Interface.ICommandLineArgument> Options { get; init; }
/// <summary>
/// Gets or sets the compression modules.
/// </summary>
public required IEnumerable<IDynamicModule> CompressionModules { get; init; }
/// <summary>
/// Gets or sets the encryption modules.
/// </summary>
public required IEnumerable<IDynamicModule> EncryptionModules { get; init; }
/// <summary>
/// Gets or sets the backend modules.
/// </summary>
public required IEnumerable<IDynamicModule> BackendModules { get; init; }
/// <summary>
/// Gets or sets the generic modules.
/// </summary>
public required IEnumerable<IDynamicModule> GenericModules { get; init; }
/// <summary>
/// Gets or sets the web modules.
/// </summary>
public required IEnumerable<IDynamicModule> WebModules { get; init; }
/// <summary>
/// Gets or sets the connection modules.
/// </summary>
public required IEnumerable<IDynamicModule> ConnectionModules { get; init; }
/// <summary>
/// Gets or sets the server modules.
/// </summary>
public required IEnumerable<object> ServerModules { get; init; }
/// <summary>
/// Gets or sets a value indicating whether alternate update URLs are being used.
/// </summary>
public required bool UsingAlternateUpdateURLs { get; init; }
/// <summary>
/// Gets or sets the log levels.
/// </summary>
public required string[] LogLevels { get; init; }
/// <summary>
/// Gets or sets the special folders.
/// </summary>
public required IEnumerable<SpecialFolderDto> SpecialFolders { get; init; }
/// <summary>
/// Gets or sets the browser locale.
/// </summary>
public required LocaleDto BrowserLocale { get; init; }
/// <summary>
/// Gets or sets the supported locales.
/// </summary>
public required IEnumerable<LocaleDto> SupportedLocales { get; init; }
/// <summary>
/// Gets or sets a value indicating whether the browser locale is supported.
/// </summary>
public required bool BrowserLocaleSupported { get; init; }
/// <summary>
/// Represents a special folder.
/// </summary>
public class SpecialFolderDto
{
/// <summary>
/// Gets or sets the ID.
/// </summary>
public required string ID { get; init; }
/// <summary>
/// Gets or sets the path.
/// </summary>
public required string Path { get; init; }
}
/// <summary>
/// Represents a locale.
/// </summary>
public class LocaleDto
{
/// <summary>
/// Gets or sets the code.
/// </summary>
public required string Code { get; init; }
/// <summary>
/// Gets or sets the English name.
/// </summary>
public required string EnglishName { get; init; }
/// <summary>
/// Gets or sets the display name.
/// </summary>
public required string DisplayName { get; init; }
}
}