1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/lexv2-models/LexModelsV2_EXPORTS.h> 8 #include <aws/core/utils/memory/stl/AWSVector.h> 9 #include <aws/lexv2-models/model/MessageGroup.h> 10 #include <utility> 11 12 namespace Aws 13 { 14 namespace Utils 15 { 16 namespace Json 17 { 18 class JsonValue; 19 class JsonView; 20 } // namespace Json 21 } // namespace Utils 22 namespace LexModelsV2 23 { 24 namespace Model 25 { 26 27 /** 28 * <p>Specifies a list of message groups that Amazon Lex sends to a user to elicit 29 * a response.</p><p><h3>See Also:</h3> <a 30 * href="http://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/PromptSpecification">AWS 31 * API Reference</a></p> 32 */ 33 class AWS_LEXMODELSV2_API PromptSpecification 34 { 35 public: 36 PromptSpecification(); 37 PromptSpecification(Aws::Utils::Json::JsonView jsonValue); 38 PromptSpecification& operator=(Aws::Utils::Json::JsonView jsonValue); 39 Aws::Utils::Json::JsonValue Jsonize() const; 40 41 42 /** 43 * <p>A collection of messages that Amazon Lex can send to the user. Amazon Lex 44 * chooses the actual message to send at runtime.</p> 45 */ GetMessageGroups()46 inline const Aws::Vector<MessageGroup>& GetMessageGroups() const{ return m_messageGroups; } 47 48 /** 49 * <p>A collection of messages that Amazon Lex can send to the user. Amazon Lex 50 * chooses the actual message to send at runtime.</p> 51 */ MessageGroupsHasBeenSet()52 inline bool MessageGroupsHasBeenSet() const { return m_messageGroupsHasBeenSet; } 53 54 /** 55 * <p>A collection of messages that Amazon Lex can send to the user. Amazon Lex 56 * chooses the actual message to send at runtime.</p> 57 */ SetMessageGroups(const Aws::Vector<MessageGroup> & value)58 inline void SetMessageGroups(const Aws::Vector<MessageGroup>& value) { m_messageGroupsHasBeenSet = true; m_messageGroups = value; } 59 60 /** 61 * <p>A collection of messages that Amazon Lex can send to the user. Amazon Lex 62 * chooses the actual message to send at runtime.</p> 63 */ SetMessageGroups(Aws::Vector<MessageGroup> && value)64 inline void SetMessageGroups(Aws::Vector<MessageGroup>&& value) { m_messageGroupsHasBeenSet = true; m_messageGroups = std::move(value); } 65 66 /** 67 * <p>A collection of messages that Amazon Lex can send to the user. Amazon Lex 68 * chooses the actual message to send at runtime.</p> 69 */ WithMessageGroups(const Aws::Vector<MessageGroup> & value)70 inline PromptSpecification& WithMessageGroups(const Aws::Vector<MessageGroup>& value) { SetMessageGroups(value); return *this;} 71 72 /** 73 * <p>A collection of messages that Amazon Lex can send to the user. Amazon Lex 74 * chooses the actual message to send at runtime.</p> 75 */ WithMessageGroups(Aws::Vector<MessageGroup> && value)76 inline PromptSpecification& WithMessageGroups(Aws::Vector<MessageGroup>&& value) { SetMessageGroups(std::move(value)); return *this;} 77 78 /** 79 * <p>A collection of messages that Amazon Lex can send to the user. Amazon Lex 80 * chooses the actual message to send at runtime.</p> 81 */ AddMessageGroups(const MessageGroup & value)82 inline PromptSpecification& AddMessageGroups(const MessageGroup& value) { m_messageGroupsHasBeenSet = true; m_messageGroups.push_back(value); return *this; } 83 84 /** 85 * <p>A collection of messages that Amazon Lex can send to the user. Amazon Lex 86 * chooses the actual message to send at runtime.</p> 87 */ AddMessageGroups(MessageGroup && value)88 inline PromptSpecification& AddMessageGroups(MessageGroup&& value) { m_messageGroupsHasBeenSet = true; m_messageGroups.push_back(std::move(value)); return *this; } 89 90 91 /** 92 * <p>The maximum number of times the bot tries to elicit a response from the user 93 * using this prompt.</p> 94 */ GetMaxRetries()95 inline int GetMaxRetries() const{ return m_maxRetries; } 96 97 /** 98 * <p>The maximum number of times the bot tries to elicit a response from the user 99 * using this prompt.</p> 100 */ MaxRetriesHasBeenSet()101 inline bool MaxRetriesHasBeenSet() const { return m_maxRetriesHasBeenSet; } 102 103 /** 104 * <p>The maximum number of times the bot tries to elicit a response from the user 105 * using this prompt.</p> 106 */ SetMaxRetries(int value)107 inline void SetMaxRetries(int value) { m_maxRetriesHasBeenSet = true; m_maxRetries = value; } 108 109 /** 110 * <p>The maximum number of times the bot tries to elicit a response from the user 111 * using this prompt.</p> 112 */ WithMaxRetries(int value)113 inline PromptSpecification& WithMaxRetries(int value) { SetMaxRetries(value); return *this;} 114 115 116 /** 117 * <p>Indicates whether the user can interrupt a speech prompt from the bot.</p> 118 */ GetAllowInterrupt()119 inline bool GetAllowInterrupt() const{ return m_allowInterrupt; } 120 121 /** 122 * <p>Indicates whether the user can interrupt a speech prompt from the bot.</p> 123 */ AllowInterruptHasBeenSet()124 inline bool AllowInterruptHasBeenSet() const { return m_allowInterruptHasBeenSet; } 125 126 /** 127 * <p>Indicates whether the user can interrupt a speech prompt from the bot.</p> 128 */ SetAllowInterrupt(bool value)129 inline void SetAllowInterrupt(bool value) { m_allowInterruptHasBeenSet = true; m_allowInterrupt = value; } 130 131 /** 132 * <p>Indicates whether the user can interrupt a speech prompt from the bot.</p> 133 */ WithAllowInterrupt(bool value)134 inline PromptSpecification& WithAllowInterrupt(bool value) { SetAllowInterrupt(value); return *this;} 135 136 private: 137 138 Aws::Vector<MessageGroup> m_messageGroups; 139 bool m_messageGroupsHasBeenSet; 140 141 int m_maxRetries; 142 bool m_maxRetriesHasBeenSet; 143 144 bool m_allowInterrupt; 145 bool m_allowInterruptHasBeenSet; 146 }; 147 148 } // namespace Model 149 } // namespace LexModelsV2 150 } // namespace Aws 151