using ZB.MOM.WW.ScadaBridge.Commons.Types; using ZB.MOM.WW.ScadaBridge.Commons.Types.Flattening; namespace ZB.MOM.WW.ScadaBridge.DeploymentManager; /// /// Abstraction over the TemplateEngine flattening + validation + hashing pipeline. /// Used by DeploymentService to obtain a validated, hashed FlattenedConfiguration. /// public interface IFlatteningPipeline { /// /// Flattens and validates an instance configuration, returning the configuration, /// revision hash, and validation result. /// /// Id of the instance to flatten and validate. /// Cancellation token. /// A task that resolves to the flattened configuration, revision hash, and validation result; or a failure result if flattening could not complete. Task> FlattenAndValidateAsync( int instanceId, CancellationToken cancellationToken = default); } /// /// Result of the flattening pipeline: configuration, hash, and validation. /// public record FlatteningPipelineResult( FlattenedConfiguration Configuration, string RevisionHash, ValidationResult Validation);