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

Information about all the available strategy options for migrating and * modernizing an application component.

See Also:

AWS * API Reference

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

Indicates if a specific strategy is preferred for the application component. *

*/ inline bool GetIsPreferred() const{ return m_isPreferred; } /** *

Indicates if a specific strategy is preferred for the application component. *

*/ inline bool IsPreferredHasBeenSet() const { return m_isPreferredHasBeenSet; } /** *

Indicates if a specific strategy is preferred for the application component. *

*/ inline void SetIsPreferred(bool value) { m_isPreferredHasBeenSet = true; m_isPreferred = value; } /** *

Indicates if a specific strategy is preferred for the application component. *

*/ inline StrategyOption& WithIsPreferred(bool value) { SetIsPreferred(value); return *this;} /** *

Type of transformation. For example, Rehost, Replatform, and so on.

*/ inline const Strategy& GetStrategy() const{ return m_strategy; } /** *

Type of transformation. For example, Rehost, Replatform, and so on.

*/ inline bool StrategyHasBeenSet() const { return m_strategyHasBeenSet; } /** *

Type of transformation. For example, Rehost, Replatform, and so on.

*/ inline void SetStrategy(const Strategy& value) { m_strategyHasBeenSet = true; m_strategy = value; } /** *

Type of transformation. For example, Rehost, Replatform, and so on.

*/ inline void SetStrategy(Strategy&& value) { m_strategyHasBeenSet = true; m_strategy = std::move(value); } /** *

Type of transformation. For example, Rehost, Replatform, and so on.

*/ inline StrategyOption& WithStrategy(const Strategy& value) { SetStrategy(value); return *this;} /** *

Type of transformation. For example, Rehost, Replatform, and so on.

*/ inline StrategyOption& WithStrategy(Strategy&& value) { SetStrategy(std::move(value)); return *this;} /** *

Destination information about where the application component can migrate * to. For example, EC2, ECS, and so on.

*/ inline const TargetDestination& GetTargetDestination() const{ return m_targetDestination; } /** *

Destination information about where the application component can migrate * to. For example, EC2, ECS, and so on.

*/ inline bool TargetDestinationHasBeenSet() const { return m_targetDestinationHasBeenSet; } /** *

Destination information about where the application component can migrate * to. For example, EC2, ECS, and so on.

*/ inline void SetTargetDestination(const TargetDestination& value) { m_targetDestinationHasBeenSet = true; m_targetDestination = value; } /** *

Destination information about where the application component can migrate * to. For example, EC2, ECS, and so on.

*/ inline void SetTargetDestination(TargetDestination&& value) { m_targetDestinationHasBeenSet = true; m_targetDestination = std::move(value); } /** *

Destination information about where the application component can migrate * to. For example, EC2, ECS, and so on.

*/ inline StrategyOption& WithTargetDestination(const TargetDestination& value) { SetTargetDestination(value); return *this;} /** *

Destination information about where the application component can migrate * to. For example, EC2, ECS, and so on.

*/ inline StrategyOption& WithTargetDestination(TargetDestination&& value) { SetTargetDestination(std::move(value)); return *this;} /** *

The name of the tool that can be used to transform an application component * using this strategy.

*/ inline const TransformationToolName& GetToolName() const{ return m_toolName; } /** *

The name of the tool that can be used to transform an application component * using this strategy.

*/ inline bool ToolNameHasBeenSet() const { return m_toolNameHasBeenSet; } /** *

The name of the tool that can be used to transform an application component * using this strategy.

*/ inline void SetToolName(const TransformationToolName& value) { m_toolNameHasBeenSet = true; m_toolName = value; } /** *

The name of the tool that can be used to transform an application component * using this strategy.

*/ inline void SetToolName(TransformationToolName&& value) { m_toolNameHasBeenSet = true; m_toolName = std::move(value); } /** *

The name of the tool that can be used to transform an application component * using this strategy.

*/ inline StrategyOption& WithToolName(const TransformationToolName& value) { SetToolName(value); return *this;} /** *

The name of the tool that can be used to transform an application component * using this strategy.

*/ inline StrategyOption& WithToolName(TransformationToolName&& value) { SetToolName(std::move(value)); return *this;} private: bool m_isPreferred; bool m_isPreferredHasBeenSet = false; Strategy m_strategy; bool m_strategyHasBeenSet = false; TargetDestination m_targetDestination; bool m_targetDestinationHasBeenSet = false; TransformationToolName m_toolName; bool m_toolNameHasBeenSet = false; }; } // namespace Model } // namespace MigrationHubStrategyRecommendations } // namespace Aws