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

Defines the messages that Amazon Lex sends to a user to remind them that the * bot is waiting for a response.

See Also:

AWS * API Reference

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

One or more message groups, each containing one or more messages, that define * the prompts that Amazon Lex sends to the user.

*/ inline const Aws::Vector& GetMessageGroups() const{ return m_messageGroups; } /** *

One or more message groups, each containing one or more messages, that define * the prompts that Amazon Lex sends to the user.

*/ inline bool MessageGroupsHasBeenSet() const { return m_messageGroupsHasBeenSet; } /** *

One or more message groups, each containing one or more messages, that define * the prompts that Amazon Lex sends to the user.

*/ inline void SetMessageGroups(const Aws::Vector& value) { m_messageGroupsHasBeenSet = true; m_messageGroups = value; } /** *

One or more message groups, each containing one or more messages, that define * the prompts that Amazon Lex sends to the user.

*/ inline void SetMessageGroups(Aws::Vector&& value) { m_messageGroupsHasBeenSet = true; m_messageGroups = std::move(value); } /** *

One or more message groups, each containing one or more messages, that define * the prompts that Amazon Lex sends to the user.

*/ inline StillWaitingResponseSpecification& WithMessageGroups(const Aws::Vector& value) { SetMessageGroups(value); return *this;} /** *

One or more message groups, each containing one or more messages, that define * the prompts that Amazon Lex sends to the user.

*/ inline StillWaitingResponseSpecification& WithMessageGroups(Aws::Vector&& value) { SetMessageGroups(std::move(value)); return *this;} /** *

One or more message groups, each containing one or more messages, that define * the prompts that Amazon Lex sends to the user.

*/ inline StillWaitingResponseSpecification& AddMessageGroups(const MessageGroup& value) { m_messageGroupsHasBeenSet = true; m_messageGroups.push_back(value); return *this; } /** *

One or more message groups, each containing one or more messages, that define * the prompts that Amazon Lex sends to the user.

*/ inline StillWaitingResponseSpecification& AddMessageGroups(MessageGroup&& value) { m_messageGroupsHasBeenSet = true; m_messageGroups.push_back(std::move(value)); return *this; } /** *

How often a message should be sent to the user. Minimum of 1 second, maximum * of 5 minutes.

*/ inline int GetFrequencyInSeconds() const{ return m_frequencyInSeconds; } /** *

How often a message should be sent to the user. Minimum of 1 second, maximum * of 5 minutes.

*/ inline bool FrequencyInSecondsHasBeenSet() const { return m_frequencyInSecondsHasBeenSet; } /** *

How often a message should be sent to the user. Minimum of 1 second, maximum * of 5 minutes.

*/ inline void SetFrequencyInSeconds(int value) { m_frequencyInSecondsHasBeenSet = true; m_frequencyInSeconds = value; } /** *

How often a message should be sent to the user. Minimum of 1 second, maximum * of 5 minutes.

*/ inline StillWaitingResponseSpecification& WithFrequencyInSeconds(int value) { SetFrequencyInSeconds(value); return *this;} /** *

If Amazon Lex waits longer than this length of time for a response, it will * stop sending messages.

*/ inline int GetTimeoutInSeconds() const{ return m_timeoutInSeconds; } /** *

If Amazon Lex waits longer than this length of time for a response, it will * stop sending messages.

*/ inline bool TimeoutInSecondsHasBeenSet() const { return m_timeoutInSecondsHasBeenSet; } /** *

If Amazon Lex waits longer than this length of time for a response, it will * stop sending messages.

*/ inline void SetTimeoutInSeconds(int value) { m_timeoutInSecondsHasBeenSet = true; m_timeoutInSeconds = value; } /** *

If Amazon Lex waits longer than this length of time for a response, it will * stop sending messages.

*/ inline StillWaitingResponseSpecification& WithTimeoutInSeconds(int value) { SetTimeoutInSeconds(value); return *this;} /** *

Indicates that the user can interrupt the response by speaking while the * message is being played.

*/ inline bool GetAllowInterrupt() const{ return m_allowInterrupt; } /** *

Indicates that the user can interrupt the response by speaking while the * message is being played.

*/ inline bool AllowInterruptHasBeenSet() const { return m_allowInterruptHasBeenSet; } /** *

Indicates that the user can interrupt the response by speaking while the * message is being played.

*/ inline void SetAllowInterrupt(bool value) { m_allowInterruptHasBeenSet = true; m_allowInterrupt = value; } /** *

Indicates that the user can interrupt the response by speaking while the * message is being played.

*/ inline StillWaitingResponseSpecification& WithAllowInterrupt(bool value) { SetAllowInterrupt(value); return *this;} private: Aws::Vector m_messageGroups; bool m_messageGroupsHasBeenSet = false; int m_frequencyInSeconds; bool m_frequencyInSecondsHasBeenSet = false; int m_timeoutInSeconds; bool m_timeoutInSecondsHasBeenSet = false; bool m_allowInterrupt; bool m_allowInterruptHasBeenSet = false; }; } // namespace Model } // namespace LexModelsV2 } // namespace Aws