/** * 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 { /** *

Provides settings for a message that is sent periodically to the user while a * fulfillment Lambda function is running.

See Also:

AWS * API Reference

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

The frequency that a message is sent to the user. When the period ends, * Amazon Lex chooses a message from the message groups and plays it to the user. * If the fulfillment Lambda returns before the first period ends, an update * message is not played to the user.

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

The frequency that a message is sent to the user. When the period ends, * Amazon Lex chooses a message from the message groups and plays it to the user. * If the fulfillment Lambda returns before the first period ends, an update * message is not played to the user.

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

The frequency that a message is sent to the user. When the period ends, * Amazon Lex chooses a message from the message groups and plays it to the user. * If the fulfillment Lambda returns before the first period ends, an update * message is not played to the user.

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

The frequency that a message is sent to the user. When the period ends, * Amazon Lex chooses a message from the message groups and plays it to the user. * If the fulfillment Lambda returns before the first period ends, an update * message is not played to the user.

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

1 - 5 message groups that contain update messages. Amazon Lex chooses one of * the messages to play to the user.

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

1 - 5 message groups that contain update messages. Amazon Lex chooses one of * the messages to play to the user.

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

1 - 5 message groups that contain update messages. Amazon Lex chooses one of * the messages to play to the user.

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

1 - 5 message groups that contain update messages. Amazon Lex chooses one of * the messages to play to the user.

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

1 - 5 message groups that contain update messages. Amazon Lex chooses one of * the messages to play to the user.

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

1 - 5 message groups that contain update messages. Amazon Lex chooses one of * the messages to play to the user.

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

1 - 5 message groups that contain update messages. Amazon Lex chooses one of * the messages to play to the user.

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

1 - 5 message groups that contain update messages. Amazon Lex chooses one of * the messages to play to the user.

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

Determines whether the user can interrupt an update message while it is * playing.

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

Determines whether the user can interrupt an update message while it is * playing.

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

Determines whether the user can interrupt an update message while it is * playing.

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

Determines whether the user can interrupt an update message while it is * playing.

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