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

Specifications for the constituent sub slots and the expression for the * composite slot.

See Also:

AWS * API Reference

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

The expression text for defining the constituent sub slots in the composite * slot using logical AND and OR operators.

*/ inline const Aws::String& GetExpression() const{ return m_expression; } /** *

The expression text for defining the constituent sub slots in the composite * slot using logical AND and OR operators.

*/ inline bool ExpressionHasBeenSet() const { return m_expressionHasBeenSet; } /** *

The expression text for defining the constituent sub slots in the composite * slot using logical AND and OR operators.

*/ inline void SetExpression(const Aws::String& value) { m_expressionHasBeenSet = true; m_expression = value; } /** *

The expression text for defining the constituent sub slots in the composite * slot using logical AND and OR operators.

*/ inline void SetExpression(Aws::String&& value) { m_expressionHasBeenSet = true; m_expression = std::move(value); } /** *

The expression text for defining the constituent sub slots in the composite * slot using logical AND and OR operators.

*/ inline void SetExpression(const char* value) { m_expressionHasBeenSet = true; m_expression.assign(value); } /** *

The expression text for defining the constituent sub slots in the composite * slot using logical AND and OR operators.

*/ inline SubSlotSetting& WithExpression(const Aws::String& value) { SetExpression(value); return *this;} /** *

The expression text for defining the constituent sub slots in the composite * slot using logical AND and OR operators.

*/ inline SubSlotSetting& WithExpression(Aws::String&& value) { SetExpression(std::move(value)); return *this;} /** *

The expression text for defining the constituent sub slots in the composite * slot using logical AND and OR operators.

*/ inline SubSlotSetting& WithExpression(const char* value) { SetExpression(value); return *this;} /** *

Specifications for the constituent sub slots of a composite slot.

*/ inline const Aws::Map& GetSlotSpecifications() const{ return m_slotSpecifications; } /** *

Specifications for the constituent sub slots of a composite slot.

*/ inline bool SlotSpecificationsHasBeenSet() const { return m_slotSpecificationsHasBeenSet; } /** *

Specifications for the constituent sub slots of a composite slot.

*/ inline void SetSlotSpecifications(const Aws::Map& value) { m_slotSpecificationsHasBeenSet = true; m_slotSpecifications = value; } /** *

Specifications for the constituent sub slots of a composite slot.

*/ inline void SetSlotSpecifications(Aws::Map&& value) { m_slotSpecificationsHasBeenSet = true; m_slotSpecifications = std::move(value); } /** *

Specifications for the constituent sub slots of a composite slot.

*/ inline SubSlotSetting& WithSlotSpecifications(const Aws::Map& value) { SetSlotSpecifications(value); return *this;} /** *

Specifications for the constituent sub slots of a composite slot.

*/ inline SubSlotSetting& WithSlotSpecifications(Aws::Map&& value) { SetSlotSpecifications(std::move(value)); return *this;} /** *

Specifications for the constituent sub slots of a composite slot.

*/ inline SubSlotSetting& AddSlotSpecifications(const Aws::String& key, const Specifications& value) { m_slotSpecificationsHasBeenSet = true; m_slotSpecifications.emplace(key, value); return *this; } /** *

Specifications for the constituent sub slots of a composite slot.

*/ inline SubSlotSetting& AddSlotSpecifications(Aws::String&& key, const Specifications& value) { m_slotSpecificationsHasBeenSet = true; m_slotSpecifications.emplace(std::move(key), value); return *this; } /** *

Specifications for the constituent sub slots of a composite slot.

*/ inline SubSlotSetting& AddSlotSpecifications(const Aws::String& key, Specifications&& value) { m_slotSpecificationsHasBeenSet = true; m_slotSpecifications.emplace(key, std::move(value)); return *this; } /** *

Specifications for the constituent sub slots of a composite slot.

*/ inline SubSlotSetting& AddSlotSpecifications(Aws::String&& key, Specifications&& value) { m_slotSpecificationsHasBeenSet = true; m_slotSpecifications.emplace(std::move(key), std::move(value)); return *this; } /** *

Specifications for the constituent sub slots of a composite slot.

*/ inline SubSlotSetting& AddSlotSpecifications(const char* key, Specifications&& value) { m_slotSpecificationsHasBeenSet = true; m_slotSpecifications.emplace(key, std::move(value)); return *this; } /** *

Specifications for the constituent sub slots of a composite slot.

*/ inline SubSlotSetting& AddSlotSpecifications(const char* key, const Specifications& value) { m_slotSpecificationsHasBeenSet = true; m_slotSpecifications.emplace(key, value); return *this; } private: Aws::String m_expression; bool m_expressionHasBeenSet = false; Aws::Map m_slotSpecifications; bool m_slotSpecificationsHasBeenSet = false; }; } // namespace Model } // namespace LexModelsV2 } // namespace Aws