summaryrefslogtreecommitdiffstats
path: root/src/main.lib/Plugins/Interfaces
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.lib/Plugins/Interfaces')
-rw-r--r--src/main.lib/Plugins/Interfaces/ICore.cs20
-rw-r--r--src/main.lib/Plugins/Interfaces/ICsrPluginOptionsFactory.cs17
-rw-r--r--src/main.lib/Plugins/Interfaces/IInstallationPlugin.cs2
-rw-r--r--src/main.lib/Plugins/Interfaces/IOrderPlugin.cs10
-rw-r--r--src/main.lib/Plugins/Interfaces/IOrderPluginOptionsFactory.cs16
-rw-r--r--src/main.lib/Plugins/Interfaces/IResolver.cs16
-rw-r--r--src/main.lib/Plugins/Interfaces/IStorePluginOptionsFactory.cs17
-rw-r--r--src/main.lib/Plugins/Interfaces/ITargetPluginOptionsFactory.cs21
8 files changed, 59 insertions, 60 deletions
diff --git a/src/main.lib/Plugins/Interfaces/ICore.cs b/src/main.lib/Plugins/Interfaces/ICore.cs
index 3b90ff0..a3a700b 100644
--- a/src/main.lib/Plugins/Interfaces/ICore.cs
+++ b/src/main.lib/Plugins/Interfaces/ICore.cs
@@ -1,4 +1,7 @@
-using System;
+using PKISharp.WACS.Services;
+using PKISharp.WACS.Services.Serialization;
+using System;
+using System.Threading.Tasks;
namespace PKISharp.WACS.Plugins.Interfaces
{
@@ -43,6 +46,21 @@ namespace PKISharp.WACS.Plugins.Interfaces
(bool, string?) Disabled { get; }
}
+ public interface IPluginOptionsFactory<T>: IPluginOptionsFactory where T: PluginOptions
+ {
+ /// <summary>
+ /// Check or get configuration information needed (interactive)
+ /// </summary>
+ /// <param name="target"></param>
+ Task<T?> Aquire(IInputService inputService, RunLevel runLevel);
+
+ /// <summary>
+ /// Check information needed (unattended)
+ /// </summary>
+ /// <param name="target"></param>
+ Task<T?> Default();
+ }
+
public interface INull { }
public interface IIgnore { }
diff --git a/src/main.lib/Plugins/Interfaces/ICsrPluginOptionsFactory.cs b/src/main.lib/Plugins/Interfaces/ICsrPluginOptionsFactory.cs
index af45be2..39005c1 100644
--- a/src/main.lib/Plugins/Interfaces/ICsrPluginOptionsFactory.cs
+++ b/src/main.lib/Plugins/Interfaces/ICsrPluginOptionsFactory.cs
@@ -1,21 +1,6 @@
using PKISharp.WACS.Plugins.Base.Options;
-using PKISharp.WACS.Services;
-using System.Threading.Tasks;
namespace PKISharp.WACS.Plugins.Interfaces
{
- public interface ICsrPluginOptionsFactory : IPluginOptionsFactory
- {
- /// <summary>
- /// Check or get information needed for store (interactive)
- /// </summary>
- /// <param name="target"></param>
- Task<CsrPluginOptions?> Aquire(IInputService inputService, RunLevel runLevel);
-
- /// <summary>
- /// Check information needed for store (unattended)
- /// </summary>
- /// <param name="target"></param>
- Task<CsrPluginOptions?> Default();
- }
+ public interface ICsrPluginOptionsFactory : IPluginOptionsFactory<CsrPluginOptions> {}
}
diff --git a/src/main.lib/Plugins/Interfaces/IInstallationPlugin.cs b/src/main.lib/Plugins/Interfaces/IInstallationPlugin.cs
index 0732b06..b4272b5 100644
--- a/src/main.lib/Plugins/Interfaces/IInstallationPlugin.cs
+++ b/src/main.lib/Plugins/Interfaces/IInstallationPlugin.cs
@@ -16,6 +16,6 @@ namespace PKISharp.WACS.Plugins.Interfaces
/// <param name="renewal"></param>
/// <param name="newCertificateInfo"></param>
/// <param name="oldCertificateInfo"></param>
- Task Install(IEnumerable<IStorePlugin> stores, CertificateInfo newCertificateInfo, CertificateInfo? oldCertificateInfo);
+ Task Install(Target target, IEnumerable<IStorePlugin> stores, CertificateInfo newCertificateInfo, CertificateInfo? oldCertificateInfo);
}
}
diff --git a/src/main.lib/Plugins/Interfaces/IOrderPlugin.cs b/src/main.lib/Plugins/Interfaces/IOrderPlugin.cs
new file mode 100644
index 0000000..4b59586
--- /dev/null
+++ b/src/main.lib/Plugins/Interfaces/IOrderPlugin.cs
@@ -0,0 +1,10 @@
+using PKISharp.WACS.DomainObjects;
+using System.Collections.Generic;
+
+namespace PKISharp.WACS.Plugins.Interfaces
+{
+ public interface IOrderPlugin
+ {
+ IEnumerable<Order> Split(Renewal renewal, Target target);
+ }
+}
diff --git a/src/main.lib/Plugins/Interfaces/IOrderPluginOptionsFactory.cs b/src/main.lib/Plugins/Interfaces/IOrderPluginOptionsFactory.cs
new file mode 100644
index 0000000..446b2b2
--- /dev/null
+++ b/src/main.lib/Plugins/Interfaces/IOrderPluginOptionsFactory.cs
@@ -0,0 +1,16 @@
+using PKISharp.WACS.DomainObjects;
+using PKISharp.WACS.Plugins.Base.Options;
+
+namespace PKISharp.WACS.Plugins.Interfaces
+{
+ public interface IOrderPluginOptionsFactory : IPluginOptionsFactory<OrderPluginOptions>
+ {
+ /// <summary>
+ /// Is the order splitting option available for a specific target?
+ /// Used to rule out unfit orders
+ /// </summary>
+ /// <param name="target"></param>
+ /// <returns></returns>
+ bool CanProcess(Target target);
+ }
+}
diff --git a/src/main.lib/Plugins/Interfaces/IResolver.cs b/src/main.lib/Plugins/Interfaces/IResolver.cs
index 85315ab..6a25448 100644
--- a/src/main.lib/Plugins/Interfaces/IResolver.cs
+++ b/src/main.lib/Plugins/Interfaces/IResolver.cs
@@ -8,18 +8,22 @@ namespace PKISharp.WACS.Plugins.Interfaces
{
public interface IResolver
{
+ Task<ITargetPluginOptionsFactory> GetTargetPlugin(ILifetimeScope scope);
+
+ Task<IValidationPluginOptionsFactory> GetValidationPlugin(ILifetimeScope scope, Target target);
+
+ Task<IOrderPluginOptionsFactory> GetOrderPlugin(ILifetimeScope scope, Target target);
+
+ Task<ICsrPluginOptionsFactory> GetCsrPlugin(ILifetimeScope scope);
+
+ Task<IStorePluginOptionsFactory?> GetStorePlugin(ILifetimeScope scope, IEnumerable<IStorePluginOptionsFactory> chosen);
+
Task<IInstallationPluginOptionsFactory?> GetInstallationPlugin(
ILifetimeScope scope,
IEnumerable<Type> storeType,
IEnumerable<IInstallationPluginOptionsFactory> chosen);
- Task<IStorePluginOptionsFactory?> GetStorePlugin(ILifetimeScope scope,
- IEnumerable<IStorePluginOptionsFactory> chosen);
- Task<ITargetPluginOptionsFactory> GetTargetPlugin(ILifetimeScope scope);
- Task<ICsrPluginOptionsFactory> GetCsrPlugin(ILifetimeScope scope);
-
- Task<IValidationPluginOptionsFactory> GetValidationPlugin(ILifetimeScope scope, Target target);
}
} \ No newline at end of file
diff --git a/src/main.lib/Plugins/Interfaces/IStorePluginOptionsFactory.cs b/src/main.lib/Plugins/Interfaces/IStorePluginOptionsFactory.cs
index 3becd42..26c93c7 100644
--- a/src/main.lib/Plugins/Interfaces/IStorePluginOptionsFactory.cs
+++ b/src/main.lib/Plugins/Interfaces/IStorePluginOptionsFactory.cs
@@ -1,24 +1,9 @@
using PKISharp.WACS.Plugins.Base.Options;
-using PKISharp.WACS.Services;
-using System.Threading.Tasks;
namespace PKISharp.WACS.Plugins.Interfaces
{
/// <summary>
/// StorePluginFactory interface
/// </summary>
- public interface IStorePluginOptionsFactory : IPluginOptionsFactory
- {
- /// <summary>
- /// Check or get information needed for store (interactive)
- /// </summary>
- /// <param name="target"></param>
- Task<StorePluginOptions?> Aquire(IInputService inputService, RunLevel runLevel);
-
- /// <summary>
- /// Check information needed for store (unattended)
- /// </summary>
- /// <param name="target"></param>
- Task<StorePluginOptions?> Default();
- }
+ public interface IStorePluginOptionsFactory : IPluginOptionsFactory<StorePluginOptions> { }
}
diff --git a/src/main.lib/Plugins/Interfaces/ITargetPluginOptionsFactory.cs b/src/main.lib/Plugins/Interfaces/ITargetPluginOptionsFactory.cs
index d9b13d5..bff5c1e 100644
--- a/src/main.lib/Plugins/Interfaces/ITargetPluginOptionsFactory.cs
+++ b/src/main.lib/Plugins/Interfaces/ITargetPluginOptionsFactory.cs
@@ -1,28 +1,9 @@
using PKISharp.WACS.Plugins.Base.Options;
-using PKISharp.WACS.Services;
-using System.Threading.Tasks;
namespace PKISharp.WACS.Plugins.Interfaces
{
/// <summary>
/// TargetPluginFactory interface
/// </summary>
- public interface ITargetPluginOptionsFactory : IPluginOptionsFactory
- {
- /// <summary>
- /// Hide when it cannot be chosen
- /// </summary>
- bool Hidden { get; }
- /// <summary>
- /// Check or get information needed for target (interactive)
- /// </summary>
- /// <param name="target"></param>
- Task<TargetPluginOptions?> Aquire(IInputService inputService, RunLevel runLevel);
-
- /// <summary>
- /// Check information needed for target (unattended)
- /// </summary>
- /// <param name="target"></param>
- Task<TargetPluginOptions?> Default();
- }
+ public interface ITargetPluginOptionsFactory : IPluginOptionsFactory<TargetPluginOptions> { }
}