/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Describes the next action that the bot should take in its interaction with
* the user and provides information about the context in which the action takes
* place. Use the DialogAction
data type to set the interaction to a
* specific state, or to return the interaction to a previous state.See
* Also:
AWS
* API Reference
The next action that the bot should take in its interaction with the user. * The possible values are:
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?"
* Close
- Indicates that the there will not be a response from the
* user. For example, the statement "Your order has been placed" does not require a
* response.
Delegate
- The next action is
* determined by Amazon Lex.
ElicitIntent
- The
* next action is to determine the intent that the user wants to fulfill.
ElicitSlot
- The next action is to elicit a slot value
* from the user.
The next action that the bot should take in its interaction with the user. * The possible values are:
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?"
* Close
- Indicates that the there will not be a response from the
* user. For example, the statement "Your order has been placed" does not require a
* response.
Delegate
- The next action is
* determined by Amazon Lex.
ElicitIntent
- The
* next action is to determine the intent that the user wants to fulfill.
ElicitSlot
- The next action is to elicit a slot value
* from the user.
The next action that the bot should take in its interaction with the user. * The possible values are:
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?"
* Close
- Indicates that the there will not be a response from the
* user. For example, the statement "Your order has been placed" does not require a
* response.
Delegate
- The next action is
* determined by Amazon Lex.
ElicitIntent
- The
* next action is to determine the intent that the user wants to fulfill.
ElicitSlot
- The next action is to elicit a slot value
* from the user.
The next action that the bot should take in its interaction with the user. * The possible values are:
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?"
* Close
- Indicates that the there will not be a response from the
* user. For example, the statement "Your order has been placed" does not require a
* response.
Delegate
- The next action is
* determined by Amazon Lex.
ElicitIntent
- The
* next action is to determine the intent that the user wants to fulfill.
ElicitSlot
- The next action is to elicit a slot value
* from the user.
The next action that the bot should take in its interaction with the user. * The possible values are:
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?"
* Close
- Indicates that the there will not be a response from the
* user. For example, the statement "Your order has been placed" does not require a
* response.
Delegate
- The next action is
* determined by Amazon Lex.
ElicitIntent
- The
* next action is to determine the intent that the user wants to fulfill.
ElicitSlot
- The next action is to elicit a slot value
* from the user.
The next action that the bot should take in its interaction with the user. * The possible values are:
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?"
* Close
- Indicates that the there will not be a response from the
* user. For example, the statement "Your order has been placed" does not require a
* response.
Delegate
- The next action is
* determined by Amazon Lex.
ElicitIntent
- The
* next action is to determine the intent that the user wants to fulfill.
ElicitSlot
- The next action is to elicit a slot value
* from the user.
The name of the intent.
*/ inline const Aws::String& GetIntentName() const{ return m_intentName; } /** *The name of the intent.
*/ inline bool IntentNameHasBeenSet() const { return m_intentNameHasBeenSet; } /** *The name of the intent.
*/ inline void SetIntentName(const Aws::String& value) { m_intentNameHasBeenSet = true; m_intentName = value; } /** *The name of the intent.
*/ inline void SetIntentName(Aws::String&& value) { m_intentNameHasBeenSet = true; m_intentName = std::move(value); } /** *The name of the intent.
*/ inline void SetIntentName(const char* value) { m_intentNameHasBeenSet = true; m_intentName.assign(value); } /** *The name of the intent.
*/ inline DialogAction& WithIntentName(const Aws::String& value) { SetIntentName(value); return *this;} /** *The name of the intent.
*/ inline DialogAction& WithIntentName(Aws::String&& value) { SetIntentName(std::move(value)); return *this;} /** *The name of the intent.
*/ inline DialogAction& WithIntentName(const char* value) { SetIntentName(value); return *this;} /** *Map of the slots that have been gathered and their values.
*/ inline const Aws::MapMap of the slots that have been gathered and their values.
*/ inline bool SlotsHasBeenSet() const { return m_slotsHasBeenSet; } /** *Map of the slots that have been gathered and their values.
*/ inline void SetSlots(const Aws::MapMap of the slots that have been gathered and their values.
*/ inline void SetSlots(Aws::MapMap of the slots that have been gathered and their values.
*/ inline DialogAction& WithSlots(const Aws::MapMap of the slots that have been gathered and their values.
*/ inline DialogAction& WithSlots(Aws::MapMap of the slots that have been gathered and their values.
*/ inline DialogAction& AddSlots(const Aws::String& key, const Aws::String& value) { m_slotsHasBeenSet = true; m_slots.emplace(key, value); return *this; } /** *Map of the slots that have been gathered and their values.
*/ inline DialogAction& AddSlots(Aws::String&& key, const Aws::String& value) { m_slotsHasBeenSet = true; m_slots.emplace(std::move(key), value); return *this; } /** *Map of the slots that have been gathered and their values.
*/ inline DialogAction& AddSlots(const Aws::String& key, Aws::String&& value) { m_slotsHasBeenSet = true; m_slots.emplace(key, std::move(value)); return *this; } /** *Map of the slots that have been gathered and their values.
*/ inline DialogAction& AddSlots(Aws::String&& key, Aws::String&& value) { m_slotsHasBeenSet = true; m_slots.emplace(std::move(key), std::move(value)); return *this; } /** *Map of the slots that have been gathered and their values.
*/ inline DialogAction& AddSlots(const char* key, Aws::String&& value) { m_slotsHasBeenSet = true; m_slots.emplace(key, std::move(value)); return *this; } /** *Map of the slots that have been gathered and their values.
*/ inline DialogAction& AddSlots(Aws::String&& key, const char* value) { m_slotsHasBeenSet = true; m_slots.emplace(std::move(key), value); return *this; } /** *Map of the slots that have been gathered and their values.
*/ inline DialogAction& AddSlots(const char* key, const char* value) { m_slotsHasBeenSet = true; m_slots.emplace(key, 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;} /** *The fulfillment state of the intent. The possible values are:
Failed
- The Lambda function associated with the intent failed
* to fulfill the intent.
Fulfilled
- The intent
* has fulfilled by the Lambda function associated with the intent.
ReadyForFulfillment
- All of the information necessary for the
* intent is present and the intent ready to be fulfilled by the client
* application.
The fulfillment state of the intent. The possible values are:
Failed
- The Lambda function associated with the intent failed
* to fulfill the intent.
Fulfilled
- The intent
* has fulfilled by the Lambda function associated with the intent.
ReadyForFulfillment
- All of the information necessary for the
* intent is present and the intent ready to be fulfilled by the client
* application.
The fulfillment state of the intent. The possible values are:
Failed
- The Lambda function associated with the intent failed
* to fulfill the intent.
Fulfilled
- The intent
* has fulfilled by the Lambda function associated with the intent.
ReadyForFulfillment
- All of the information necessary for the
* intent is present and the intent ready to be fulfilled by the client
* application.
The fulfillment state of the intent. The possible values are:
Failed
- The Lambda function associated with the intent failed
* to fulfill the intent.
Fulfilled
- The intent
* has fulfilled by the Lambda function associated with the intent.
ReadyForFulfillment
- All of the information necessary for the
* intent is present and the intent ready to be fulfilled by the client
* application.
The fulfillment state of the intent. The possible values are:
Failed
- The Lambda function associated with the intent failed
* to fulfill the intent.
Fulfilled
- The intent
* has fulfilled by the Lambda function associated with the intent.
ReadyForFulfillment
- All of the information necessary for the
* intent is present and the intent ready to be fulfilled by the client
* application.
The fulfillment state of the intent. The possible values are:
Failed
- The Lambda function associated with the intent failed
* to fulfill the intent.
Fulfilled
- The intent
* has fulfilled by the Lambda function associated with the intent.
ReadyForFulfillment
- All of the information necessary for the
* intent is present and the intent ready to be fulfilled by the client
* application.
The message that should be shown to the user. If you don't specify a message, * Amazon Lex will use the message configured for the intent.
*/ inline const Aws::String& GetMessage() const{ return m_message; } /** *The message that should be shown to the user. If you don't specify a message, * Amazon Lex will use the message configured for the intent.
*/ inline bool MessageHasBeenSet() const { return m_messageHasBeenSet; } /** *The message that should be shown to the user. If you don't specify a message, * Amazon Lex will use the message configured for the intent.
*/ inline void SetMessage(const Aws::String& value) { m_messageHasBeenSet = true; m_message = value; } /** *The message that should be shown to the user. If you don't specify a message, * Amazon Lex will use the message configured for the intent.
*/ inline void SetMessage(Aws::String&& value) { m_messageHasBeenSet = true; m_message = std::move(value); } /** *The message that should be shown to the user. If you don't specify a message, * Amazon Lex will use the message configured for the intent.
*/ inline void SetMessage(const char* value) { m_messageHasBeenSet = true; m_message.assign(value); } /** *The message that should be shown to the user. If you don't specify a message, * Amazon Lex will use the message configured for the intent.
*/ inline DialogAction& WithMessage(const Aws::String& value) { SetMessage(value); return *this;} /** *The message that should be shown to the user. If you don't specify a message, * Amazon Lex will use the message configured for the intent.
*/ inline DialogAction& WithMessage(Aws::String&& value) { SetMessage(std::move(value)); return *this;} /** *The message that should be shown to the user. If you don't specify a message, * Amazon Lex will use the message configured for the intent.
*/ inline DialogAction& WithMessage(const char* value) { SetMessage(value); return *this;} /** * PlainText
- The message contains plain UTF-8
* text.
CustomPayload
- The message is a custom
* format for the client.
SSML
- The message
* contains text formatted for voice output.
* Composite
- The message contains an escaped JSON object containing
* one or more messages. For more information, see Message
* Groups.
PlainText
- The message contains plain UTF-8
* text.
CustomPayload
- The message is a custom
* format for the client.
SSML
- The message
* contains text formatted for voice output.
* Composite
- The message contains an escaped JSON object containing
* one or more messages. For more information, see Message
* Groups.
PlainText
- The message contains plain UTF-8
* text.
CustomPayload
- The message is a custom
* format for the client.
SSML
- The message
* contains text formatted for voice output.
* Composite
- The message contains an escaped JSON object containing
* one or more messages. For more information, see Message
* Groups.
PlainText
- The message contains plain UTF-8
* text.
CustomPayload
- The message is a custom
* format for the client.
SSML
- The message
* contains text formatted for voice output.
* Composite
- The message contains an escaped JSON object containing
* one or more messages. For more information, see Message
* Groups.
PlainText
- The message contains plain UTF-8
* text.
CustomPayload
- The message is a custom
* format for the client.
SSML
- The message
* contains text formatted for voice output.
* Composite
- The message contains an escaped JSON object containing
* one or more messages. For more information, see Message
* Groups.
PlainText
- The message contains plain UTF-8
* text.
CustomPayload
- The message is a custom
* format for the client.
SSML
- The message
* contains text formatted for voice output.
* Composite
- The message contains an escaped JSON object containing
* one or more messages. For more information, see Message
* Groups.