/** * 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 DataSync { namespace Model { /** *

The details about an Amazon Web Services storage service that DataSync * Discovery recommends for a resource in your on-premises storage system.

*

For more information, see Recommendations * provided by DataSync Discovery.

See Also:

AWS * API Reference

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

A recommended Amazon Web Services storage service that you can migrate data * to based on information that DataSync Discovery collects about your on-premises * storage system.

*/ inline const Aws::String& GetStorageType() const{ return m_storageType; } /** *

A recommended Amazon Web Services storage service that you can migrate data * to based on information that DataSync Discovery collects about your on-premises * storage system.

*/ inline bool StorageTypeHasBeenSet() const { return m_storageTypeHasBeenSet; } /** *

A recommended Amazon Web Services storage service that you can migrate data * to based on information that DataSync Discovery collects about your on-premises * storage system.

*/ inline void SetStorageType(const Aws::String& value) { m_storageTypeHasBeenSet = true; m_storageType = value; } /** *

A recommended Amazon Web Services storage service that you can migrate data * to based on information that DataSync Discovery collects about your on-premises * storage system.

*/ inline void SetStorageType(Aws::String&& value) { m_storageTypeHasBeenSet = true; m_storageType = std::move(value); } /** *

A recommended Amazon Web Services storage service that you can migrate data * to based on information that DataSync Discovery collects about your on-premises * storage system.

*/ inline void SetStorageType(const char* value) { m_storageTypeHasBeenSet = true; m_storageType.assign(value); } /** *

A recommended Amazon Web Services storage service that you can migrate data * to based on information that DataSync Discovery collects about your on-premises * storage system.

*/ inline Recommendation& WithStorageType(const Aws::String& value) { SetStorageType(value); return *this;} /** *

A recommended Amazon Web Services storage service that you can migrate data * to based on information that DataSync Discovery collects about your on-premises * storage system.

*/ inline Recommendation& WithStorageType(Aws::String&& value) { SetStorageType(std::move(value)); return *this;} /** *

A recommended Amazon Web Services storage service that you can migrate data * to based on information that DataSync Discovery collects about your on-premises * storage system.

*/ inline Recommendation& WithStorageType(const char* value) { SetStorageType(value); return *this;} /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline const Aws::Map& GetStorageConfiguration() const{ return m_storageConfiguration; } /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline bool StorageConfigurationHasBeenSet() const { return m_storageConfigurationHasBeenSet; } /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline void SetStorageConfiguration(const Aws::Map& value) { m_storageConfigurationHasBeenSet = true; m_storageConfiguration = value; } /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline void SetStorageConfiguration(Aws::Map&& value) { m_storageConfigurationHasBeenSet = true; m_storageConfiguration = std::move(value); } /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline Recommendation& WithStorageConfiguration(const Aws::Map& value) { SetStorageConfiguration(value); return *this;} /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline Recommendation& WithStorageConfiguration(Aws::Map&& value) { SetStorageConfiguration(std::move(value)); return *this;} /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline Recommendation& AddStorageConfiguration(const Aws::String& key, const Aws::String& value) { m_storageConfigurationHasBeenSet = true; m_storageConfiguration.emplace(key, value); return *this; } /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline Recommendation& AddStorageConfiguration(Aws::String&& key, const Aws::String& value) { m_storageConfigurationHasBeenSet = true; m_storageConfiguration.emplace(std::move(key), value); return *this; } /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline Recommendation& AddStorageConfiguration(const Aws::String& key, Aws::String&& value) { m_storageConfigurationHasBeenSet = true; m_storageConfiguration.emplace(key, std::move(value)); return *this; } /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline Recommendation& AddStorageConfiguration(Aws::String&& key, Aws::String&& value) { m_storageConfigurationHasBeenSet = true; m_storageConfiguration.emplace(std::move(key), std::move(value)); return *this; } /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline Recommendation& AddStorageConfiguration(const char* key, Aws::String&& value) { m_storageConfigurationHasBeenSet = true; m_storageConfiguration.emplace(key, std::move(value)); return *this; } /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline Recommendation& AddStorageConfiguration(Aws::String&& key, const char* value) { m_storageConfigurationHasBeenSet = true; m_storageConfiguration.emplace(std::move(key), value); return *this; } /** *

Information about how you can set up a recommended Amazon Web Services * storage service.

*/ inline Recommendation& AddStorageConfiguration(const char* key, const char* value) { m_storageConfigurationHasBeenSet = true; m_storageConfiguration.emplace(key, value); return *this; } /** *

The estimated monthly cost of the recommended Amazon Web Services storage * service.

*/ inline const Aws::String& GetEstimatedMonthlyStorageCost() const{ return m_estimatedMonthlyStorageCost; } /** *

The estimated monthly cost of the recommended Amazon Web Services storage * service.

*/ inline bool EstimatedMonthlyStorageCostHasBeenSet() const { return m_estimatedMonthlyStorageCostHasBeenSet; } /** *

The estimated monthly cost of the recommended Amazon Web Services storage * service.

*/ inline void SetEstimatedMonthlyStorageCost(const Aws::String& value) { m_estimatedMonthlyStorageCostHasBeenSet = true; m_estimatedMonthlyStorageCost = value; } /** *

The estimated monthly cost of the recommended Amazon Web Services storage * service.

*/ inline void SetEstimatedMonthlyStorageCost(Aws::String&& value) { m_estimatedMonthlyStorageCostHasBeenSet = true; m_estimatedMonthlyStorageCost = std::move(value); } /** *

The estimated monthly cost of the recommended Amazon Web Services storage * service.

*/ inline void SetEstimatedMonthlyStorageCost(const char* value) { m_estimatedMonthlyStorageCostHasBeenSet = true; m_estimatedMonthlyStorageCost.assign(value); } /** *

The estimated monthly cost of the recommended Amazon Web Services storage * service.

*/ inline Recommendation& WithEstimatedMonthlyStorageCost(const Aws::String& value) { SetEstimatedMonthlyStorageCost(value); return *this;} /** *

The estimated monthly cost of the recommended Amazon Web Services storage * service.

*/ inline Recommendation& WithEstimatedMonthlyStorageCost(Aws::String&& value) { SetEstimatedMonthlyStorageCost(std::move(value)); return *this;} /** *

The estimated monthly cost of the recommended Amazon Web Services storage * service.

*/ inline Recommendation& WithEstimatedMonthlyStorageCost(const char* value) { SetEstimatedMonthlyStorageCost(value); return *this;} private: Aws::String m_storageType; bool m_storageTypeHasBeenSet = false; Aws::Map m_storageConfiguration; bool m_storageConfigurationHasBeenSet = false; Aws::String m_estimatedMonthlyStorageCost; bool m_estimatedMonthlyStorageCostHasBeenSet = false; }; } // namespace Model } // namespace DataSync } // namespace Aws