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

Describes a route in a route table.

See Also:

AWS API * Reference

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

The type of destination for the route.

*/ inline const DestinationType& GetDestinationType() const{ return m_destinationType; } /** *

The type of destination for the route.

*/ inline bool DestinationTypeHasBeenSet() const { return m_destinationTypeHasBeenSet; } /** *

The type of destination for the route.

*/ inline void SetDestinationType(const DestinationType& value) { m_destinationTypeHasBeenSet = true; m_destinationType = value; } /** *

The type of destination for the route.

*/ inline void SetDestinationType(DestinationType&& value) { m_destinationTypeHasBeenSet = true; m_destinationType = std::move(value); } /** *

The type of destination for the route.

*/ inline Route& WithDestinationType(const DestinationType& value) { SetDestinationType(value); return *this;} /** *

The type of destination for the route.

*/ inline Route& WithDestinationType(DestinationType&& value) { SetDestinationType(std::move(value)); return *this;} /** *

The type of target for the route.

*/ inline const TargetType& GetTargetType() const{ return m_targetType; } /** *

The type of target for the route.

*/ inline bool TargetTypeHasBeenSet() const { return m_targetTypeHasBeenSet; } /** *

The type of target for the route.

*/ inline void SetTargetType(const TargetType& value) { m_targetTypeHasBeenSet = true; m_targetType = value; } /** *

The type of target for the route.

*/ inline void SetTargetType(TargetType&& value) { m_targetTypeHasBeenSet = true; m_targetType = std::move(value); } /** *

The type of target for the route.

*/ inline Route& WithTargetType(const TargetType& value) { SetTargetType(value); return *this;} /** *

The type of target for the route.

*/ inline Route& WithTargetType(TargetType&& value) { SetTargetType(std::move(value)); return *this;} /** *

The destination of the route.

*/ inline const Aws::String& GetDestination() const{ return m_destination; } /** *

The destination of the route.

*/ inline bool DestinationHasBeenSet() const { return m_destinationHasBeenSet; } /** *

The destination of the route.

*/ inline void SetDestination(const Aws::String& value) { m_destinationHasBeenSet = true; m_destination = value; } /** *

The destination of the route.

*/ inline void SetDestination(Aws::String&& value) { m_destinationHasBeenSet = true; m_destination = std::move(value); } /** *

The destination of the route.

*/ inline void SetDestination(const char* value) { m_destinationHasBeenSet = true; m_destination.assign(value); } /** *

The destination of the route.

*/ inline Route& WithDestination(const Aws::String& value) { SetDestination(value); return *this;} /** *

The destination of the route.

*/ inline Route& WithDestination(Aws::String&& value) { SetDestination(std::move(value)); return *this;} /** *

The destination of the route.

*/ inline Route& WithDestination(const char* value) { SetDestination(value); return *this;} /** *

The route's target.

*/ inline const Aws::String& GetTarget() const{ return m_target; } /** *

The route's target.

*/ inline bool TargetHasBeenSet() const { return m_targetHasBeenSet; } /** *

The route's target.

*/ inline void SetTarget(const Aws::String& value) { m_targetHasBeenSet = true; m_target = value; } /** *

The route's target.

*/ inline void SetTarget(Aws::String&& value) { m_targetHasBeenSet = true; m_target = std::move(value); } /** *

The route's target.

*/ inline void SetTarget(const char* value) { m_targetHasBeenSet = true; m_target.assign(value); } /** *

The route's target.

*/ inline Route& WithTarget(const Aws::String& value) { SetTarget(value); return *this;} /** *

The route's target.

*/ inline Route& WithTarget(Aws::String&& value) { SetTarget(std::move(value)); return *this;} /** *

The route's target.

*/ inline Route& WithTarget(const char* value) { SetTarget(value); return *this;} private: DestinationType m_destinationType; bool m_destinationTypeHasBeenSet = false; TargetType m_targetType; bool m_targetTypeHasBeenSet = false; Aws::String m_destination; bool m_destinationHasBeenSet = false; Aws::String m_target; bool m_targetHasBeenSet = false; }; } // namespace Model } // namespace FMS } // namespace Aws