/** * 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 #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace LexModelsV2 { namespace Model { /** *

Specifies a list of message groups that Amazon Lex sends to a user to elicit * a response.

See Also:

AWS * API Reference

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

A collection of messages that Amazon Lex can send to the user. Amazon Lex * chooses the actual message to send at runtime.

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

A collection of messages that Amazon Lex can send to the user. Amazon Lex * chooses the actual message to send at runtime.

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

A collection of messages that Amazon Lex can send to the user. Amazon Lex * chooses the actual message to send at runtime.

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

A collection of messages that Amazon Lex can send to the user. Amazon Lex * chooses the actual message to send at runtime.

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

A collection of messages that Amazon Lex can send to the user. Amazon Lex * chooses the actual message to send at runtime.

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

A collection of messages that Amazon Lex can send to the user. Amazon Lex * chooses the actual message to send at runtime.

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

A collection of messages that Amazon Lex can send to the user. Amazon Lex * chooses the actual message to send at runtime.

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

A collection of messages that Amazon Lex can send to the user. Amazon Lex * chooses the actual message to send at runtime.

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

The maximum number of times the bot tries to elicit a response from the user * using this prompt.

*/ inline int GetMaxRetries() const{ return m_maxRetries; } /** *

The maximum number of times the bot tries to elicit a response from the user * using this prompt.

*/ inline bool MaxRetriesHasBeenSet() const { return m_maxRetriesHasBeenSet; } /** *

The maximum number of times the bot tries to elicit a response from the user * using this prompt.

*/ inline void SetMaxRetries(int value) { m_maxRetriesHasBeenSet = true; m_maxRetries = value; } /** *

The maximum number of times the bot tries to elicit a response from the user * using this prompt.

*/ inline PromptSpecification& WithMaxRetries(int value) { SetMaxRetries(value); return *this;} /** *

Indicates whether the user can interrupt a speech prompt from the bot.

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

Indicates whether the user can interrupt a speech prompt from the bot.

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

Indicates whether the user can interrupt a speech prompt from the bot.

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

Indicates whether the user can interrupt a speech prompt from the bot.

*/ inline PromptSpecification& WithAllowInterrupt(bool value) { SetAllowInterrupt(value); return *this;} /** *

Indicates how a message is selected from a message group among retries.

*/ inline const MessageSelectionStrategy& GetMessageSelectionStrategy() const{ return m_messageSelectionStrategy; } /** *

Indicates how a message is selected from a message group among retries.

*/ inline bool MessageSelectionStrategyHasBeenSet() const { return m_messageSelectionStrategyHasBeenSet; } /** *

Indicates how a message is selected from a message group among retries.

*/ inline void SetMessageSelectionStrategy(const MessageSelectionStrategy& value) { m_messageSelectionStrategyHasBeenSet = true; m_messageSelectionStrategy = value; } /** *

Indicates how a message is selected from a message group among retries.

*/ inline void SetMessageSelectionStrategy(MessageSelectionStrategy&& value) { m_messageSelectionStrategyHasBeenSet = true; m_messageSelectionStrategy = std::move(value); } /** *

Indicates how a message is selected from a message group among retries.

*/ inline PromptSpecification& WithMessageSelectionStrategy(const MessageSelectionStrategy& value) { SetMessageSelectionStrategy(value); return *this;} /** *

Indicates how a message is selected from a message group among retries.

*/ inline PromptSpecification& WithMessageSelectionStrategy(MessageSelectionStrategy&& value) { SetMessageSelectionStrategy(std::move(value)); return *this;} /** *

Specifies the advanced settings on each attempt of the prompt.

*/ inline const Aws::Map& GetPromptAttemptsSpecification() const{ return m_promptAttemptsSpecification; } /** *

Specifies the advanced settings on each attempt of the prompt.

*/ inline bool PromptAttemptsSpecificationHasBeenSet() const { return m_promptAttemptsSpecificationHasBeenSet; } /** *

Specifies the advanced settings on each attempt of the prompt.

*/ inline void SetPromptAttemptsSpecification(const Aws::Map& value) { m_promptAttemptsSpecificationHasBeenSet = true; m_promptAttemptsSpecification = value; } /** *

Specifies the advanced settings on each attempt of the prompt.

*/ inline void SetPromptAttemptsSpecification(Aws::Map&& value) { m_promptAttemptsSpecificationHasBeenSet = true; m_promptAttemptsSpecification = std::move(value); } /** *

Specifies the advanced settings on each attempt of the prompt.

*/ inline PromptSpecification& WithPromptAttemptsSpecification(const Aws::Map& value) { SetPromptAttemptsSpecification(value); return *this;} /** *

Specifies the advanced settings on each attempt of the prompt.

*/ inline PromptSpecification& WithPromptAttemptsSpecification(Aws::Map&& value) { SetPromptAttemptsSpecification(std::move(value)); return *this;} /** *

Specifies the advanced settings on each attempt of the prompt.

*/ inline PromptSpecification& AddPromptAttemptsSpecification(const PromptAttempt& key, const PromptAttemptSpecification& value) { m_promptAttemptsSpecificationHasBeenSet = true; m_promptAttemptsSpecification.emplace(key, value); return *this; } /** *

Specifies the advanced settings on each attempt of the prompt.

*/ inline PromptSpecification& AddPromptAttemptsSpecification(PromptAttempt&& key, const PromptAttemptSpecification& value) { m_promptAttemptsSpecificationHasBeenSet = true; m_promptAttemptsSpecification.emplace(std::move(key), value); return *this; } /** *

Specifies the advanced settings on each attempt of the prompt.

*/ inline PromptSpecification& AddPromptAttemptsSpecification(const PromptAttempt& key, PromptAttemptSpecification&& value) { m_promptAttemptsSpecificationHasBeenSet = true; m_promptAttemptsSpecification.emplace(key, std::move(value)); return *this; } /** *

Specifies the advanced settings on each attempt of the prompt.

*/ inline PromptSpecification& AddPromptAttemptsSpecification(PromptAttempt&& key, PromptAttemptSpecification&& value) { m_promptAttemptsSpecificationHasBeenSet = true; m_promptAttemptsSpecification.emplace(std::move(key), std::move(value)); return *this; } private: Aws::Vector m_messageGroups; bool m_messageGroupsHasBeenSet = false; int m_maxRetries; bool m_maxRetriesHasBeenSet = false; bool m_allowInterrupt; bool m_allowInterruptHasBeenSet = false; MessageSelectionStrategy m_messageSelectionStrategy; bool m_messageSelectionStrategyHasBeenSet = false; Aws::Map m_promptAttemptsSpecification; bool m_promptAttemptsSpecificationHasBeenSet = false; }; } // namespace Model } // namespace LexModelsV2 } // namespace Aws