/* * 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. */ /* * Do not modify this file. This file is generated from the evidently-2021-02-01.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.CloudWatchEvidently.Model { /// /// This structure contains information about one Evidently feature in your account. /// public partial class Feature { private string _arn; private DateTime? _createdTime; private string _defaultVariation; private string _description; private Dictionary _entityOverrides = new Dictionary(); private List _evaluationRules = new List(); private FeatureEvaluationStrategy _evaluationStrategy; private DateTime? _lastUpdatedTime; private string _name; private string _project; private FeatureStatus _status; private Dictionary _tags = new Dictionary(); private VariationValueType _valueType; private List _variations = new List(); /// /// Gets and sets the property Arn. /// /// The ARN of the feature. /// /// [AWSProperty(Required=true, Min=0, Max=2048)] public string Arn { get { return this._arn; } set { this._arn = value; } } // Check to see if Arn property is set internal bool IsSetArn() { return this._arn != null; } /// /// Gets and sets the property CreatedTime. /// /// The date and time that the feature is created. /// /// [AWSProperty(Required=true)] public DateTime CreatedTime { get { return this._createdTime.GetValueOrDefault(); } set { this._createdTime = value; } } // Check to see if CreatedTime property is set internal bool IsSetCreatedTime() { return this._createdTime.HasValue; } /// /// Gets and sets the property DefaultVariation. /// /// The name of the variation that is used as the default variation. The default variation /// is served to users who are not allocated to any ongoing launches or experiments of /// this feature. /// /// /// /// This variation must also be listed in the variations structure. /// /// /// /// If you omit defaultVariation, the first variation listed in the variations /// structure is used as the default variation. /// /// [AWSProperty(Min=1, Max=127)] public string DefaultVariation { get { return this._defaultVariation; } set { this._defaultVariation = value; } } // Check to see if DefaultVariation property is set internal bool IsSetDefaultVariation() { return this._defaultVariation != null; } /// /// Gets and sets the property Description. /// /// The description of the feature. /// /// [AWSProperty(Min=0, Max=160)] public string Description { get { return this._description; } set { this._description = value; } } // Check to see if Description property is set internal bool IsSetDescription() { return this._description != null; } /// /// Gets and sets the property EntityOverrides. /// /// A set of key-value pairs that specify users who should always be served a specific /// variation of a feature. Each key specifies a user using their user ID, account ID, /// or some other identifier. The value specifies the name of the variation that the user /// is to be served. /// /// /// /// For the override to be successful, the value of the key must match the entityId /// used in the EvaluateFeature /// operation. /// /// [AWSProperty(Min=0, Max=2500)] public Dictionary EntityOverrides { get { return this._entityOverrides; } set { this._entityOverrides = value; } } // Check to see if EntityOverrides property is set internal bool IsSetEntityOverrides() { return this._entityOverrides != null && this._entityOverrides.Count > 0; } /// /// Gets and sets the property EvaluationRules. /// /// An array of structures that define the evaluation rules for the feature. /// /// public List EvaluationRules { get { return this._evaluationRules; } set { this._evaluationRules = value; } } // Check to see if EvaluationRules property is set internal bool IsSetEvaluationRules() { return this._evaluationRules != null && this._evaluationRules.Count > 0; } /// /// Gets and sets the property EvaluationStrategy. /// /// If this value is ALL_RULES, the traffic allocation specified by any ongoing /// launches or experiments is being used. If this is DEFAULT_VARIATION, /// the default variation is being served to all users. /// /// [AWSProperty(Required=true)] public FeatureEvaluationStrategy EvaluationStrategy { get { return this._evaluationStrategy; } set { this._evaluationStrategy = value; } } // Check to see if EvaluationStrategy property is set internal bool IsSetEvaluationStrategy() { return this._evaluationStrategy != null; } /// /// Gets and sets the property LastUpdatedTime. /// /// The date and time that the feature was most recently updated. /// /// [AWSProperty(Required=true)] public DateTime LastUpdatedTime { get { return this._lastUpdatedTime.GetValueOrDefault(); } set { this._lastUpdatedTime = value; } } // Check to see if LastUpdatedTime property is set internal bool IsSetLastUpdatedTime() { return this._lastUpdatedTime.HasValue; } /// /// Gets and sets the property Name. /// /// The name of the feature. /// /// [AWSProperty(Required=true, Min=1, Max=127)] public string Name { get { return this._name; } set { this._name = value; } } // Check to see if Name property is set internal bool IsSetName() { return this._name != null; } /// /// Gets and sets the property Project. /// /// The name or ARN of the project that contains the feature. /// /// [AWSProperty(Min=0, Max=2048)] public string Project { get { return this._project; } set { this._project = value; } } // Check to see if Project property is set internal bool IsSetProject() { return this._project != null; } /// /// Gets and sets the property Status. /// /// The current state of the feature. /// /// [AWSProperty(Required=true)] public FeatureStatus Status { get { return this._status; } set { this._status = value; } } // Check to see if Status property is set internal bool IsSetStatus() { return this._status != null; } /// /// Gets and sets the property Tags. /// /// The list of tag keys and values associated with this feature. /// /// public Dictionary Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } /// /// Gets and sets the property ValueType. /// /// Defines the type of value used to define the different feature variations. For more /// information, see Variation /// types /// /// [AWSProperty(Required=true)] public VariationValueType ValueType { get { return this._valueType; } set { this._valueType = value; } } // Check to see if ValueType property is set internal bool IsSetValueType() { return this._valueType != null; } /// /// Gets and sets the property Variations. /// /// An array of structures that contain the configuration of the feature's different variations. /// /// [AWSProperty(Required=true)] public List Variations { get { return this._variations; } set { this._variations = value; } } // Check to see if Variations property is set internal bool IsSetVariations() { return this._variations != null && this._variations.Count > 0; } } }