using System; using System.Collections.Generic; using GitHub.DistributedTask.Expressions2; using GitHub.DistributedTask.ObjectTemplating.Tokens; using GitHub.DistributedTask.Pipelines.ContextData; namespace GitHub.DistributedTask.Pipelines.ObjectTemplating { /// /// Evaluates parts of the workflow DOM. For example, a job strategy or step inputs. /// public interface IPipelineTemplateEvaluator { Boolean EvaluateStepContinueOnError( TemplateToken token, DictionaryContextData contextData, IList expressionFunctions); String EvaluateStepDisplayName( TemplateToken token, DictionaryContextData contextData, IList expressionFunctions); Dictionary EvaluateStepEnvironment( TemplateToken token, DictionaryContextData contextData, IList expressionFunctions, StringComparer keyComparer); Boolean EvaluateStepIf( TemplateToken token, DictionaryContextData contextData, IList expressionFunctions, IEnumerable> expressionState); Dictionary EvaluateStepInputs( TemplateToken token, DictionaryContextData contextData, IList expressionFunctions); Int32 EvaluateStepTimeout( TemplateToken token, DictionaryContextData contextData, IList expressionFunctions); JobContainer EvaluateJobContainer( TemplateToken token, DictionaryContextData contextData, IList expressionFunctions); Dictionary EvaluateJobOutput( TemplateToken token, DictionaryContextData contextData, IList expressionFunctions); TemplateToken EvaluateEnvironmentUrl( TemplateToken token, DictionaryContextData contextData, IList expressionFunctions); Dictionary EvaluateJobDefaultsRun( TemplateToken token, DictionaryContextData contextData, IList expressionFunctions); IList> EvaluateJobServiceContainers( TemplateToken token, DictionaryContextData contextData, IList expressionFunctions); Snapshot EvaluateJobSnapshotRequest( TemplateToken token, DictionaryContextData contextData, IList expressionFunctions); } }