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/lexv2-models/model/SlotDefaultValueSpecification.h> 9 #include <aws/lexv2-models/model/SlotConstraint.h> 10 #include <aws/lexv2-models/model/PromptSpecification.h> 11 #include <aws/core/utils/memory/stl/AWSVector.h> 12 #include <aws/lexv2-models/model/WaitAndContinueSpecification.h> 13 #include <aws/lexv2-models/model/SampleUtterance.h> 14 #include <utility> 15 16 namespace Aws 17 { 18 namespace Utils 19 { 20 namespace Json 21 { 22 class JsonValue; 23 class JsonView; 24 } // namespace Json 25 } // namespace Utils 26 namespace LexModelsV2 27 { 28 namespace Model 29 { 30 31 /** 32 * <p>Settings that you can use for eliciting a slot value.</p><p><h3>See 33 * Also:</h3> <a 34 * href="http://docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/SlotValueElicitationSetting">AWS 35 * API Reference</a></p> 36 */ 37 class AWS_LEXMODELSV2_API SlotValueElicitationSetting 38 { 39 public: 40 SlotValueElicitationSetting(); 41 SlotValueElicitationSetting(Aws::Utils::Json::JsonView jsonValue); 42 SlotValueElicitationSetting& operator=(Aws::Utils::Json::JsonView jsonValue); 43 Aws::Utils::Json::JsonValue Jsonize() const; 44 45 46 /** 47 * <p>A list of default values for a slot. Default values are used when Amazon Lex 48 * hasn't determined a value for a slot. You can specify default values from 49 * context variables, session attributes, and defined values.</p> 50 */ GetDefaultValueSpecification()51 inline const SlotDefaultValueSpecification& GetDefaultValueSpecification() const{ return m_defaultValueSpecification; } 52 53 /** 54 * <p>A list of default values for a slot. Default values are used when Amazon Lex 55 * hasn't determined a value for a slot. You can specify default values from 56 * context variables, session attributes, and defined values.</p> 57 */ DefaultValueSpecificationHasBeenSet()58 inline bool DefaultValueSpecificationHasBeenSet() const { return m_defaultValueSpecificationHasBeenSet; } 59 60 /** 61 * <p>A list of default values for a slot. Default values are used when Amazon Lex 62 * hasn't determined a value for a slot. You can specify default values from 63 * context variables, session attributes, and defined values.</p> 64 */ SetDefaultValueSpecification(const SlotDefaultValueSpecification & value)65 inline void SetDefaultValueSpecification(const SlotDefaultValueSpecification& value) { m_defaultValueSpecificationHasBeenSet = true; m_defaultValueSpecification = value; } 66 67 /** 68 * <p>A list of default values for a slot. Default values are used when Amazon Lex 69 * hasn't determined a value for a slot. You can specify default values from 70 * context variables, session attributes, and defined values.</p> 71 */ SetDefaultValueSpecification(SlotDefaultValueSpecification && value)72 inline void SetDefaultValueSpecification(SlotDefaultValueSpecification&& value) { m_defaultValueSpecificationHasBeenSet = true; m_defaultValueSpecification = std::move(value); } 73 74 /** 75 * <p>A list of default values for a slot. Default values are used when Amazon Lex 76 * hasn't determined a value for a slot. You can specify default values from 77 * context variables, session attributes, and defined values.</p> 78 */ WithDefaultValueSpecification(const SlotDefaultValueSpecification & value)79 inline SlotValueElicitationSetting& WithDefaultValueSpecification(const SlotDefaultValueSpecification& value) { SetDefaultValueSpecification(value); return *this;} 80 81 /** 82 * <p>A list of default values for a slot. Default values are used when Amazon Lex 83 * hasn't determined a value for a slot. You can specify default values from 84 * context variables, session attributes, and defined values.</p> 85 */ WithDefaultValueSpecification(SlotDefaultValueSpecification && value)86 inline SlotValueElicitationSetting& WithDefaultValueSpecification(SlotDefaultValueSpecification&& value) { SetDefaultValueSpecification(std::move(value)); return *this;} 87 88 89 /** 90 * <p>Specifies whether the slot is required or optional.</p> 91 */ GetSlotConstraint()92 inline const SlotConstraint& GetSlotConstraint() const{ return m_slotConstraint; } 93 94 /** 95 * <p>Specifies whether the slot is required or optional.</p> 96 */ SlotConstraintHasBeenSet()97 inline bool SlotConstraintHasBeenSet() const { return m_slotConstraintHasBeenSet; } 98 99 /** 100 * <p>Specifies whether the slot is required or optional.</p> 101 */ SetSlotConstraint(const SlotConstraint & value)102 inline void SetSlotConstraint(const SlotConstraint& value) { m_slotConstraintHasBeenSet = true; m_slotConstraint = value; } 103 104 /** 105 * <p>Specifies whether the slot is required or optional.</p> 106 */ SetSlotConstraint(SlotConstraint && value)107 inline void SetSlotConstraint(SlotConstraint&& value) { m_slotConstraintHasBeenSet = true; m_slotConstraint = std::move(value); } 108 109 /** 110 * <p>Specifies whether the slot is required or optional.</p> 111 */ WithSlotConstraint(const SlotConstraint & value)112 inline SlotValueElicitationSetting& WithSlotConstraint(const SlotConstraint& value) { SetSlotConstraint(value); return *this;} 113 114 /** 115 * <p>Specifies whether the slot is required or optional.</p> 116 */ WithSlotConstraint(SlotConstraint && value)117 inline SlotValueElicitationSetting& WithSlotConstraint(SlotConstraint&& value) { SetSlotConstraint(std::move(value)); return *this;} 118 119 120 /** 121 * <p>The prompt that Amazon Lex uses to elicit the slot value from the user.</p> 122 */ GetPromptSpecification()123 inline const PromptSpecification& GetPromptSpecification() const{ return m_promptSpecification; } 124 125 /** 126 * <p>The prompt that Amazon Lex uses to elicit the slot value from the user.</p> 127 */ PromptSpecificationHasBeenSet()128 inline bool PromptSpecificationHasBeenSet() const { return m_promptSpecificationHasBeenSet; } 129 130 /** 131 * <p>The prompt that Amazon Lex uses to elicit the slot value from the user.</p> 132 */ SetPromptSpecification(const PromptSpecification & value)133 inline void SetPromptSpecification(const PromptSpecification& value) { m_promptSpecificationHasBeenSet = true; m_promptSpecification = value; } 134 135 /** 136 * <p>The prompt that Amazon Lex uses to elicit the slot value from the user.</p> 137 */ SetPromptSpecification(PromptSpecification && value)138 inline void SetPromptSpecification(PromptSpecification&& value) { m_promptSpecificationHasBeenSet = true; m_promptSpecification = std::move(value); } 139 140 /** 141 * <p>The prompt that Amazon Lex uses to elicit the slot value from the user.</p> 142 */ WithPromptSpecification(const PromptSpecification & value)143 inline SlotValueElicitationSetting& WithPromptSpecification(const PromptSpecification& value) { SetPromptSpecification(value); return *this;} 144 145 /** 146 * <p>The prompt that Amazon Lex uses to elicit the slot value from the user.</p> 147 */ WithPromptSpecification(PromptSpecification && value)148 inline SlotValueElicitationSetting& WithPromptSpecification(PromptSpecification&& value) { SetPromptSpecification(std::move(value)); return *this;} 149 150 151 /** 152 * <p>If you know a specific pattern that users might respond to an Amazon Lex 153 * request for a slot value, you can provide those utterances to improve accuracy. 154 * This is optional. In most cases, Amazon Lex is capable of understanding user 155 * utterances.</p> 156 */ GetSampleUtterances()157 inline const Aws::Vector<SampleUtterance>& GetSampleUtterances() const{ return m_sampleUtterances; } 158 159 /** 160 * <p>If you know a specific pattern that users might respond to an Amazon Lex 161 * request for a slot value, you can provide those utterances to improve accuracy. 162 * This is optional. In most cases, Amazon Lex is capable of understanding user 163 * utterances.</p> 164 */ SampleUtterancesHasBeenSet()165 inline bool SampleUtterancesHasBeenSet() const { return m_sampleUtterancesHasBeenSet; } 166 167 /** 168 * <p>If you know a specific pattern that users might respond to an Amazon Lex 169 * request for a slot value, you can provide those utterances to improve accuracy. 170 * This is optional. In most cases, Amazon Lex is capable of understanding user 171 * utterances.</p> 172 */ SetSampleUtterances(const Aws::Vector<SampleUtterance> & value)173 inline void SetSampleUtterances(const Aws::Vector<SampleUtterance>& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances = value; } 174 175 /** 176 * <p>If you know a specific pattern that users might respond to an Amazon Lex 177 * request for a slot value, you can provide those utterances to improve accuracy. 178 * This is optional. In most cases, Amazon Lex is capable of understanding user 179 * utterances.</p> 180 */ SetSampleUtterances(Aws::Vector<SampleUtterance> && value)181 inline void SetSampleUtterances(Aws::Vector<SampleUtterance>&& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances = std::move(value); } 182 183 /** 184 * <p>If you know a specific pattern that users might respond to an Amazon Lex 185 * request for a slot value, you can provide those utterances to improve accuracy. 186 * This is optional. In most cases, Amazon Lex is capable of understanding user 187 * utterances.</p> 188 */ WithSampleUtterances(const Aws::Vector<SampleUtterance> & value)189 inline SlotValueElicitationSetting& WithSampleUtterances(const Aws::Vector<SampleUtterance>& value) { SetSampleUtterances(value); return *this;} 190 191 /** 192 * <p>If you know a specific pattern that users might respond to an Amazon Lex 193 * request for a slot value, you can provide those utterances to improve accuracy. 194 * This is optional. In most cases, Amazon Lex is capable of understanding user 195 * utterances.</p> 196 */ WithSampleUtterances(Aws::Vector<SampleUtterance> && value)197 inline SlotValueElicitationSetting& WithSampleUtterances(Aws::Vector<SampleUtterance>&& value) { SetSampleUtterances(std::move(value)); return *this;} 198 199 /** 200 * <p>If you know a specific pattern that users might respond to an Amazon Lex 201 * request for a slot value, you can provide those utterances to improve accuracy. 202 * This is optional. In most cases, Amazon Lex is capable of understanding user 203 * utterances.</p> 204 */ AddSampleUtterances(const SampleUtterance & value)205 inline SlotValueElicitationSetting& AddSampleUtterances(const SampleUtterance& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances.push_back(value); return *this; } 206 207 /** 208 * <p>If you know a specific pattern that users might respond to an Amazon Lex 209 * request for a slot value, you can provide those utterances to improve accuracy. 210 * This is optional. In most cases, Amazon Lex is capable of understanding user 211 * utterances.</p> 212 */ AddSampleUtterances(SampleUtterance && value)213 inline SlotValueElicitationSetting& AddSampleUtterances(SampleUtterance&& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances.push_back(std::move(value)); return *this; } 214 215 216 GetWaitAndContinueSpecification()217 inline const WaitAndContinueSpecification& GetWaitAndContinueSpecification() const{ return m_waitAndContinueSpecification; } 218 219 WaitAndContinueSpecificationHasBeenSet()220 inline bool WaitAndContinueSpecificationHasBeenSet() const { return m_waitAndContinueSpecificationHasBeenSet; } 221 222 SetWaitAndContinueSpecification(const WaitAndContinueSpecification & value)223 inline void SetWaitAndContinueSpecification(const WaitAndContinueSpecification& value) { m_waitAndContinueSpecificationHasBeenSet = true; m_waitAndContinueSpecification = value; } 224 225 SetWaitAndContinueSpecification(WaitAndContinueSpecification && value)226 inline void SetWaitAndContinueSpecification(WaitAndContinueSpecification&& value) { m_waitAndContinueSpecificationHasBeenSet = true; m_waitAndContinueSpecification = std::move(value); } 227 228 WithWaitAndContinueSpecification(const WaitAndContinueSpecification & value)229 inline SlotValueElicitationSetting& WithWaitAndContinueSpecification(const WaitAndContinueSpecification& value) { SetWaitAndContinueSpecification(value); return *this;} 230 231 WithWaitAndContinueSpecification(WaitAndContinueSpecification && value)232 inline SlotValueElicitationSetting& WithWaitAndContinueSpecification(WaitAndContinueSpecification&& value) { SetWaitAndContinueSpecification(std::move(value)); return *this;} 233 234 private: 235 236 SlotDefaultValueSpecification m_defaultValueSpecification; 237 bool m_defaultValueSpecificationHasBeenSet; 238 239 SlotConstraint m_slotConstraint; 240 bool m_slotConstraintHasBeenSet; 241 242 PromptSpecification m_promptSpecification; 243 bool m_promptSpecificationHasBeenSet; 244 245 Aws::Vector<SampleUtterance> m_sampleUtterances; 246 bool m_sampleUtterancesHasBeenSet; 247 248 WaitAndContinueSpecification m_waitAndContinueSpecification; 249 bool m_waitAndContinueSpecificationHasBeenSet; 250 }; 251 252 } // namespace Model 253 } // namespace LexModelsV2 254 } // namespace Aws 255