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

Allows you to create an exponential rate of rollout for a job.

See * Also:

AWS * API Reference

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

The minimum number of things that will be notified of a pending job, per * minute at the start of job rollout. This parameter allows you to define the * initial rate of rollout.

*/ inline int GetBaseRatePerMinute() const{ return m_baseRatePerMinute; } /** *

The minimum number of things that will be notified of a pending job, per * minute at the start of job rollout. This parameter allows you to define the * initial rate of rollout.

*/ inline bool BaseRatePerMinuteHasBeenSet() const { return m_baseRatePerMinuteHasBeenSet; } /** *

The minimum number of things that will be notified of a pending job, per * minute at the start of job rollout. This parameter allows you to define the * initial rate of rollout.

*/ inline void SetBaseRatePerMinute(int value) { m_baseRatePerMinuteHasBeenSet = true; m_baseRatePerMinute = value; } /** *

The minimum number of things that will be notified of a pending job, per * minute at the start of job rollout. This parameter allows you to define the * initial rate of rollout.

*/ inline ExponentialRolloutRate& WithBaseRatePerMinute(int value) { SetBaseRatePerMinute(value); return *this;} /** *

The exponential factor to increase the rate of rollout for a job.

*

Amazon Web Services IoT Core supports up to one digit after the decimal (for * example, 1.5, but not 1.55).

*/ inline double GetIncrementFactor() const{ return m_incrementFactor; } /** *

The exponential factor to increase the rate of rollout for a job.

*

Amazon Web Services IoT Core supports up to one digit after the decimal (for * example, 1.5, but not 1.55).

*/ inline bool IncrementFactorHasBeenSet() const { return m_incrementFactorHasBeenSet; } /** *

The exponential factor to increase the rate of rollout for a job.

*

Amazon Web Services IoT Core supports up to one digit after the decimal (for * example, 1.5, but not 1.55).

*/ inline void SetIncrementFactor(double value) { m_incrementFactorHasBeenSet = true; m_incrementFactor = value; } /** *

The exponential factor to increase the rate of rollout for a job.

*

Amazon Web Services IoT Core supports up to one digit after the decimal (for * example, 1.5, but not 1.55).

*/ inline ExponentialRolloutRate& WithIncrementFactor(double value) { SetIncrementFactor(value); return *this;} /** *

The criteria to initiate the increase in rate of rollout for a job.

*/ inline const RateIncreaseCriteria& GetRateIncreaseCriteria() const{ return m_rateIncreaseCriteria; } /** *

The criteria to initiate the increase in rate of rollout for a job.

*/ inline bool RateIncreaseCriteriaHasBeenSet() const { return m_rateIncreaseCriteriaHasBeenSet; } /** *

The criteria to initiate the increase in rate of rollout for a job.

*/ inline void SetRateIncreaseCriteria(const RateIncreaseCriteria& value) { m_rateIncreaseCriteriaHasBeenSet = true; m_rateIncreaseCriteria = value; } /** *

The criteria to initiate the increase in rate of rollout for a job.

*/ inline void SetRateIncreaseCriteria(RateIncreaseCriteria&& value) { m_rateIncreaseCriteriaHasBeenSet = true; m_rateIncreaseCriteria = std::move(value); } /** *

The criteria to initiate the increase in rate of rollout for a job.

*/ inline ExponentialRolloutRate& WithRateIncreaseCriteria(const RateIncreaseCriteria& value) { SetRateIncreaseCriteria(value); return *this;} /** *

The criteria to initiate the increase in rate of rollout for a job.

*/ inline ExponentialRolloutRate& WithRateIncreaseCriteria(RateIncreaseCriteria&& value) { SetRateIncreaseCriteria(std::move(value)); return *this;} private: int m_baseRatePerMinute; bool m_baseRatePerMinuteHasBeenSet = false; double m_incrementFactor; bool m_incrementFactorHasBeenSet = false; RateIncreaseCriteria m_rateIncreaseCriteria; bool m_rateIncreaseCriteriaHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws