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

The resize specification for On-Demand and Spot Instances in the * fleet.

See Also:

AWS * API Reference

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

The resize specification for Spot Instances in the instance fleet, which * contains the resize timeout period.

*/ inline const SpotResizingSpecification& GetSpotResizeSpecification() const{ return m_spotResizeSpecification; } /** *

The resize specification for Spot Instances in the instance fleet, which * contains the resize timeout period.

*/ inline bool SpotResizeSpecificationHasBeenSet() const { return m_spotResizeSpecificationHasBeenSet; } /** *

The resize specification for Spot Instances in the instance fleet, which * contains the resize timeout period.

*/ inline void SetSpotResizeSpecification(const SpotResizingSpecification& value) { m_spotResizeSpecificationHasBeenSet = true; m_spotResizeSpecification = value; } /** *

The resize specification for Spot Instances in the instance fleet, which * contains the resize timeout period.

*/ inline void SetSpotResizeSpecification(SpotResizingSpecification&& value) { m_spotResizeSpecificationHasBeenSet = true; m_spotResizeSpecification = std::move(value); } /** *

The resize specification for Spot Instances in the instance fleet, which * contains the resize timeout period.

*/ inline InstanceFleetResizingSpecifications& WithSpotResizeSpecification(const SpotResizingSpecification& value) { SetSpotResizeSpecification(value); return *this;} /** *

The resize specification for Spot Instances in the instance fleet, which * contains the resize timeout period.

*/ inline InstanceFleetResizingSpecifications& WithSpotResizeSpecification(SpotResizingSpecification&& value) { SetSpotResizeSpecification(std::move(value)); return *this;} /** *

The resize specification for On-Demand Instances in the instance fleet, which * contains the resize timeout period.

*/ inline const OnDemandResizingSpecification& GetOnDemandResizeSpecification() const{ return m_onDemandResizeSpecification; } /** *

The resize specification for On-Demand Instances in the instance fleet, which * contains the resize timeout period.

*/ inline bool OnDemandResizeSpecificationHasBeenSet() const { return m_onDemandResizeSpecificationHasBeenSet; } /** *

The resize specification for On-Demand Instances in the instance fleet, which * contains the resize timeout period.

*/ inline void SetOnDemandResizeSpecification(const OnDemandResizingSpecification& value) { m_onDemandResizeSpecificationHasBeenSet = true; m_onDemandResizeSpecification = value; } /** *

The resize specification for On-Demand Instances in the instance fleet, which * contains the resize timeout period.

*/ inline void SetOnDemandResizeSpecification(OnDemandResizingSpecification&& value) { m_onDemandResizeSpecificationHasBeenSet = true; m_onDemandResizeSpecification = std::move(value); } /** *

The resize specification for On-Demand Instances in the instance fleet, which * contains the resize timeout period.

*/ inline InstanceFleetResizingSpecifications& WithOnDemandResizeSpecification(const OnDemandResizingSpecification& value) { SetOnDemandResizeSpecification(value); return *this;} /** *

The resize specification for On-Demand Instances in the instance fleet, which * contains the resize timeout period.

*/ inline InstanceFleetResizingSpecifications& WithOnDemandResizeSpecification(OnDemandResizingSpecification&& value) { SetOnDemandResizeSpecification(std::move(value)); return *this;} private: SpotResizingSpecification m_spotResizeSpecification; bool m_spotResizeSpecificationHasBeenSet = false; OnDemandResizingSpecification m_onDemandResizeSpecification; bool m_onDemandResizeSpecificationHasBeenSet = false; }; } // namespace Model } // namespace EMR } // namespace Aws