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

Subslot elicitation settings.

DefaultValueSpecification * is a list of default values for a constituent sub slot in a composite 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. This is similar to DefaultValueSpecification for * slots.

PromptSpecification is the prompt that Amazon Lex * uses to elicit the sub slot value from the user. This is similar to * PromptSpecification for slots.

See Also:

AWS * API Reference

*/ class SubSlotValueElicitationSetting { public: AWS_LEXMODELSV2_API SubSlotValueElicitationSetting(); AWS_LEXMODELSV2_API SubSlotValueElicitationSetting(Aws::Utils::Json::JsonView jsonValue); AWS_LEXMODELSV2_API SubSlotValueElicitationSetting& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_LEXMODELSV2_API Aws::Utils::Json::JsonValue Jsonize() const; inline const SlotDefaultValueSpecification& GetDefaultValueSpecification() const{ return m_defaultValueSpecification; } inline bool DefaultValueSpecificationHasBeenSet() const { return m_defaultValueSpecificationHasBeenSet; } inline void SetDefaultValueSpecification(const SlotDefaultValueSpecification& value) { m_defaultValueSpecificationHasBeenSet = true; m_defaultValueSpecification = value; } inline void SetDefaultValueSpecification(SlotDefaultValueSpecification&& value) { m_defaultValueSpecificationHasBeenSet = true; m_defaultValueSpecification = std::move(value); } inline SubSlotValueElicitationSetting& WithDefaultValueSpecification(const SlotDefaultValueSpecification& value) { SetDefaultValueSpecification(value); return *this;} inline SubSlotValueElicitationSetting& WithDefaultValueSpecification(SlotDefaultValueSpecification&& value) { SetDefaultValueSpecification(std::move(value)); return *this;} inline const PromptSpecification& GetPromptSpecification() const{ return m_promptSpecification; } inline bool PromptSpecificationHasBeenSet() const { return m_promptSpecificationHasBeenSet; } inline void SetPromptSpecification(const PromptSpecification& value) { m_promptSpecificationHasBeenSet = true; m_promptSpecification = value; } inline void SetPromptSpecification(PromptSpecification&& value) { m_promptSpecificationHasBeenSet = true; m_promptSpecification = std::move(value); } inline SubSlotValueElicitationSetting& WithPromptSpecification(const PromptSpecification& value) { SetPromptSpecification(value); return *this;} inline SubSlotValueElicitationSetting& 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 sub slot value, you can provide those utterances to improve * accuracy. This is optional. In most cases Amazon Lex is capable of understanding * user utterances. This is similar to SampleUtterances for slots.

*/ 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 sub slot value, you can provide those utterances to improve * accuracy. This is optional. In most cases Amazon Lex is capable of understanding * user utterances. This is similar to SampleUtterances for slots.

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

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

*/ 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 sub slot value, you can provide those utterances to improve * accuracy. This is optional. In most cases Amazon Lex is capable of understanding * user utterances. This is similar to SampleUtterances for slots.

*/ 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 sub slot value, you can provide those utterances to improve * accuracy. This is optional. In most cases Amazon Lex is capable of understanding * user utterances. This is similar to SampleUtterances for slots.

*/ inline SubSlotValueElicitationSetting& 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 sub slot value, you can provide those utterances to improve * accuracy. This is optional. In most cases Amazon Lex is capable of understanding * user utterances. This is similar to SampleUtterances for slots.

*/ inline SubSlotValueElicitationSetting& 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 sub slot value, you can provide those utterances to improve * accuracy. This is optional. In most cases Amazon Lex is capable of understanding * user utterances. This is similar to SampleUtterances for slots.

*/ inline SubSlotValueElicitationSetting& 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 sub slot value, you can provide those utterances to improve * accuracy. This is optional. In most cases Amazon Lex is capable of understanding * user utterances. This is similar to SampleUtterances for slots.

*/ inline SubSlotValueElicitationSetting& 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 SubSlotValueElicitationSetting& WithWaitAndContinueSpecification(const WaitAndContinueSpecification& value) { SetWaitAndContinueSpecification(value); return *this;} inline SubSlotValueElicitationSetting& WithWaitAndContinueSpecification(WaitAndContinueSpecification&& value) { SetWaitAndContinueSpecification(std::move(value)); return *this;} private: SlotDefaultValueSpecification m_defaultValueSpecification; bool m_defaultValueSpecificationHasBeenSet = false; PromptSpecification m_promptSpecification; bool m_promptSpecificationHasBeenSet = false; Aws::Vector m_sampleUtterances; bool m_sampleUtterancesHasBeenSet = false; WaitAndContinueSpecification m_waitAndContinueSpecification; bool m_waitAndContinueSpecificationHasBeenSet = false; }; } // namespace Model } // namespace LexModelsV2 } // namespace Aws