using System; using System.Collections.Generic; using System.ComponentModel; namespace GitHub.DistributedTask.Pipelines.Artifacts { /// /// Provides a mechanism to resolve the artifacts /// [EditorBrowsable(EditorBrowsableState.Never)] public interface IArtifactResolver { /// /// Given a resource, it gets the corresponding task id from its extension /// /// /// Guid GetArtifactDownloadTaskId(Resource resource); /// /// Given a resource and step, it maps the resource properties to task inputs /// /// /// void PopulateMappedTaskInputs(Resource resource, TaskStep taskStep); /// /// Given an artifact step, it resolves the artifact and returns a download artifact task /// /// /// /// Boolean ResolveStep(IPipelineContext pipelineContext, JobStep step, out IList resolvedSteps); /// /// Given resource store and task step it translate the taskStep into actual task reference with mapped inputs /// /// /// /// Boolean ResolveStep(IResourceStore resourceStore, TaskStep taskStep, out String errorMessage); /// /// Validate the given resource in the YAML file. Also resolve version for the resource if not resolved already /// /// Boolean ValidateDeclaredResource(Resource resource, out PipelineValidationError error); } }