public static IServiceCollection AddServices()

in src/Microsoft.Atlas.CommandLine/Program.cs [76:134]


        public static IServiceCollection AddServices(IServiceCollection services)
        {
            return services
                .AddTransient<IFileSystem, FileSystem>()

                .AddSingleton<IYamlSerializers, YamlSerializers>()
                .AddSingleton<IJmesPathQuery, JmesPathQuery>()
                .AddSingleton<ISecretTracker, SecretTracker>()

                .AddSingleton<IJsonHttpClientFactory, JsonHttpClientFactory>()
                .AddSingleton<IHttpClientFactory, HttpClientFactory>()
                .AddSingleton<IHttpClientHandlerFactory, HttpClientHandlerFactory>()

                .AddSingleton<ISettingsDirectory, SettingsDirectory>()
                .AddSingleton<ISettingsManager, SettingsManager>()

                .AddTransient<IPatternMatcherFactory, PatternMatcherFactory>()

                .AddTransient<IBlueprintManager, BlueprintManager>()
                .AddTransient<IBlueprintPackageProvider, HttpsFilesBlueprintPackageProvider>()
                .AddTransient<IBlueprintPackageProvider, DirectoryBlueprintPackageProvider>()
                .AddTransient<IBlueprintPackageProvider, ArchiveBlueprintPackageProvider>()
                .AddTransient<IDependencyBlueprintPackageProvider, DependencyBlueprintPackageProvider>()
                .AddTransient<DependencyBlueprintDecorator>()
                .AddTransient<IBlueprintDecoratorProvider, SwaggerBlueprintDecoratorProvider>()
                .AddTransient<IBlueprintDecoratorProvider, DependencyBlueprintDecoratorProvider>()

                .AddTransient<IRequestGenerator, RequestGenerator>()

                .AddSingleton<ITemplateEngineFactory, TemplateEngineFactory>()
                .AddSingleton<TemplateEngineServices>()
                .AddTransient<ITemplateHelperProvider, SshHelpers>()
                .AddTransient<ITemplateHelperProvider, BinaryHelpers>()

                .AddSingleton<CommandLineApplicationServices>()
                .AddTransient<IConsole, ConsoleService>()
                .AddTransient(typeof(IFactory<>), typeof(Factory<>))

                .AddTransient<IWorkflowLoader, WorkflowLoader>()
                .AddTransient<IWorkflowEngine, WorkflowEngine>()
                .AddTransient<IValuesEngine, ValuesEngine>()

                .AddTransient<WorkflowCommands>()
                .AddTransient<AccountCommands>()
                .AddTransient<SwaggerCommands>()

                .AddLogging(builder =>
                {
                    builder
                        .AddConsole(opt => opt.IncludeScopes = true)
                        .AddFilter(level => true)
                        .SetMinimumLevel(LogLevel.Trace);
                })
                .Configure<LoggerFilterOptions>(options =>
                {
                    options.MinLevel = LogLevel.Trace;
                })
                ;
        }