/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ using System; using System.Collections.Generic; using Amazon.Extensions.NETCore.Setup; using Amazon.SimpleSystemsManagement.Model; using Microsoft.Extensions.Configuration; namespace Amazon.Extensions.Configuration.SystemsManager { /// /// /// Represents AWS Systems Manager Parameter Store variables as an . /// public class SystemsManagerConfigurationSource : ISystemsManagerConfigurationSource { public SystemsManagerConfigurationSource() { Filters = new List(); } /// /// A Path used to filter parameters. /// public string Path { get; set; } /// /// used to create an AWS Systems Manager Client />. /// public AWSOptions AwsOptions { get; set; } /// public bool Optional { get; set; } /// public TimeSpan? ReloadAfter { get; set; } /// /// Prepends the supplied Prefix to all result keys /// public string Prefix { get; set; } /// public Action OnLoadException { get; set; } /// /// Implementation of used to process results. Defaults to . /// public IParameterProcessor ParameterProcessor { get; set; } /// /// Filters to limit the request results. /// You can't filter using the parameter name. /// public List Filters { get; } /// public IConfigurationProvider Build(IConfigurationBuilder builder) { return new SystemsManagerConfigurationProvider(this); } } }