maksit-lto-backup/src/MaksIT.LTO.Backup/Configuration.cs

41 lines
1.1 KiB
C#

using System.Security;
namespace MaksIT.LTO.Backup;
public abstract class PathBase {
public required string Path { get; set; }
}
public class LocalPath : PathBase {
// Additional properties specific to local paths can be added here
}
public class PasswordCredentials {
public required string Username { get; set; }
public required SecureString Password { get; set; }
}
public class RemotePath : PathBase {
public PasswordCredentials? PasswordCredentials { get; set; }
public required string Protocol { get; set; } // e.g., SMB, FTP, etc.
}
public class WorkingFolder {
public LocalPath? LocalPath { get; set; }
public RemotePath? RemotePath { get; set; }
}
public class BackupItem {
public required string Name { get; set; }
public required string Barcode { get; set; }
public required WorkingFolder Source { get; set; }
public required WorkingFolder Destination { get; set; }
public required string LTOGen { get; set; }
}
public class Configuration {
public required string TapePath { get; set; }
public required int WriteDelay { get; set; }
public required List<BackupItem> Backups { get; set; }
}