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

Provides information about the state of an intent. You can use this * information to get the current state of an intent so that you can process the * intent, or so that you can return the intent to its previous * state.

See Also:

AWS * API Reference

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

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 IntentSummary& WithIntentName(const Aws::String& value) { SetIntentName(value); return *this;} /** *

The name of the intent.

*/ inline IntentSummary& WithIntentName(Aws::String&& value) { SetIntentName(std::move(value)); return *this;} /** *

The name of the intent.

*/ inline IntentSummary& WithIntentName(const char* value) { SetIntentName(value); return *this;} /** *

A user-defined label that identifies a particular intent. You can use this * label to return to a previous intent.

Use the * checkpointLabelFilter parameter of the * GetSessionRequest operation to filter the intents returned by the * operation to those with only the specified label.

*/ inline const Aws::String& GetCheckpointLabel() const{ return m_checkpointLabel; } /** *

A user-defined label that identifies a particular intent. You can use this * label to return to a previous intent.

Use the * checkpointLabelFilter parameter of the * GetSessionRequest operation to filter the intents returned by the * operation to those with only the specified label.

*/ inline bool CheckpointLabelHasBeenSet() const { return m_checkpointLabelHasBeenSet; } /** *

A user-defined label that identifies a particular intent. You can use this * label to return to a previous intent.

Use the * checkpointLabelFilter parameter of the * GetSessionRequest operation to filter the intents returned by the * operation to those with only the specified label.

*/ inline void SetCheckpointLabel(const Aws::String& value) { m_checkpointLabelHasBeenSet = true; m_checkpointLabel = value; } /** *

A user-defined label that identifies a particular intent. You can use this * label to return to a previous intent.

Use the * checkpointLabelFilter parameter of the * GetSessionRequest operation to filter the intents returned by the * operation to those with only the specified label.

*/ inline void SetCheckpointLabel(Aws::String&& value) { m_checkpointLabelHasBeenSet = true; m_checkpointLabel = std::move(value); } /** *

A user-defined label that identifies a particular intent. You can use this * label to return to a previous intent.

Use the * checkpointLabelFilter parameter of the * GetSessionRequest operation to filter the intents returned by the * operation to those with only the specified label.

*/ inline void SetCheckpointLabel(const char* value) { m_checkpointLabelHasBeenSet = true; m_checkpointLabel.assign(value); } /** *

A user-defined label that identifies a particular intent. You can use this * label to return to a previous intent.

Use the * checkpointLabelFilter parameter of the * GetSessionRequest operation to filter the intents returned by the * operation to those with only the specified label.

*/ inline IntentSummary& WithCheckpointLabel(const Aws::String& value) { SetCheckpointLabel(value); return *this;} /** *

A user-defined label that identifies a particular intent. You can use this * label to return to a previous intent.

Use the * checkpointLabelFilter parameter of the * GetSessionRequest operation to filter the intents returned by the * operation to those with only the specified label.

*/ inline IntentSummary& WithCheckpointLabel(Aws::String&& value) { SetCheckpointLabel(std::move(value)); return *this;} /** *

A user-defined label that identifies a particular intent. You can use this * label to return to a previous intent.

Use the * checkpointLabelFilter parameter of the * GetSessionRequest operation to filter the intents returned by the * operation to those with only the specified label.

*/ inline IntentSummary& WithCheckpointLabel(const char* value) { SetCheckpointLabel(value); return *this;} /** *

Map of the slots that have been gathered and their values.

*/ inline const Aws::Map& GetSlots() const{ return m_slots; } /** *

Map 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::Map& value) { m_slotsHasBeenSet = true; m_slots = value; } /** *

Map of the slots that have been gathered and their values.

*/ inline void SetSlots(Aws::Map&& value) { m_slotsHasBeenSet = true; m_slots = std::move(value); } /** *

Map of the slots that have been gathered and their values.

*/ inline IntentSummary& WithSlots(const Aws::Map& value) { SetSlots(value); return *this;} /** *

Map of the slots that have been gathered and their values.

*/ inline IntentSummary& WithSlots(Aws::Map&& value) { SetSlots(std::move(value)); return *this;} /** *

Map of the slots that have been gathered and their values.

*/ inline IntentSummary& 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 IntentSummary& 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 IntentSummary& 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 IntentSummary& 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 IntentSummary& 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 IntentSummary& 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 IntentSummary& AddSlots(const char* key, const char* value) { m_slotsHasBeenSet = true; m_slots.emplace(key, value); return *this; } /** *

The status of the intent after the user responds to the confirmation prompt. * If the user confirms the intent, Amazon Lex sets this field to * Confirmed. If the user denies the intent, Amazon Lex sets this * value to Denied. The possible values are:

  • * Confirmed - The user has responded "Yes" to the confirmation * prompt, confirming that the intent is complete and that it is ready to be * fulfilled.

  • Denied - The user has responded "No" * to the confirmation prompt.

  • None - The user has * never been prompted for confirmation; or, the user was prompted but did not * confirm or deny the prompt.

*/ inline const ConfirmationStatus& GetConfirmationStatus() const{ return m_confirmationStatus; } /** *

The status of the intent after the user responds to the confirmation prompt. * If the user confirms the intent, Amazon Lex sets this field to * Confirmed. If the user denies the intent, Amazon Lex sets this * value to Denied. The possible values are:

  • * Confirmed - The user has responded "Yes" to the confirmation * prompt, confirming that the intent is complete and that it is ready to be * fulfilled.

  • Denied - The user has responded "No" * to the confirmation prompt.

  • None - The user has * never been prompted for confirmation; or, the user was prompted but did not * confirm or deny the prompt.

*/ inline bool ConfirmationStatusHasBeenSet() const { return m_confirmationStatusHasBeenSet; } /** *

The status of the intent after the user responds to the confirmation prompt. * If the user confirms the intent, Amazon Lex sets this field to * Confirmed. If the user denies the intent, Amazon Lex sets this * value to Denied. The possible values are:

  • * Confirmed - The user has responded "Yes" to the confirmation * prompt, confirming that the intent is complete and that it is ready to be * fulfilled.

  • Denied - The user has responded "No" * to the confirmation prompt.

  • None - The user has * never been prompted for confirmation; or, the user was prompted but did not * confirm or deny the prompt.

*/ inline void SetConfirmationStatus(const ConfirmationStatus& value) { m_confirmationStatusHasBeenSet = true; m_confirmationStatus = value; } /** *

The status of the intent after the user responds to the confirmation prompt. * If the user confirms the intent, Amazon Lex sets this field to * Confirmed. If the user denies the intent, Amazon Lex sets this * value to Denied. The possible values are:

  • * Confirmed - The user has responded "Yes" to the confirmation * prompt, confirming that the intent is complete and that it is ready to be * fulfilled.

  • Denied - The user has responded "No" * to the confirmation prompt.

  • None - The user has * never been prompted for confirmation; or, the user was prompted but did not * confirm or deny the prompt.

*/ inline void SetConfirmationStatus(ConfirmationStatus&& value) { m_confirmationStatusHasBeenSet = true; m_confirmationStatus = std::move(value); } /** *

The status of the intent after the user responds to the confirmation prompt. * If the user confirms the intent, Amazon Lex sets this field to * Confirmed. If the user denies the intent, Amazon Lex sets this * value to Denied. The possible values are:

  • * Confirmed - The user has responded "Yes" to the confirmation * prompt, confirming that the intent is complete and that it is ready to be * fulfilled.

  • Denied - The user has responded "No" * to the confirmation prompt.

  • None - The user has * never been prompted for confirmation; or, the user was prompted but did not * confirm or deny the prompt.

*/ inline IntentSummary& WithConfirmationStatus(const ConfirmationStatus& value) { SetConfirmationStatus(value); return *this;} /** *

The status of the intent after the user responds to the confirmation prompt. * If the user confirms the intent, Amazon Lex sets this field to * Confirmed. If the user denies the intent, Amazon Lex sets this * value to Denied. The possible values are:

  • * Confirmed - The user has responded "Yes" to the confirmation * prompt, confirming that the intent is complete and that it is ready to be * fulfilled.

  • Denied - The user has responded "No" * to the confirmation prompt.

  • None - The user has * never been prompted for confirmation; or, the user was prompted but did not * confirm or deny the prompt.

*/ inline IntentSummary& WithConfirmationStatus(ConfirmationStatus&& value) { SetConfirmationStatus(std::move(value)); return *this;} /** *

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.

  • 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.

*/ inline const DialogActionType& GetDialogActionType() const{ return m_dialogActionType; } /** *

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.

  • 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.

*/ inline bool DialogActionTypeHasBeenSet() const { return m_dialogActionTypeHasBeenSet; } /** *

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.

  • 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.

*/ inline void SetDialogActionType(const DialogActionType& value) { m_dialogActionTypeHasBeenSet = true; m_dialogActionType = value; } /** *

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.

  • 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.

*/ inline void SetDialogActionType(DialogActionType&& value) { m_dialogActionTypeHasBeenSet = true; m_dialogActionType = std::move(value); } /** *

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.

  • 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.

*/ inline IntentSummary& WithDialogActionType(const DialogActionType& value) { SetDialogActionType(value); return *this;} /** *

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.

  • 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.

*/ inline IntentSummary& WithDialogActionType(DialogActionType&& value) { SetDialogActionType(std::move(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.

*/ inline const FulfillmentState& GetFulfillmentState() const{ return m_fulfillmentState; } /** *

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.

*/ inline bool FulfillmentStateHasBeenSet() const { return m_fulfillmentStateHasBeenSet; } /** *

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.

*/ inline void SetFulfillmentState(const FulfillmentState& value) { m_fulfillmentStateHasBeenSet = true; m_fulfillmentState = value; } /** *

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.

*/ inline void SetFulfillmentState(FulfillmentState&& value) { m_fulfillmentStateHasBeenSet = true; m_fulfillmentState = std::move(value); } /** *

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.

*/ inline IntentSummary& WithFulfillmentState(const FulfillmentState& value) { SetFulfillmentState(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.

*/ inline IntentSummary& WithFulfillmentState(FulfillmentState&& value) { SetFulfillmentState(std::move(value)); return *this;} /** *

The next slot to elicit from the user. If there is not slot to elicit, the * field is blank.

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

The next slot to elicit from the user. If there is not slot to elicit, the * field is blank.

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

The next slot to elicit from the user. If there is not slot to elicit, the * field is blank.

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

The next slot to elicit from the user. If there is not slot to elicit, the * field is blank.

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

The next slot to elicit from the user. If there is not slot to elicit, the * field is blank.

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

The next slot to elicit from the user. If there is not slot to elicit, the * field is blank.

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

The next slot to elicit from the user. If there is not slot to elicit, the * field is blank.

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

The next slot to elicit from the user. If there is not slot to elicit, the * field is blank.

*/ inline IntentSummary& WithSlotToElicit(const char* value) { SetSlotToElicit(value); return *this;} private: Aws::String m_intentName; bool m_intentNameHasBeenSet = false; Aws::String m_checkpointLabel; bool m_checkpointLabelHasBeenSet = false; Aws::Map m_slots; bool m_slotsHasBeenSet = false; ConfirmationStatus m_confirmationStatus; bool m_confirmationStatusHasBeenSet = false; DialogActionType m_dialogActionType; bool m_dialogActionTypeHasBeenSet = false; FulfillmentState m_fulfillmentState; bool m_fulfillmentStateHasBeenSet = false; Aws::String m_slotToElicit; bool m_slotToElicitHasBeenSet = false; }; } // namespace Model } // namespace LexRuntimeService } // namespace Aws