/** * 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 GreengrassV2 { namespace Model { /** *

Contains information about an exponential rollout rate for a configuration * deployment job.

See Also:

AWS * API Reference

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

The minimum number of devices that receive a pending job notification, per * minute, when the job starts. This parameter defines the initial rollout rate of * the job.

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

The minimum number of devices that receive a pending job notification, per * minute, when the job starts. This parameter defines the initial rollout rate of * the job.

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

The minimum number of devices that receive a pending job notification, per * minute, when the job starts. This parameter defines the initial rollout rate of * the job.

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

The minimum number of devices that receive a pending job notification, per * minute, when the job starts. This parameter defines the initial rollout rate of * the job.

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

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

This * parameter supports up to one digit after the decimal (for example, you can * specify 1.5, but not 1.55).

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

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

This * parameter supports up to one digit after the decimal (for example, you can * specify 1.5, but not 1.55).

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

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

This * parameter supports up to one digit after the decimal (for example, you can * specify 1.5, but not 1.55).

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

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

This * parameter supports up to one digit after the decimal (for example, you can * specify 1.5, but not 1.55).

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

The criteria to increase the rollout rate for the job.

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

The criteria to increase the rollout rate for the job.

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

The criteria to increase the rollout rate for the job.

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

The criteria to increase the rollout rate for the job.

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

The criteria to increase the rollout rate for the job.

*/ inline IoTJobExponentialRolloutRate& WithRateIncreaseCriteria(const IoTJobRateIncreaseCriteria& value) { SetRateIncreaseCriteria(value); return *this;} /** *

The criteria to increase the rollout rate for the job.

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