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

Details about the instances that Amazon Web Services recommends that you * purchase.

See Also:

AWS * API Reference

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

The Amazon EC2 instances that Amazon Web Services recommends that you * purchase.

*/ inline const EC2InstanceDetails& GetEC2InstanceDetails() const{ return m_eC2InstanceDetails; } /** *

The Amazon EC2 instances that Amazon Web Services recommends that you * purchase.

*/ inline bool EC2InstanceDetailsHasBeenSet() const { return m_eC2InstanceDetailsHasBeenSet; } /** *

The Amazon EC2 instances that Amazon Web Services recommends that you * purchase.

*/ inline void SetEC2InstanceDetails(const EC2InstanceDetails& value) { m_eC2InstanceDetailsHasBeenSet = true; m_eC2InstanceDetails = value; } /** *

The Amazon EC2 instances that Amazon Web Services recommends that you * purchase.

*/ inline void SetEC2InstanceDetails(EC2InstanceDetails&& value) { m_eC2InstanceDetailsHasBeenSet = true; m_eC2InstanceDetails = std::move(value); } /** *

The Amazon EC2 instances that Amazon Web Services recommends that you * purchase.

*/ inline InstanceDetails& WithEC2InstanceDetails(const EC2InstanceDetails& value) { SetEC2InstanceDetails(value); return *this;} /** *

The Amazon EC2 instances that Amazon Web Services recommends that you * purchase.

*/ inline InstanceDetails& WithEC2InstanceDetails(EC2InstanceDetails&& value) { SetEC2InstanceDetails(std::move(value)); return *this;} /** *

The Amazon RDS instances that Amazon Web Services recommends that you * purchase.

*/ inline const RDSInstanceDetails& GetRDSInstanceDetails() const{ return m_rDSInstanceDetails; } /** *

The Amazon RDS instances that Amazon Web Services recommends that you * purchase.

*/ inline bool RDSInstanceDetailsHasBeenSet() const { return m_rDSInstanceDetailsHasBeenSet; } /** *

The Amazon RDS instances that Amazon Web Services recommends that you * purchase.

*/ inline void SetRDSInstanceDetails(const RDSInstanceDetails& value) { m_rDSInstanceDetailsHasBeenSet = true; m_rDSInstanceDetails = value; } /** *

The Amazon RDS instances that Amazon Web Services recommends that you * purchase.

*/ inline void SetRDSInstanceDetails(RDSInstanceDetails&& value) { m_rDSInstanceDetailsHasBeenSet = true; m_rDSInstanceDetails = std::move(value); } /** *

The Amazon RDS instances that Amazon Web Services recommends that you * purchase.

*/ inline InstanceDetails& WithRDSInstanceDetails(const RDSInstanceDetails& value) { SetRDSInstanceDetails(value); return *this;} /** *

The Amazon RDS instances that Amazon Web Services recommends that you * purchase.

*/ inline InstanceDetails& WithRDSInstanceDetails(RDSInstanceDetails&& value) { SetRDSInstanceDetails(std::move(value)); return *this;} /** *

The Amazon Redshift instances that Amazon Web Services recommends that you * purchase.

*/ inline const RedshiftInstanceDetails& GetRedshiftInstanceDetails() const{ return m_redshiftInstanceDetails; } /** *

The Amazon Redshift instances that Amazon Web Services recommends that you * purchase.

*/ inline bool RedshiftInstanceDetailsHasBeenSet() const { return m_redshiftInstanceDetailsHasBeenSet; } /** *

The Amazon Redshift instances that Amazon Web Services recommends that you * purchase.

*/ inline void SetRedshiftInstanceDetails(const RedshiftInstanceDetails& value) { m_redshiftInstanceDetailsHasBeenSet = true; m_redshiftInstanceDetails = value; } /** *

The Amazon Redshift instances that Amazon Web Services recommends that you * purchase.

*/ inline void SetRedshiftInstanceDetails(RedshiftInstanceDetails&& value) { m_redshiftInstanceDetailsHasBeenSet = true; m_redshiftInstanceDetails = std::move(value); } /** *

The Amazon Redshift instances that Amazon Web Services recommends that you * purchase.

*/ inline InstanceDetails& WithRedshiftInstanceDetails(const RedshiftInstanceDetails& value) { SetRedshiftInstanceDetails(value); return *this;} /** *

The Amazon Redshift instances that Amazon Web Services recommends that you * purchase.

*/ inline InstanceDetails& WithRedshiftInstanceDetails(RedshiftInstanceDetails&& value) { SetRedshiftInstanceDetails(std::move(value)); return *this;} /** *

The ElastiCache instances that Amazon Web Services recommends that you * purchase.

*/ inline const ElastiCacheInstanceDetails& GetElastiCacheInstanceDetails() const{ return m_elastiCacheInstanceDetails; } /** *

The ElastiCache instances that Amazon Web Services recommends that you * purchase.

*/ inline bool ElastiCacheInstanceDetailsHasBeenSet() const { return m_elastiCacheInstanceDetailsHasBeenSet; } /** *

The ElastiCache instances that Amazon Web Services recommends that you * purchase.

*/ inline void SetElastiCacheInstanceDetails(const ElastiCacheInstanceDetails& value) { m_elastiCacheInstanceDetailsHasBeenSet = true; m_elastiCacheInstanceDetails = value; } /** *

The ElastiCache instances that Amazon Web Services recommends that you * purchase.

*/ inline void SetElastiCacheInstanceDetails(ElastiCacheInstanceDetails&& value) { m_elastiCacheInstanceDetailsHasBeenSet = true; m_elastiCacheInstanceDetails = std::move(value); } /** *

The ElastiCache instances that Amazon Web Services recommends that you * purchase.

*/ inline InstanceDetails& WithElastiCacheInstanceDetails(const ElastiCacheInstanceDetails& value) { SetElastiCacheInstanceDetails(value); return *this;} /** *

The ElastiCache instances that Amazon Web Services recommends that you * purchase.

*/ inline InstanceDetails& WithElastiCacheInstanceDetails(ElastiCacheInstanceDetails&& value) { SetElastiCacheInstanceDetails(std::move(value)); return *this;} /** *

The Amazon OpenSearch Service instances that Amazon Web Services recommends * that you purchase.

*/ inline const ESInstanceDetails& GetESInstanceDetails() const{ return m_eSInstanceDetails; } /** *

The Amazon OpenSearch Service instances that Amazon Web Services recommends * that you purchase.

*/ inline bool ESInstanceDetailsHasBeenSet() const { return m_eSInstanceDetailsHasBeenSet; } /** *

The Amazon OpenSearch Service instances that Amazon Web Services recommends * that you purchase.

*/ inline void SetESInstanceDetails(const ESInstanceDetails& value) { m_eSInstanceDetailsHasBeenSet = true; m_eSInstanceDetails = value; } /** *

The Amazon OpenSearch Service instances that Amazon Web Services recommends * that you purchase.

*/ inline void SetESInstanceDetails(ESInstanceDetails&& value) { m_eSInstanceDetailsHasBeenSet = true; m_eSInstanceDetails = std::move(value); } /** *

The Amazon OpenSearch Service instances that Amazon Web Services recommends * that you purchase.

*/ inline InstanceDetails& WithESInstanceDetails(const ESInstanceDetails& value) { SetESInstanceDetails(value); return *this;} /** *

The Amazon OpenSearch Service instances that Amazon Web Services recommends * that you purchase.

*/ inline InstanceDetails& WithESInstanceDetails(ESInstanceDetails&& value) { SetESInstanceDetails(std::move(value)); return *this;} private: EC2InstanceDetails m_eC2InstanceDetails; bool m_eC2InstanceDetailsHasBeenSet = false; RDSInstanceDetails m_rDSInstanceDetails; bool m_rDSInstanceDetailsHasBeenSet = false; RedshiftInstanceDetails m_redshiftInstanceDetails; bool m_redshiftInstanceDetailsHasBeenSet = false; ElastiCacheInstanceDetails m_elastiCacheInstanceDetails; bool m_elastiCacheInstanceDetailsHasBeenSet = false; ESInstanceDetails m_eSInstanceDetails; bool m_eSInstanceDetailsHasBeenSet = false; }; } // namespace Model } // namespace CostExplorer } // namespace Aws