/** * 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 launch specification for Spot instances in the fleet, which determines * the defined duration, provisioning timeout behavior, and allocation * strategy.

The instance fleet configuration is available only in * Amazon EMR versions 4.8.0 and later, excluding 5.0.x versions. On-Demand and * Spot instance allocation strategies are available in Amazon EMR version 5.12.1 * and later.

See Also:

AWS * API Reference

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

The launch specification for Spot instances in the fleet, which determines * the defined duration, provisioning timeout behavior, and allocation * strategy.

*/ inline const SpotProvisioningSpecification& GetSpotSpecification() const{ return m_spotSpecification; } /** *

The launch specification for Spot instances in the fleet, which determines * the defined duration, provisioning timeout behavior, and allocation * strategy.

*/ inline bool SpotSpecificationHasBeenSet() const { return m_spotSpecificationHasBeenSet; } /** *

The launch specification for Spot instances in the fleet, which determines * the defined duration, provisioning timeout behavior, and allocation * strategy.

*/ inline void SetSpotSpecification(const SpotProvisioningSpecification& value) { m_spotSpecificationHasBeenSet = true; m_spotSpecification = value; } /** *

The launch specification for Spot instances in the fleet, which determines * the defined duration, provisioning timeout behavior, and allocation * strategy.

*/ inline void SetSpotSpecification(SpotProvisioningSpecification&& value) { m_spotSpecificationHasBeenSet = true; m_spotSpecification = std::move(value); } /** *

The launch specification for Spot instances in the fleet, which determines * the defined duration, provisioning timeout behavior, and allocation * strategy.

*/ inline InstanceFleetProvisioningSpecifications& WithSpotSpecification(const SpotProvisioningSpecification& value) { SetSpotSpecification(value); return *this;} /** *

The launch specification for Spot instances in the fleet, which determines * the defined duration, provisioning timeout behavior, and allocation * strategy.

*/ inline InstanceFleetProvisioningSpecifications& WithSpotSpecification(SpotProvisioningSpecification&& value) { SetSpotSpecification(std::move(value)); return *this;} /** *

The launch specification for On-Demand instances in the instance fleet, * which determines the allocation strategy.

The instance fleet * configuration is available only in Amazon EMR versions 4.8.0 and later, * excluding 5.0.x versions. On-Demand instances allocation strategy is available * in Amazon EMR version 5.12.1 and later.

*/ inline const OnDemandProvisioningSpecification& GetOnDemandSpecification() const{ return m_onDemandSpecification; } /** *

The launch specification for On-Demand instances in the instance fleet, * which determines the allocation strategy.

The instance fleet * configuration is available only in Amazon EMR versions 4.8.0 and later, * excluding 5.0.x versions. On-Demand instances allocation strategy is available * in Amazon EMR version 5.12.1 and later.

*/ inline bool OnDemandSpecificationHasBeenSet() const { return m_onDemandSpecificationHasBeenSet; } /** *

The launch specification for On-Demand instances in the instance fleet, * which determines the allocation strategy.

The instance fleet * configuration is available only in Amazon EMR versions 4.8.0 and later, * excluding 5.0.x versions. On-Demand instances allocation strategy is available * in Amazon EMR version 5.12.1 and later.

*/ inline void SetOnDemandSpecification(const OnDemandProvisioningSpecification& value) { m_onDemandSpecificationHasBeenSet = true; m_onDemandSpecification = value; } /** *

The launch specification for On-Demand instances in the instance fleet, * which determines the allocation strategy.

The instance fleet * configuration is available only in Amazon EMR versions 4.8.0 and later, * excluding 5.0.x versions. On-Demand instances allocation strategy is available * in Amazon EMR version 5.12.1 and later.

*/ inline void SetOnDemandSpecification(OnDemandProvisioningSpecification&& value) { m_onDemandSpecificationHasBeenSet = true; m_onDemandSpecification = std::move(value); } /** *

The launch specification for On-Demand instances in the instance fleet, * which determines the allocation strategy.

The instance fleet * configuration is available only in Amazon EMR versions 4.8.0 and later, * excluding 5.0.x versions. On-Demand instances allocation strategy is available * in Amazon EMR version 5.12.1 and later.

*/ inline InstanceFleetProvisioningSpecifications& WithOnDemandSpecification(const OnDemandProvisioningSpecification& value) { SetOnDemandSpecification(value); return *this;} /** *

The launch specification for On-Demand instances in the instance fleet, * which determines the allocation strategy.

The instance fleet * configuration is available only in Amazon EMR versions 4.8.0 and later, * excluding 5.0.x versions. On-Demand instances allocation strategy is available * in Amazon EMR version 5.12.1 and later.

*/ inline InstanceFleetProvisioningSpecifications& WithOnDemandSpecification(OnDemandProvisioningSpecification&& value) { SetOnDemandSpecification(std::move(value)); return *this;} private: SpotProvisioningSpecification m_spotSpecification; bool m_spotSpecificationHasBeenSet; OnDemandProvisioningSpecification m_onDemandSpecification; bool m_onDemandSpecificationHasBeenSet; }; } // namespace Model } // namespace EMR } // namespace Aws