// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
namespace AWS.GameKit.Editor.Models
{
///
/// A string-based feature setting.
///
/// This is intended for use with the AWS GameKit C++ SDK, which treats all feature settings as strings.
///
public interface IFeatureSetting
{
///
/// The setting's variable name in the feature's CloudFormation parameters.yml file.
///
/// Feature settings are marked in parameters.yml files by a placeholder that looks like: {{AWSGAMEKIT::VARS::my_variable}},
/// where my_variable is specified by VariableName.
///
/// VariableName should be used when calling:
/// - FeatureResourceManager.SetFeatureVariable(..., varName=MySetting.VariableName, ...)
/// - FeatureResourceManager.SetFeatureVariableIfUnset(..., varName=MySetting.VariableName, ...)
/// - As keys in the dictionary response from FeatureResourceManager.GetFeatureVariables()
///
public string VariableName { get; }
///
/// The current value of this setting represented as a string.
///
public string CurrentValueString { get; }
///
/// The default value of this setting represented as a string.
///
public string DefaultValueString { get; }
///
/// Set the current value of this setting to the provided string.
///
/// The new current value.
public void SetCurrentValueFromString(string value);
}
}