package alien4cloud.deployment; import java.util.List; import java.util.Map; import alien4cloud.model.deployment.DeploymentTopology; import alien4cloud.model.orchestrators.locations.LocationResourceTemplate; import org.alien4cloud.tosca.model.templates.NodeTemplate; import alien4cloud.plugin.aop.Overridable; public interface IDeploymentNodeSubstitutionService { /** * Get all available substitutions for a processed deployment topology * * @param deploymentTopology * @return */ @Overridable Map<String, List<LocationResourceTemplate>> getAvailableSubstitutions(DeploymentTopology deploymentTopology); /** * This method updates the node substitution choices and default selections for a given deployment topology. * * @param deploymentTopology The deployment topology in which to save substitutions / deploymentTopology.getNodeTemplates() are the nodes from the original * topology. * @param nodesToMergeProperties The node that where substituted previously with specific configurations from deployment user. */ void processNodesSubstitution(DeploymentTopology deploymentTopology, Map<String, NodeTemplate> nodesToMergeProperties); }