// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
using System.Collections.Generic;
using System.Threading.Tasks;
using AWS.Deploy.Common.Recipes.Validation;
namespace AWS.Deploy.Common.Recipes
{
public interface IRecipeHandler
{
///
/// Retrieves all the that are defined by the system as well as any other recipes that are retrieved from an external source.
///
Task> GetRecipeDefinitions(List? recipeDefinitionPaths = null);
///
/// Wrapper method to fetch custom recipe definition paths from a deployment-manifest file as well as
/// other locations that are monitored by the same source control root as the target application that needs to be deployed.
///
Task> LocateCustomRecipePaths(ProjectDefinition projectDefinition);
///
/// Wrapper method to fetch custom recipe definition paths from a deployment-manifest file as well as
/// other locations that are monitored by the same source control root as the target application that needs to be deployed.
///
Task> LocateCustomRecipePaths(string targetApplicationFullPath, string solutionDirectoryPath);
///
/// Runs the recipe level validators and returns a list of failed validations
///
List RunRecipeValidators(Recommendation recommendation, IDeployToolValidationContext deployToolValidationContext);
}
}