/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #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 IoT job configuration.

See Also:

* AWS * API Reference

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

The rollout configuration for the job. This configuration defines the rate at * which the job rolls out to the fleet of target devices.

*/ inline const IoTJobExecutionsRolloutConfig& GetJobExecutionsRolloutConfig() const{ return m_jobExecutionsRolloutConfig; } /** *

The rollout configuration for the job. This configuration defines the rate at * which the job rolls out to the fleet of target devices.

*/ inline bool JobExecutionsRolloutConfigHasBeenSet() const { return m_jobExecutionsRolloutConfigHasBeenSet; } /** *

The rollout configuration for the job. This configuration defines the rate at * which the job rolls out to the fleet of target devices.

*/ inline void SetJobExecutionsRolloutConfig(const IoTJobExecutionsRolloutConfig& value) { m_jobExecutionsRolloutConfigHasBeenSet = true; m_jobExecutionsRolloutConfig = value; } /** *

The rollout configuration for the job. This configuration defines the rate at * which the job rolls out to the fleet of target devices.

*/ inline void SetJobExecutionsRolloutConfig(IoTJobExecutionsRolloutConfig&& value) { m_jobExecutionsRolloutConfigHasBeenSet = true; m_jobExecutionsRolloutConfig = std::move(value); } /** *

The rollout configuration for the job. This configuration defines the rate at * which the job rolls out to the fleet of target devices.

*/ inline DeploymentIoTJobConfiguration& WithJobExecutionsRolloutConfig(const IoTJobExecutionsRolloutConfig& value) { SetJobExecutionsRolloutConfig(value); return *this;} /** *

The rollout configuration for the job. This configuration defines the rate at * which the job rolls out to the fleet of target devices.

*/ inline DeploymentIoTJobConfiguration& WithJobExecutionsRolloutConfig(IoTJobExecutionsRolloutConfig&& value) { SetJobExecutionsRolloutConfig(std::move(value)); return *this;} /** *

The stop configuration for the job. This configuration defines when and how * to stop a job rollout.

*/ inline const IoTJobAbortConfig& GetAbortConfig() const{ return m_abortConfig; } /** *

The stop configuration for the job. This configuration defines when and how * to stop a job rollout.

*/ inline bool AbortConfigHasBeenSet() const { return m_abortConfigHasBeenSet; } /** *

The stop configuration for the job. This configuration defines when and how * to stop a job rollout.

*/ inline void SetAbortConfig(const IoTJobAbortConfig& value) { m_abortConfigHasBeenSet = true; m_abortConfig = value; } /** *

The stop configuration for the job. This configuration defines when and how * to stop a job rollout.

*/ inline void SetAbortConfig(IoTJobAbortConfig&& value) { m_abortConfigHasBeenSet = true; m_abortConfig = std::move(value); } /** *

The stop configuration for the job. This configuration defines when and how * to stop a job rollout.

*/ inline DeploymentIoTJobConfiguration& WithAbortConfig(const IoTJobAbortConfig& value) { SetAbortConfig(value); return *this;} /** *

The stop configuration for the job. This configuration defines when and how * to stop a job rollout.

*/ inline DeploymentIoTJobConfiguration& WithAbortConfig(IoTJobAbortConfig&& value) { SetAbortConfig(std::move(value)); return *this;} /** *

The timeout configuration for the job. This configuration defines the amount * of time each device has to complete the job.

*/ inline const IoTJobTimeoutConfig& GetTimeoutConfig() const{ return m_timeoutConfig; } /** *

The timeout configuration for the job. This configuration defines the amount * of time each device has to complete the job.

*/ inline bool TimeoutConfigHasBeenSet() const { return m_timeoutConfigHasBeenSet; } /** *

The timeout configuration for the job. This configuration defines the amount * of time each device has to complete the job.

*/ inline void SetTimeoutConfig(const IoTJobTimeoutConfig& value) { m_timeoutConfigHasBeenSet = true; m_timeoutConfig = value; } /** *

The timeout configuration for the job. This configuration defines the amount * of time each device has to complete the job.

*/ inline void SetTimeoutConfig(IoTJobTimeoutConfig&& value) { m_timeoutConfigHasBeenSet = true; m_timeoutConfig = std::move(value); } /** *

The timeout configuration for the job. This configuration defines the amount * of time each device has to complete the job.

*/ inline DeploymentIoTJobConfiguration& WithTimeoutConfig(const IoTJobTimeoutConfig& value) { SetTimeoutConfig(value); return *this;} /** *

The timeout configuration for the job. This configuration defines the amount * of time each device has to complete the job.

*/ inline DeploymentIoTJobConfiguration& WithTimeoutConfig(IoTJobTimeoutConfig&& value) { SetTimeoutConfig(std::move(value)); return *this;} private: IoTJobExecutionsRolloutConfig m_jobExecutionsRolloutConfig; bool m_jobExecutionsRolloutConfigHasBeenSet = false; IoTJobAbortConfig m_abortConfig; bool m_abortConfigHasBeenSet = false; IoTJobTimeoutConfig m_timeoutConfig; bool m_timeoutConfigHasBeenSet = false; }; } // namespace Model } // namespace GreengrassV2 } // namespace Aws