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

Specifies the elicitation setting details eliciting a slot.

See * Also:

AWS * API Reference

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

A list of default values for a slot. Default values are used when Amazon Lex * hasn't determined a value for a slot. You can specify default values from * context variables, session attributes, and defined values.

*/ inline const SlotDefaultValueSpecification& GetDefaultValueSpecification() const{ return m_defaultValueSpecification; } /** *

A list of default values for a slot. Default values are used when Amazon Lex * hasn't determined a value for a slot. You can specify default values from * context variables, session attributes, and defined values.

*/ inline bool DefaultValueSpecificationHasBeenSet() const { return m_defaultValueSpecificationHasBeenSet; } /** *

A list of default values for a slot. Default values are used when Amazon Lex * hasn't determined a value for a slot. You can specify default values from * context variables, session attributes, and defined values.

*/ inline void SetDefaultValueSpecification(const SlotDefaultValueSpecification& value) { m_defaultValueSpecificationHasBeenSet = true; m_defaultValueSpecification = value; } /** *

A list of default values for a slot. Default values are used when Amazon Lex * hasn't determined a value for a slot. You can specify default values from * context variables, session attributes, and defined values.

*/ inline void SetDefaultValueSpecification(SlotDefaultValueSpecification&& value) { m_defaultValueSpecificationHasBeenSet = true; m_defaultValueSpecification = std::move(value); } /** *

A list of default values for a slot. Default values are used when Amazon Lex * hasn't determined a value for a slot. You can specify default values from * context variables, session attributes, and defined values.

*/ inline SlotValueElicitationSetting& WithDefaultValueSpecification(const SlotDefaultValueSpecification& value) { SetDefaultValueSpecification(value); return *this;} /** *

A list of default values for a slot. Default values are used when Amazon Lex * hasn't determined a value for a slot. You can specify default values from * context variables, session attributes, and defined values.

*/ inline SlotValueElicitationSetting& WithDefaultValueSpecification(SlotDefaultValueSpecification&& value) { SetDefaultValueSpecification(std::move(value)); return *this;} /** *

Specifies whether the slot is required or optional.

*/ inline const SlotConstraint& GetSlotConstraint() const{ return m_slotConstraint; } /** *

Specifies whether the slot is required or optional.

*/ inline bool SlotConstraintHasBeenSet() const { return m_slotConstraintHasBeenSet; } /** *

Specifies whether the slot is required or optional.

*/ inline void SetSlotConstraint(const SlotConstraint& value) { m_slotConstraintHasBeenSet = true; m_slotConstraint = value; } /** *

Specifies whether the slot is required or optional.

*/ inline void SetSlotConstraint(SlotConstraint&& value) { m_slotConstraintHasBeenSet = true; m_slotConstraint = std::move(value); } /** *

Specifies whether the slot is required or optional.

*/ inline SlotValueElicitationSetting& WithSlotConstraint(const SlotConstraint& value) { SetSlotConstraint(value); return *this;} /** *

Specifies whether the slot is required or optional.

*/ inline SlotValueElicitationSetting& WithSlotConstraint(SlotConstraint&& value) { SetSlotConstraint(std::move(value)); return *this;} /** *

The prompt that Amazon Lex uses to elicit the slot value from the user.

*/ inline const PromptSpecification& GetPromptSpecification() const{ return m_promptSpecification; } /** *

The prompt that Amazon Lex uses to elicit the slot value from the user.

*/ inline bool PromptSpecificationHasBeenSet() const { return m_promptSpecificationHasBeenSet; } /** *

The prompt that Amazon Lex uses to elicit the slot value from the user.

*/ inline void SetPromptSpecification(const PromptSpecification& value) { m_promptSpecificationHasBeenSet = true; m_promptSpecification = value; } /** *

The prompt that Amazon Lex uses to elicit the slot value from the user.

*/ inline void SetPromptSpecification(PromptSpecification&& value) { m_promptSpecificationHasBeenSet = true; m_promptSpecification = std::move(value); } /** *

The prompt that Amazon Lex uses to elicit the slot value from the user.

*/ inline SlotValueElicitationSetting& WithPromptSpecification(const PromptSpecification& value) { SetPromptSpecification(value); return *this;} /** *

The prompt that Amazon Lex uses to elicit the slot value from the user.

*/ inline SlotValueElicitationSetting& WithPromptSpecification(PromptSpecification&& value) { SetPromptSpecification(std::move(value)); return *this;} /** *

If you know a specific pattern that users might respond to an Amazon Lex * request for a slot value, you can provide those utterances to improve accuracy. * This is optional. In most cases, Amazon Lex is capable of understanding user * utterances.

*/ inline const Aws::Vector& GetSampleUtterances() const{ return m_sampleUtterances; } /** *

If you know a specific pattern that users might respond to an Amazon Lex * request for a slot value, you can provide those utterances to improve accuracy. * This is optional. In most cases, Amazon Lex is capable of understanding user * utterances.

*/ inline bool SampleUtterancesHasBeenSet() const { return m_sampleUtterancesHasBeenSet; } /** *

If you know a specific pattern that users might respond to an Amazon Lex * request for a slot value, you can provide those utterances to improve accuracy. * This is optional. In most cases, Amazon Lex is capable of understanding user * utterances.

*/ inline void SetSampleUtterances(const Aws::Vector& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances = value; } /** *

If you know a specific pattern that users might respond to an Amazon Lex * request for a slot value, you can provide those utterances to improve accuracy. * This is optional. In most cases, Amazon Lex is capable of understanding user * utterances.

*/ inline void SetSampleUtterances(Aws::Vector&& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances = std::move(value); } /** *

If you know a specific pattern that users might respond to an Amazon Lex * request for a slot value, you can provide those utterances to improve accuracy. * This is optional. In most cases, Amazon Lex is capable of understanding user * utterances.

*/ inline SlotValueElicitationSetting& WithSampleUtterances(const Aws::Vector& value) { SetSampleUtterances(value); return *this;} /** *

If you know a specific pattern that users might respond to an Amazon Lex * request for a slot value, you can provide those utterances to improve accuracy. * This is optional. In most cases, Amazon Lex is capable of understanding user * utterances.

*/ inline SlotValueElicitationSetting& WithSampleUtterances(Aws::Vector&& value) { SetSampleUtterances(std::move(value)); return *this;} /** *

If you know a specific pattern that users might respond to an Amazon Lex * request for a slot value, you can provide those utterances to improve accuracy. * This is optional. In most cases, Amazon Lex is capable of understanding user * utterances.

*/ inline SlotValueElicitationSetting& AddSampleUtterances(const SampleUtterance& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances.push_back(value); return *this; } /** *

If you know a specific pattern that users might respond to an Amazon Lex * request for a slot value, you can provide those utterances to improve accuracy. * This is optional. In most cases, Amazon Lex is capable of understanding user * utterances.

*/ inline SlotValueElicitationSetting& AddSampleUtterances(SampleUtterance&& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances.push_back(std::move(value)); return *this; } inline const WaitAndContinueSpecification& GetWaitAndContinueSpecification() const{ return m_waitAndContinueSpecification; } inline bool WaitAndContinueSpecificationHasBeenSet() const { return m_waitAndContinueSpecificationHasBeenSet; } inline void SetWaitAndContinueSpecification(const WaitAndContinueSpecification& value) { m_waitAndContinueSpecificationHasBeenSet = true; m_waitAndContinueSpecification = value; } inline void SetWaitAndContinueSpecification(WaitAndContinueSpecification&& value) { m_waitAndContinueSpecificationHasBeenSet = true; m_waitAndContinueSpecification = std::move(value); } inline SlotValueElicitationSetting& WithWaitAndContinueSpecification(const WaitAndContinueSpecification& value) { SetWaitAndContinueSpecification(value); return *this;} inline SlotValueElicitationSetting& WithWaitAndContinueSpecification(WaitAndContinueSpecification&& value) { SetWaitAndContinueSpecification(std::move(value)); return *this;} /** *

Specifies the settings that Amazon Lex uses when a slot value is successfully * entered by a user.

*/ inline const SlotCaptureSetting& GetSlotCaptureSetting() const{ return m_slotCaptureSetting; } /** *

Specifies the settings that Amazon Lex uses when a slot value is successfully * entered by a user.

*/ inline bool SlotCaptureSettingHasBeenSet() const { return m_slotCaptureSettingHasBeenSet; } /** *

Specifies the settings that Amazon Lex uses when a slot value is successfully * entered by a user.

*/ inline void SetSlotCaptureSetting(const SlotCaptureSetting& value) { m_slotCaptureSettingHasBeenSet = true; m_slotCaptureSetting = value; } /** *

Specifies the settings that Amazon Lex uses when a slot value is successfully * entered by a user.

*/ inline void SetSlotCaptureSetting(SlotCaptureSetting&& value) { m_slotCaptureSettingHasBeenSet = true; m_slotCaptureSetting = std::move(value); } /** *

Specifies the settings that Amazon Lex uses when a slot value is successfully * entered by a user.

*/ inline SlotValueElicitationSetting& WithSlotCaptureSetting(const SlotCaptureSetting& value) { SetSlotCaptureSetting(value); return *this;} /** *

Specifies the settings that Amazon Lex uses when a slot value is successfully * entered by a user.

*/ inline SlotValueElicitationSetting& WithSlotCaptureSetting(SlotCaptureSetting&& value) { SetSlotCaptureSetting(std::move(value)); return *this;} private: SlotDefaultValueSpecification m_defaultValueSpecification; bool m_defaultValueSpecificationHasBeenSet = false; SlotConstraint m_slotConstraint; bool m_slotConstraintHasBeenSet = false; PromptSpecification m_promptSpecification; bool m_promptSpecificationHasBeenSet = false; Aws::Vector m_sampleUtterances; bool m_sampleUtterancesHasBeenSet = false; WaitAndContinueSpecification m_waitAndContinueSpecification; bool m_waitAndContinueSpecificationHasBeenSet = false; SlotCaptureSetting m_slotCaptureSetting; bool m_slotCaptureSettingHasBeenSet = false; }; } // namespace Model } // namespace LexModelsV2 } // namespace Aws