/** * 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 { /** *

The rate of increase for a job rollout. This parameter allows you to define * an exponential rate increase for a job rollout.

See Also:

AWS * API Reference

*/ class AwsJobExponentialRolloutRate { public: AWS_IOT_API AwsJobExponentialRolloutRate(); AWS_IOT_API AwsJobExponentialRolloutRate(Aws::Utils::Json::JsonView jsonValue); AWS_IOT_API AwsJobExponentialRolloutRate& 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 the job rollout. This is the initial rate of the * 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 the job rollout. This is the initial rate of the * 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 the job rollout. This is the initial rate of the * 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 the job rollout. This is the initial rate of the * rollout.

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

The rate of increase for a job rollout. The number of things notified is * multiplied by this factor.

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

The rate of increase for a job rollout. The number of things notified is * multiplied by this factor.

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

The rate of increase for a job rollout. The number of things notified is * multiplied by this factor.

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

The rate of increase for a job rollout. The number of things notified is * multiplied by this factor.

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

The criteria to initiate the increase in 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 const AwsJobRateIncreaseCriteria& GetRateIncreaseCriteria() const{ return m_rateIncreaseCriteria; } /** *

The criteria to initiate the increase in 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 RateIncreaseCriteriaHasBeenSet() const { return m_rateIncreaseCriteriaHasBeenSet; } /** *

The criteria to initiate the increase in 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 SetRateIncreaseCriteria(const AwsJobRateIncreaseCriteria& value) { m_rateIncreaseCriteriaHasBeenSet = true; m_rateIncreaseCriteria = value; } /** *

The criteria to initiate the increase in 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 SetRateIncreaseCriteria(AwsJobRateIncreaseCriteria&& value) { m_rateIncreaseCriteriaHasBeenSet = true; m_rateIncreaseCriteria = std::move(value); } /** *

The criteria to initiate the increase in 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 AwsJobExponentialRolloutRate& WithRateIncreaseCriteria(const AwsJobRateIncreaseCriteria& value) { SetRateIncreaseCriteria(value); return *this;} /** *

The criteria to initiate the increase in 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 AwsJobExponentialRolloutRate& WithRateIncreaseCriteria(AwsJobRateIncreaseCriteria&& value) { SetRateIncreaseCriteria(std::move(value)); return *this;} private: int m_baseRatePerMinute; bool m_baseRatePerMinuteHasBeenSet = false; double m_incrementFactor; bool m_incrementFactorHasBeenSet = false; AwsJobRateIncreaseCriteria m_rateIncreaseCriteria; bool m_rateIncreaseCriteriaHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws