| File: Installer\IInstaller.cs | Web Access |
| Project: src\sdk\src\TemplateEngine\Microsoft.TemplateEngine.Abstractions\Microsoft.TemplateEngine.Abstractions.csproj (Microsoft.TemplateEngine.Abstractions) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using Microsoft.TemplateEngine.Abstractions.TemplatePackage; namespace Microsoft.TemplateEngine.Abstractions.Installer { /// <summary> /// Template package installer interface. /// To implement installer compatible with built-in template package providers, implement this interface. /// </summary> public interface IInstaller { /// <summary> /// Gets the <see cref="IInstallerFactory"/> that created this installer. /// </summary> IInstallerFactory Factory { get; } /// <summary> /// Determines if the installer can install specific <see cref="InstallRequest"/>. /// </summary> /// <remarks> /// Ideally it should go as far as calling backend server to determine if such identifier exists. /// </remarks> Task<bool> CanInstallAsync(InstallRequest installationRequest, CancellationToken cancellationToken); /// <summary> /// Gets latest versions for <paramref name="templatePackages"/>. /// </summary> /// <param name="templatePackages">the template packages to get latest versions for.</param> /// <param name="provider"><see cref="IManagedTemplatePackageProvider"/> requesting latest version.</param> /// <param name="cancellationToken"></param> /// <returns>list of <see cref="CheckUpdateResult"/> containing latest versions for the sources.</returns> Task<IReadOnlyList<CheckUpdateResult>> GetLatestVersionAsync(IEnumerable<IManagedTemplatePackage> templatePackages, IManagedTemplatePackageProvider provider, CancellationToken cancellationToken); /// <summary> /// Installs the template package defined by <paramref name="installRequest"/>. /// </summary> /// <param name="installRequest">the template package to be installed.</param> /// <param name="provider"><see cref="IManagedTemplatePackageProvider"/> installing the package.</param> /// <param name="cancellationToken"></param> /// <returns><see cref="InstallResult"/> containing installation results and installed <see cref="InstallerOperationResult.TemplatePackage"/> if installation was successful.</returns> Task<InstallResult> InstallAsync(InstallRequest installRequest, IManagedTemplatePackageProvider provider, CancellationToken cancellationToken); /// <summary> /// Uninstalls the <paramref name="templatePackage"/>. /// </summary> /// <param name="templatePackage">the template package to uninstall.</param> /// <param name="provider"><see cref="IManagedTemplatePackageProvider"/> uninstalling the template package.</param> /// <param name="cancellationToken"></param> /// <returns><see cref="UninstallResult"/> containing the result for operation.</returns> Task<UninstallResult> UninstallAsync(IManagedTemplatePackage templatePackage, IManagedTemplatePackageProvider provider, CancellationToken cancellationToken); /// <summary> /// Updates the template package defined by <paramref name="updateRequest"/>. /// </summary> /// <param name="updateRequest"><see cref="UpdateRequest"/> defining the template package to update and target version.</param> /// <param name="provider"><see cref="IManagedTemplatePackageProvider"/> updating the package.</param> /// <param name="cancellationToken"></param> /// <returns><see cref="UpdateResult"/> containing the result for operation and installed <see cref="InstallerOperationResult.TemplatePackage"/> if update was successful.</returns> Task<UpdateResult> UpdateAsync(UpdateRequest updateRequest, IManagedTemplatePackageProvider provider, CancellationToken cancellationToken); } }