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

The next action that Amazon Lex V2 should take.

See Also:

AWS * API Reference

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

The next action that the bot should take in its interaction with the user. * The possible values are:

  • Close - Indicates that * there will not be a response from the user. For example, the statement "Your * order has been placed" does not require a response.

  • * ConfirmIntent - The next action is asking the user if the intent is * complete and ready to be fulfilled. This is a yes/no question such as "Place the * order?"

  • Delegate - The next action is determined * by Amazon Lex V2.

  • ElicitIntent - The next action * is to elicit an intent from the user.

  • ElicitSlot * - The next action is to elicit a slot value from the user.

*/ inline const DialogActionType& GetType() const{ return m_type; } /** *

The next action that the bot should take in its interaction with the user. * The possible values are:

  • Close - Indicates that * there will not be a response from the user. For example, the statement "Your * order has been placed" does not require a response.

  • * ConfirmIntent - The next action is asking the user if the intent is * complete and ready to be fulfilled. This is a yes/no question such as "Place the * order?"

  • Delegate - The next action is determined * by Amazon Lex V2.

  • ElicitIntent - The next action * is to elicit an intent from the user.

  • ElicitSlot * - The next action is to elicit a slot value from the user.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

The next action that the bot should take in its interaction with the user. * The possible values are:

  • Close - Indicates that * there will not be a response from the user. For example, the statement "Your * order has been placed" does not require a response.

  • * ConfirmIntent - The next action is asking the user if the intent is * complete and ready to be fulfilled. This is a yes/no question such as "Place the * order?"

  • Delegate - The next action is determined * by Amazon Lex V2.

  • ElicitIntent - The next action * is to elicit an intent from the user.

  • ElicitSlot * - The next action is to elicit a slot value from the user.

*/ inline void SetType(const DialogActionType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

The next action that the bot should take in its interaction with the user. * The possible values are:

  • Close - Indicates that * there will not be a response from the user. For example, the statement "Your * order has been placed" does not require a response.

  • * ConfirmIntent - The next action is asking the user if the intent is * complete and ready to be fulfilled. This is a yes/no question such as "Place the * order?"

  • Delegate - The next action is determined * by Amazon Lex V2.

  • ElicitIntent - The next action * is to elicit an intent from the user.

  • ElicitSlot * - The next action is to elicit a slot value from the user.

*/ inline void SetType(DialogActionType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

The next action that the bot should take in its interaction with the user. * The possible values are:

  • Close - Indicates that * there will not be a response from the user. For example, the statement "Your * order has been placed" does not require a response.

  • * ConfirmIntent - The next action is asking the user if the intent is * complete and ready to be fulfilled. This is a yes/no question such as "Place the * order?"

  • Delegate - The next action is determined * by Amazon Lex V2.

  • ElicitIntent - The next action * is to elicit an intent from the user.

  • ElicitSlot * - The next action is to elicit a slot value from the user.

*/ inline DialogAction& WithType(const DialogActionType& value) { SetType(value); return *this;} /** *

The next action that the bot should take in its interaction with the user. * The possible values are:

  • Close - Indicates that * there will not be a response from the user. For example, the statement "Your * order has been placed" does not require a response.

  • * ConfirmIntent - The next action is asking the user if the intent is * complete and ready to be fulfilled. This is a yes/no question such as "Place the * order?"

  • Delegate - The next action is determined * by Amazon Lex V2.

  • ElicitIntent - The next action * is to elicit an intent from the user.

  • ElicitSlot * - The next action is to elicit a slot value from the user.

*/ inline DialogAction& WithType(DialogActionType&& value) { SetType(std::move(value)); return *this;} /** *

The name of the slot that should be elicited from the user.

*/ inline const Aws::String& GetSlotToElicit() const{ return m_slotToElicit; } /** *

The name of the slot that should be elicited from the user.

*/ inline bool SlotToElicitHasBeenSet() const { return m_slotToElicitHasBeenSet; } /** *

The name of the slot that should be elicited from the user.

*/ inline void SetSlotToElicit(const Aws::String& value) { m_slotToElicitHasBeenSet = true; m_slotToElicit = value; } /** *

The name of the slot that should be elicited from the user.

*/ inline void SetSlotToElicit(Aws::String&& value) { m_slotToElicitHasBeenSet = true; m_slotToElicit = std::move(value); } /** *

The name of the slot that should be elicited from the user.

*/ inline void SetSlotToElicit(const char* value) { m_slotToElicitHasBeenSet = true; m_slotToElicit.assign(value); } /** *

The name of the slot that should be elicited from the user.

*/ inline DialogAction& WithSlotToElicit(const Aws::String& value) { SetSlotToElicit(value); return *this;} /** *

The name of the slot that should be elicited from the user.

*/ inline DialogAction& WithSlotToElicit(Aws::String&& value) { SetSlotToElicit(std::move(value)); return *this;} /** *

The name of the slot that should be elicited from the user.

*/ inline DialogAction& WithSlotToElicit(const char* value) { SetSlotToElicit(value); return *this;} /** *

Configures the slot to use spell-by-letter or spell-by-word style. When you * use a style on a slot, users can spell out their input to make it clear to your * bot.

  • Spell by letter - "b" "o" "b"

  • Spell by * word - "b as in boy" "o as in oscar" "b as in boy"

For more * information, see Using * spelling to enter slot values .

*/ inline const StyleType& GetSlotElicitationStyle() const{ return m_slotElicitationStyle; } /** *

Configures the slot to use spell-by-letter or spell-by-word style. When you * use a style on a slot, users can spell out their input to make it clear to your * bot.

  • Spell by letter - "b" "o" "b"

  • Spell by * word - "b as in boy" "o as in oscar" "b as in boy"

For more * information, see Using * spelling to enter slot values .

*/ inline bool SlotElicitationStyleHasBeenSet() const { return m_slotElicitationStyleHasBeenSet; } /** *

Configures the slot to use spell-by-letter or spell-by-word style. When you * use a style on a slot, users can spell out their input to make it clear to your * bot.

  • Spell by letter - "b" "o" "b"

  • Spell by * word - "b as in boy" "o as in oscar" "b as in boy"

For more * information, see Using * spelling to enter slot values .

*/ inline void SetSlotElicitationStyle(const StyleType& value) { m_slotElicitationStyleHasBeenSet = true; m_slotElicitationStyle = value; } /** *

Configures the slot to use spell-by-letter or spell-by-word style. When you * use a style on a slot, users can spell out their input to make it clear to your * bot.

  • Spell by letter - "b" "o" "b"

  • Spell by * word - "b as in boy" "o as in oscar" "b as in boy"

For more * information, see Using * spelling to enter slot values .

*/ inline void SetSlotElicitationStyle(StyleType&& value) { m_slotElicitationStyleHasBeenSet = true; m_slotElicitationStyle = std::move(value); } /** *

Configures the slot to use spell-by-letter or spell-by-word style. When you * use a style on a slot, users can spell out their input to make it clear to your * bot.

  • Spell by letter - "b" "o" "b"

  • Spell by * word - "b as in boy" "o as in oscar" "b as in boy"

For more * information, see Using * spelling to enter slot values .

*/ inline DialogAction& WithSlotElicitationStyle(const StyleType& value) { SetSlotElicitationStyle(value); return *this;} /** *

Configures the slot to use spell-by-letter or spell-by-word style. When you * use a style on a slot, users can spell out their input to make it clear to your * bot.

  • Spell by letter - "b" "o" "b"

  • Spell by * word - "b as in boy" "o as in oscar" "b as in boy"

For more * information, see Using * spelling to enter slot values .

*/ inline DialogAction& WithSlotElicitationStyle(StyleType&& value) { SetSlotElicitationStyle(std::move(value)); return *this;} /** *

The name of the constituent sub slot of the composite slot specified in * slotToElicit that should be elicited from the user.

*/ inline const ElicitSubSlot& GetSubSlotToElicit() const{ return m_subSlotToElicit; } /** *

The name of the constituent sub slot of the composite slot specified in * slotToElicit that should be elicited from the user.

*/ inline bool SubSlotToElicitHasBeenSet() const { return m_subSlotToElicitHasBeenSet; } /** *

The name of the constituent sub slot of the composite slot specified in * slotToElicit that should be elicited from the user.

*/ inline void SetSubSlotToElicit(const ElicitSubSlot& value) { m_subSlotToElicitHasBeenSet = true; m_subSlotToElicit = value; } /** *

The name of the constituent sub slot of the composite slot specified in * slotToElicit that should be elicited from the user.

*/ inline void SetSubSlotToElicit(ElicitSubSlot&& value) { m_subSlotToElicitHasBeenSet = true; m_subSlotToElicit = std::move(value); } /** *

The name of the constituent sub slot of the composite slot specified in * slotToElicit that should be elicited from the user.

*/ inline DialogAction& WithSubSlotToElicit(const ElicitSubSlot& value) { SetSubSlotToElicit(value); return *this;} /** *

The name of the constituent sub slot of the composite slot specified in * slotToElicit that should be elicited from the user.

*/ inline DialogAction& WithSubSlotToElicit(ElicitSubSlot&& value) { SetSubSlotToElicit(std::move(value)); return *this;} private: DialogActionType m_type; bool m_typeHasBeenSet = false; Aws::String m_slotToElicit; bool m_slotToElicitHasBeenSet = false; StyleType m_slotElicitationStyle; bool m_slotElicitationStyleHasBeenSet = false; ElicitSubSlot m_subSlotToElicit; bool m_subSlotToElicitHasBeenSet = false; }; } // namespace Model } // namespace LexRuntimeV2 } // namespace Aws