/** * 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 a staged rollout of a job.

See Also:

AWS * API Reference

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

The maximum number of things that will be notified of a pending job, per * minute. This parameter allows you to create a staged rollout.

*/ inline int GetMaximumPerMinute() const{ return m_maximumPerMinute; } /** *

The maximum number of things that will be notified of a pending job, per * minute. This parameter allows you to create a staged rollout.

*/ inline bool MaximumPerMinuteHasBeenSet() const { return m_maximumPerMinuteHasBeenSet; } /** *

The maximum number of things that will be notified of a pending job, per * minute. This parameter allows you to create a staged rollout.

*/ inline void SetMaximumPerMinute(int value) { m_maximumPerMinuteHasBeenSet = true; m_maximumPerMinute = value; } /** *

The maximum number of things that will be notified of a pending job, per * minute. This parameter allows you to create a staged rollout.

*/ inline JobExecutionsRolloutConfig& WithMaximumPerMinute(int value) { SetMaximumPerMinute(value); return *this;} /** *

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

*/ inline const ExponentialRolloutRate& GetExponentialRate() const{ return m_exponentialRate; } /** *

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

*/ inline bool ExponentialRateHasBeenSet() const { return m_exponentialRateHasBeenSet; } /** *

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

*/ inline void SetExponentialRate(const ExponentialRolloutRate& value) { m_exponentialRateHasBeenSet = true; m_exponentialRate = value; } /** *

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

*/ inline void SetExponentialRate(ExponentialRolloutRate&& value) { m_exponentialRateHasBeenSet = true; m_exponentialRate = std::move(value); } /** *

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

*/ inline JobExecutionsRolloutConfig& WithExponentialRate(const ExponentialRolloutRate& value) { SetExponentialRate(value); return *this;} /** *

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

*/ inline JobExecutionsRolloutConfig& WithExponentialRate(ExponentialRolloutRate&& value) { SetExponentialRate(std::move(value)); return *this;} private: int m_maximumPerMinute; bool m_maximumPerMinuteHasBeenSet = false; ExponentialRolloutRate m_exponentialRate; bool m_exponentialRateHasBeenSet = false; }; } // namespace Model } // namespace IoT } // namespace Aws