/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace CloudWatchEvidently { namespace Model { /** *

This structure defines the traffic allocation percentages among the feature * variations during one step of a launch, and the start time of that * step.

See Also:

AWS * API Reference

*/ class ScheduledSplitConfig { public: AWS_CLOUDWATCHEVIDENTLY_API ScheduledSplitConfig(); AWS_CLOUDWATCHEVIDENTLY_API ScheduledSplitConfig(Aws::Utils::Json::JsonView jsonValue); AWS_CLOUDWATCHEVIDENTLY_API ScheduledSplitConfig& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_CLOUDWATCHEVIDENTLY_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The traffic allocation percentages among the feature variations during one * step of a launch. This is a set of key-value pairs. The keys are variation * names. The values represent the percentage of traffic to allocate to that * variation during this step.

The values is expressed in thousandths of a * percent, so assigning a weight of 50000 assigns 50% of traffic to that * variation.

If the sum of the weights for all the variations in a segment * override does not add up to 100,000, then the remaining traffic that matches * this segment is not assigned by this segment override, and instead moves on to * the next segment override or the default traffic split.

*/ inline const Aws::Map& GetGroupWeights() const{ return m_groupWeights; } /** *

The traffic allocation percentages among the feature variations during one * step of a launch. This is a set of key-value pairs. The keys are variation * names. The values represent the percentage of traffic to allocate to that * variation during this step.

The values is expressed in thousandths of a * percent, so assigning a weight of 50000 assigns 50% of traffic to that * variation.

If the sum of the weights for all the variations in a segment * override does not add up to 100,000, then the remaining traffic that matches * this segment is not assigned by this segment override, and instead moves on to * the next segment override or the default traffic split.

*/ inline bool GroupWeightsHasBeenSet() const { return m_groupWeightsHasBeenSet; } /** *

The traffic allocation percentages among the feature variations during one * step of a launch. This is a set of key-value pairs. The keys are variation * names. The values represent the percentage of traffic to allocate to that * variation during this step.

The values is expressed in thousandths of a * percent, so assigning a weight of 50000 assigns 50% of traffic to that * variation.

If the sum of the weights for all the variations in a segment * override does not add up to 100,000, then the remaining traffic that matches * this segment is not assigned by this segment override, and instead moves on to * the next segment override or the default traffic split.

*/ inline void SetGroupWeights(const Aws::Map& value) { m_groupWeightsHasBeenSet = true; m_groupWeights = value; } /** *

The traffic allocation percentages among the feature variations during one * step of a launch. This is a set of key-value pairs. The keys are variation * names. The values represent the percentage of traffic to allocate to that * variation during this step.

The values is expressed in thousandths of a * percent, so assigning a weight of 50000 assigns 50% of traffic to that * variation.

If the sum of the weights for all the variations in a segment * override does not add up to 100,000, then the remaining traffic that matches * this segment is not assigned by this segment override, and instead moves on to * the next segment override or the default traffic split.

*/ inline void SetGroupWeights(Aws::Map&& value) { m_groupWeightsHasBeenSet = true; m_groupWeights = std::move(value); } /** *

The traffic allocation percentages among the feature variations during one * step of a launch. This is a set of key-value pairs. The keys are variation * names. The values represent the percentage of traffic to allocate to that * variation during this step.

The values is expressed in thousandths of a * percent, so assigning a weight of 50000 assigns 50% of traffic to that * variation.

If the sum of the weights for all the variations in a segment * override does not add up to 100,000, then the remaining traffic that matches * this segment is not assigned by this segment override, and instead moves on to * the next segment override or the default traffic split.

*/ inline ScheduledSplitConfig& WithGroupWeights(const Aws::Map& value) { SetGroupWeights(value); return *this;} /** *

The traffic allocation percentages among the feature variations during one * step of a launch. This is a set of key-value pairs. The keys are variation * names. The values represent the percentage of traffic to allocate to that * variation during this step.

The values is expressed in thousandths of a * percent, so assigning a weight of 50000 assigns 50% of traffic to that * variation.

If the sum of the weights for all the variations in a segment * override does not add up to 100,000, then the remaining traffic that matches * this segment is not assigned by this segment override, and instead moves on to * the next segment override or the default traffic split.

*/ inline ScheduledSplitConfig& WithGroupWeights(Aws::Map&& value) { SetGroupWeights(std::move(value)); return *this;} /** *

The traffic allocation percentages among the feature variations during one * step of a launch. This is a set of key-value pairs. The keys are variation * names. The values represent the percentage of traffic to allocate to that * variation during this step.

The values is expressed in thousandths of a * percent, so assigning a weight of 50000 assigns 50% of traffic to that * variation.

If the sum of the weights for all the variations in a segment * override does not add up to 100,000, then the remaining traffic that matches * this segment is not assigned by this segment override, and instead moves on to * the next segment override or the default traffic split.

*/ inline ScheduledSplitConfig& AddGroupWeights(const Aws::String& key, long long value) { m_groupWeightsHasBeenSet = true; m_groupWeights.emplace(key, value); return *this; } /** *

The traffic allocation percentages among the feature variations during one * step of a launch. This is a set of key-value pairs. The keys are variation * names. The values represent the percentage of traffic to allocate to that * variation during this step.

The values is expressed in thousandths of a * percent, so assigning a weight of 50000 assigns 50% of traffic to that * variation.

If the sum of the weights for all the variations in a segment * override does not add up to 100,000, then the remaining traffic that matches * this segment is not assigned by this segment override, and instead moves on to * the next segment override or the default traffic split.

*/ inline ScheduledSplitConfig& AddGroupWeights(Aws::String&& key, long long value) { m_groupWeightsHasBeenSet = true; m_groupWeights.emplace(std::move(key), value); return *this; } /** *

The traffic allocation percentages among the feature variations during one * step of a launch. This is a set of key-value pairs. The keys are variation * names. The values represent the percentage of traffic to allocate to that * variation during this step.

The values is expressed in thousandths of a * percent, so assigning a weight of 50000 assigns 50% of traffic to that * variation.

If the sum of the weights for all the variations in a segment * override does not add up to 100,000, then the remaining traffic that matches * this segment is not assigned by this segment override, and instead moves on to * the next segment override or the default traffic split.

*/ inline ScheduledSplitConfig& AddGroupWeights(const char* key, long long value) { m_groupWeightsHasBeenSet = true; m_groupWeights.emplace(key, value); return *this; } /** *

Use this parameter to specify different traffic splits for one or more * audience segments. A segment is a portion of your audience that share one * or more characteristics. Examples could be Chrome browser users, users in * Europe, or Firefox browser users in Europe who also fit other criteria that your * application collects, such as age.

This parameter is an array of up to * six segment override objects. Each of these objects specifies a segment that you * have already created, and defines the traffic split for that segment.

*/ inline const Aws::Vector& GetSegmentOverrides() const{ return m_segmentOverrides; } /** *

Use this parameter to specify different traffic splits for one or more * audience segments. A segment is a portion of your audience that share one * or more characteristics. Examples could be Chrome browser users, users in * Europe, or Firefox browser users in Europe who also fit other criteria that your * application collects, such as age.

This parameter is an array of up to * six segment override objects. Each of these objects specifies a segment that you * have already created, and defines the traffic split for that segment.

*/ inline bool SegmentOverridesHasBeenSet() const { return m_segmentOverridesHasBeenSet; } /** *

Use this parameter to specify different traffic splits for one or more * audience segments. A segment is a portion of your audience that share one * or more characteristics. Examples could be Chrome browser users, users in * Europe, or Firefox browser users in Europe who also fit other criteria that your * application collects, such as age.

This parameter is an array of up to * six segment override objects. Each of these objects specifies a segment that you * have already created, and defines the traffic split for that segment.

*/ inline void SetSegmentOverrides(const Aws::Vector& value) { m_segmentOverridesHasBeenSet = true; m_segmentOverrides = value; } /** *

Use this parameter to specify different traffic splits for one or more * audience segments. A segment is a portion of your audience that share one * or more characteristics. Examples could be Chrome browser users, users in * Europe, or Firefox browser users in Europe who also fit other criteria that your * application collects, such as age.

This parameter is an array of up to * six segment override objects. Each of these objects specifies a segment that you * have already created, and defines the traffic split for that segment.

*/ inline void SetSegmentOverrides(Aws::Vector&& value) { m_segmentOverridesHasBeenSet = true; m_segmentOverrides = std::move(value); } /** *

Use this parameter to specify different traffic splits for one or more * audience segments. A segment is a portion of your audience that share one * or more characteristics. Examples could be Chrome browser users, users in * Europe, or Firefox browser users in Europe who also fit other criteria that your * application collects, such as age.

This parameter is an array of up to * six segment override objects. Each of these objects specifies a segment that you * have already created, and defines the traffic split for that segment.

*/ inline ScheduledSplitConfig& WithSegmentOverrides(const Aws::Vector& value) { SetSegmentOverrides(value); return *this;} /** *

Use this parameter to specify different traffic splits for one or more * audience segments. A segment is a portion of your audience that share one * or more characteristics. Examples could be Chrome browser users, users in * Europe, or Firefox browser users in Europe who also fit other criteria that your * application collects, such as age.

This parameter is an array of up to * six segment override objects. Each of these objects specifies a segment that you * have already created, and defines the traffic split for that segment.

*/ inline ScheduledSplitConfig& WithSegmentOverrides(Aws::Vector&& value) { SetSegmentOverrides(std::move(value)); return *this;} /** *

Use this parameter to specify different traffic splits for one or more * audience segments. A segment is a portion of your audience that share one * or more characteristics. Examples could be Chrome browser users, users in * Europe, or Firefox browser users in Europe who also fit other criteria that your * application collects, such as age.

This parameter is an array of up to * six segment override objects. Each of these objects specifies a segment that you * have already created, and defines the traffic split for that segment.

*/ inline ScheduledSplitConfig& AddSegmentOverrides(const SegmentOverride& value) { m_segmentOverridesHasBeenSet = true; m_segmentOverrides.push_back(value); return *this; } /** *

Use this parameter to specify different traffic splits for one or more * audience segments. A segment is a portion of your audience that share one * or more characteristics. Examples could be Chrome browser users, users in * Europe, or Firefox browser users in Europe who also fit other criteria that your * application collects, such as age.

This parameter is an array of up to * six segment override objects. Each of these objects specifies a segment that you * have already created, and defines the traffic split for that segment.

*/ inline ScheduledSplitConfig& AddSegmentOverrides(SegmentOverride&& value) { m_segmentOverridesHasBeenSet = true; m_segmentOverrides.push_back(std::move(value)); return *this; } /** *

The date and time that this step of the launch starts.

*/ inline const Aws::Utils::DateTime& GetStartTime() const{ return m_startTime; } /** *

The date and time that this step of the launch starts.

*/ inline bool StartTimeHasBeenSet() const { return m_startTimeHasBeenSet; } /** *

The date and time that this step of the launch starts.

*/ inline void SetStartTime(const Aws::Utils::DateTime& value) { m_startTimeHasBeenSet = true; m_startTime = value; } /** *

The date and time that this step of the launch starts.

*/ inline void SetStartTime(Aws::Utils::DateTime&& value) { m_startTimeHasBeenSet = true; m_startTime = std::move(value); } /** *

The date and time that this step of the launch starts.

*/ inline ScheduledSplitConfig& WithStartTime(const Aws::Utils::DateTime& value) { SetStartTime(value); return *this;} /** *

The date and time that this step of the launch starts.

*/ inline ScheduledSplitConfig& WithStartTime(Aws::Utils::DateTime&& value) { SetStartTime(std::move(value)); return *this;} private: Aws::Map m_groupWeights; bool m_groupWeightsHasBeenSet = false; Aws::Vector m_segmentOverrides; bool m_segmentOverridesHasBeenSet = false; Aws::Utils::DateTime m_startTime; bool m_startTimeHasBeenSet = false; }; } // namespace Model } // namespace CloudWatchEvidently } // namespace Aws