/** * 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 LexModelBuildingService { namespace Model { /** *

Identifies the version of a specific slot.

See Also:

AWS API * Reference

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

The name of the slot.

*/ inline const Aws::String& GetName() const{ return m_name; } /** *

The name of the slot.

*/ inline bool NameHasBeenSet() const { return m_nameHasBeenSet; } /** *

The name of the slot.

*/ inline void SetName(const Aws::String& value) { m_nameHasBeenSet = true; m_name = value; } /** *

The name of the slot.

*/ inline void SetName(Aws::String&& value) { m_nameHasBeenSet = true; m_name = std::move(value); } /** *

The name of the slot.

*/ inline void SetName(const char* value) { m_nameHasBeenSet = true; m_name.assign(value); } /** *

The name of the slot.

*/ inline Slot& WithName(const Aws::String& value) { SetName(value); return *this;} /** *

The name of the slot.

*/ inline Slot& WithName(Aws::String&& value) { SetName(std::move(value)); return *this;} /** *

The name of the slot.

*/ inline Slot& WithName(const char* value) { SetName(value); return *this;} /** *

A description of the slot.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A description of the slot.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A description of the slot.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A description of the slot.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A description of the slot.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A description of the slot.

*/ inline Slot& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A description of the slot.

*/ inline Slot& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A description of the slot.

*/ inline Slot& WithDescription(const char* value) { SetDescription(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 Slot& WithSlotConstraint(const SlotConstraint& value) { SetSlotConstraint(value); return *this;} /** *

Specifies whether the slot is required or optional.

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

The type of the slot, either a custom slot type that you defined or one of * the built-in slot types.

*/ inline const Aws::String& GetSlotType() const{ return m_slotType; } /** *

The type of the slot, either a custom slot type that you defined or one of * the built-in slot types.

*/ inline bool SlotTypeHasBeenSet() const { return m_slotTypeHasBeenSet; } /** *

The type of the slot, either a custom slot type that you defined or one of * the built-in slot types.

*/ inline void SetSlotType(const Aws::String& value) { m_slotTypeHasBeenSet = true; m_slotType = value; } /** *

The type of the slot, either a custom slot type that you defined or one of * the built-in slot types.

*/ inline void SetSlotType(Aws::String&& value) { m_slotTypeHasBeenSet = true; m_slotType = std::move(value); } /** *

The type of the slot, either a custom slot type that you defined or one of * the built-in slot types.

*/ inline void SetSlotType(const char* value) { m_slotTypeHasBeenSet = true; m_slotType.assign(value); } /** *

The type of the slot, either a custom slot type that you defined or one of * the built-in slot types.

*/ inline Slot& WithSlotType(const Aws::String& value) { SetSlotType(value); return *this;} /** *

The type of the slot, either a custom slot type that you defined or one of * the built-in slot types.

*/ inline Slot& WithSlotType(Aws::String&& value) { SetSlotType(std::move(value)); return *this;} /** *

The type of the slot, either a custom slot type that you defined or one of * the built-in slot types.

*/ inline Slot& WithSlotType(const char* value) { SetSlotType(value); return *this;} /** *

The version of the slot type.

*/ inline const Aws::String& GetSlotTypeVersion() const{ return m_slotTypeVersion; } /** *

The version of the slot type.

*/ inline bool SlotTypeVersionHasBeenSet() const { return m_slotTypeVersionHasBeenSet; } /** *

The version of the slot type.

*/ inline void SetSlotTypeVersion(const Aws::String& value) { m_slotTypeVersionHasBeenSet = true; m_slotTypeVersion = value; } /** *

The version of the slot type.

*/ inline void SetSlotTypeVersion(Aws::String&& value) { m_slotTypeVersionHasBeenSet = true; m_slotTypeVersion = std::move(value); } /** *

The version of the slot type.

*/ inline void SetSlotTypeVersion(const char* value) { m_slotTypeVersionHasBeenSet = true; m_slotTypeVersion.assign(value); } /** *

The version of the slot type.

*/ inline Slot& WithSlotTypeVersion(const Aws::String& value) { SetSlotTypeVersion(value); return *this;} /** *

The version of the slot type.

*/ inline Slot& WithSlotTypeVersion(Aws::String&& value) { SetSlotTypeVersion(std::move(value)); return *this;} /** *

The version of the slot type.

*/ inline Slot& WithSlotTypeVersion(const char* value) { SetSlotTypeVersion(value); return *this;} /** *

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

*/ inline const Prompt& GetValueElicitationPrompt() const{ return m_valueElicitationPrompt; } /** *

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

*/ inline bool ValueElicitationPromptHasBeenSet() const { return m_valueElicitationPromptHasBeenSet; } /** *

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

*/ inline void SetValueElicitationPrompt(const Prompt& value) { m_valueElicitationPromptHasBeenSet = true; m_valueElicitationPrompt = value; } /** *

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

*/ inline void SetValueElicitationPrompt(Prompt&& value) { m_valueElicitationPromptHasBeenSet = true; m_valueElicitationPrompt = std::move(value); } /** *

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

*/ inline Slot& WithValueElicitationPrompt(const Prompt& value) { SetValueElicitationPrompt(value); return *this;} /** *

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

*/ inline Slot& WithValueElicitationPrompt(Prompt&& value) { SetValueElicitationPrompt(std::move(value)); return *this;} /** *

Directs Amazon Lex the order in which to elicit this slot value from the * user. For example, if the intent has two slots with priorities 1 and 2, AWS * Amazon Lex first elicits a value for the slot with priority 1.

If * multiple slots share the same priority, the order in which Amazon Lex elicits * values is arbitrary.

*/ inline int GetPriority() const{ return m_priority; } /** *

Directs Amazon Lex the order in which to elicit this slot value from the * user. For example, if the intent has two slots with priorities 1 and 2, AWS * Amazon Lex first elicits a value for the slot with priority 1.

If * multiple slots share the same priority, the order in which Amazon Lex elicits * values is arbitrary.

*/ inline bool PriorityHasBeenSet() const { return m_priorityHasBeenSet; } /** *

Directs Amazon Lex the order in which to elicit this slot value from the * user. For example, if the intent has two slots with priorities 1 and 2, AWS * Amazon Lex first elicits a value for the slot with priority 1.

If * multiple slots share the same priority, the order in which Amazon Lex elicits * values is arbitrary.

*/ inline void SetPriority(int value) { m_priorityHasBeenSet = true; m_priority = value; } /** *

Directs Amazon Lex the order in which to elicit this slot value from the * user. For example, if the intent has two slots with priorities 1 and 2, AWS * Amazon Lex first elicits a value for the slot with priority 1.

If * multiple slots share the same priority, the order in which Amazon Lex elicits * values is arbitrary.

*/ inline Slot& WithPriority(int value) { SetPriority(value); return *this;} /** *

If you know a specific pattern with which 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 with which 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 with which 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 with which 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 with which 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 Slot& WithSampleUtterances(const Aws::Vector& value) { SetSampleUtterances(value); return *this;} /** *

If you know a specific pattern with which 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 Slot& WithSampleUtterances(Aws::Vector&& value) { SetSampleUtterances(std::move(value)); return *this;} /** *

If you know a specific pattern with which 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 Slot& AddSampleUtterances(const Aws::String& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances.push_back(value); return *this; } /** *

If you know a specific pattern with which 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 Slot& AddSampleUtterances(Aws::String&& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances.push_back(std::move(value)); return *this; } /** *

If you know a specific pattern with which 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 Slot& AddSampleUtterances(const char* value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances.push_back(value); return *this; } /** *

A set of possible responses for the slot type used by text-based clients. A * user chooses an option from the response card, instead of using text to reply. *

*/ inline const Aws::String& GetResponseCard() const{ return m_responseCard; } /** *

A set of possible responses for the slot type used by text-based clients. A * user chooses an option from the response card, instead of using text to reply. *

*/ inline bool ResponseCardHasBeenSet() const { return m_responseCardHasBeenSet; } /** *

A set of possible responses for the slot type used by text-based clients. A * user chooses an option from the response card, instead of using text to reply. *

*/ inline void SetResponseCard(const Aws::String& value) { m_responseCardHasBeenSet = true; m_responseCard = value; } /** *

A set of possible responses for the slot type used by text-based clients. A * user chooses an option from the response card, instead of using text to reply. *

*/ inline void SetResponseCard(Aws::String&& value) { m_responseCardHasBeenSet = true; m_responseCard = std::move(value); } /** *

A set of possible responses for the slot type used by text-based clients. A * user chooses an option from the response card, instead of using text to reply. *

*/ inline void SetResponseCard(const char* value) { m_responseCardHasBeenSet = true; m_responseCard.assign(value); } /** *

A set of possible responses for the slot type used by text-based clients. A * user chooses an option from the response card, instead of using text to reply. *

*/ inline Slot& WithResponseCard(const Aws::String& value) { SetResponseCard(value); return *this;} /** *

A set of possible responses for the slot type used by text-based clients. A * user chooses an option from the response card, instead of using text to reply. *

*/ inline Slot& WithResponseCard(Aws::String&& value) { SetResponseCard(std::move(value)); return *this;} /** *

A set of possible responses for the slot type used by text-based clients. A * user chooses an option from the response card, instead of using text to reply. *

*/ inline Slot& WithResponseCard(const char* value) { SetResponseCard(value); return *this;} /** *

Determines whether a slot is obfuscated in conversation logs and stored * utterances. When you obfuscate a slot, the value is replaced by the slot name in * curly braces ({}). For example, if the slot name is "full_name", obfuscated * values are replaced with "{full_name}". For more information, see Slot * Obfuscation .

*/ inline const ObfuscationSetting& GetObfuscationSetting() const{ return m_obfuscationSetting; } /** *

Determines whether a slot is obfuscated in conversation logs and stored * utterances. When you obfuscate a slot, the value is replaced by the slot name in * curly braces ({}). For example, if the slot name is "full_name", obfuscated * values are replaced with "{full_name}". For more information, see Slot * Obfuscation .

*/ inline bool ObfuscationSettingHasBeenSet() const { return m_obfuscationSettingHasBeenSet; } /** *

Determines whether a slot is obfuscated in conversation logs and stored * utterances. When you obfuscate a slot, the value is replaced by the slot name in * curly braces ({}). For example, if the slot name is "full_name", obfuscated * values are replaced with "{full_name}". For more information, see Slot * Obfuscation .

*/ inline void SetObfuscationSetting(const ObfuscationSetting& value) { m_obfuscationSettingHasBeenSet = true; m_obfuscationSetting = value; } /** *

Determines whether a slot is obfuscated in conversation logs and stored * utterances. When you obfuscate a slot, the value is replaced by the slot name in * curly braces ({}). For example, if the slot name is "full_name", obfuscated * values are replaced with "{full_name}". For more information, see Slot * Obfuscation .

*/ inline void SetObfuscationSetting(ObfuscationSetting&& value) { m_obfuscationSettingHasBeenSet = true; m_obfuscationSetting = std::move(value); } /** *

Determines whether a slot is obfuscated in conversation logs and stored * utterances. When you obfuscate a slot, the value is replaced by the slot name in * curly braces ({}). For example, if the slot name is "full_name", obfuscated * values are replaced with "{full_name}". For more information, see Slot * Obfuscation .

*/ inline Slot& WithObfuscationSetting(const ObfuscationSetting& value) { SetObfuscationSetting(value); return *this;} /** *

Determines whether a slot is obfuscated in conversation logs and stored * utterances. When you obfuscate a slot, the value is replaced by the slot name in * curly braces ({}). For example, if the slot name is "full_name", obfuscated * values are replaced with "{full_name}". For more information, see Slot * Obfuscation .

*/ inline Slot& WithObfuscationSetting(ObfuscationSetting&& value) { SetObfuscationSetting(std::move(value)); return *this;} /** *

A list of default values for the 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 SlotDefaultValueSpec& GetDefaultValueSpec() const{ return m_defaultValueSpec; } /** *

A list of default values for the 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 DefaultValueSpecHasBeenSet() const { return m_defaultValueSpecHasBeenSet; } /** *

A list of default values for the 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 SetDefaultValueSpec(const SlotDefaultValueSpec& value) { m_defaultValueSpecHasBeenSet = true; m_defaultValueSpec = value; } /** *

A list of default values for the 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 SetDefaultValueSpec(SlotDefaultValueSpec&& value) { m_defaultValueSpecHasBeenSet = true; m_defaultValueSpec = std::move(value); } /** *

A list of default values for the 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 Slot& WithDefaultValueSpec(const SlotDefaultValueSpec& value) { SetDefaultValueSpec(value); return *this;} /** *

A list of default values for the 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 Slot& WithDefaultValueSpec(SlotDefaultValueSpec&& value) { SetDefaultValueSpec(std::move(value)); return *this;} private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; SlotConstraint m_slotConstraint; bool m_slotConstraintHasBeenSet = false; Aws::String m_slotType; bool m_slotTypeHasBeenSet = false; Aws::String m_slotTypeVersion; bool m_slotTypeVersionHasBeenSet = false; Prompt m_valueElicitationPrompt; bool m_valueElicitationPromptHasBeenSet = false; int m_priority; bool m_priorityHasBeenSet = false; Aws::Vector m_sampleUtterances; bool m_sampleUtterancesHasBeenSet = false; Aws::String m_responseCard; bool m_responseCardHasBeenSet = false; ObfuscationSetting m_obfuscationSetting; bool m_obfuscationSettingHasBeenSet = false; SlotDefaultValueSpec m_defaultValueSpec; bool m_defaultValueSpecHasBeenSet = false; }; } // namespace Model } // namespace LexModelBuildingService } // namespace Aws