createSlot method

Future<CreateSlotResponse> createSlot({
  1. required String botId,
  2. required String botVersion,
  3. required String intentId,
  4. required String localeId,
  5. required String slotName,
  6. required SlotValueElicitationSetting valueElicitationSetting,
  7. String? description,
  8. MultipleValuesSetting? multipleValuesSetting,
  9. ObfuscationSetting? obfuscationSetting,
  10. String? slotTypeId,
  11. SubSlotSetting? subSlotSetting,
})

Creates a slot in an intent. A slot is a variable needed to fulfill an intent. For example, an OrderPizza intent might need slots for size, crust, and number of pizzas. For each slot, you define one or more utterances that Amazon Lex uses to elicit a response from the user.

May throw ConflictException. May throw InternalServerException. May throw PreconditionFailedException. May throw ServiceQuotaExceededException. May throw ThrottlingException. May throw ValidationException.

Parameter botId : The identifier of the bot associated with the slot.

Parameter botVersion : The version of the bot associated with the slot.

Parameter intentId : The identifier of the intent that contains the slot.

Parameter localeId : The identifier of the language and locale that the slot will be used in. The string must match one of the supported locales. All of the bots, intents, slot types used by the slot must have the same locale. For more information, see Supported languages.

Parameter slotName : The name of the slot. Slot names must be unique within the bot that contains the slot.

Parameter valueElicitationSetting : Specifies prompts that Amazon Lex sends to the user to elicit a response that provides the value for the slot.

Parameter description : A description of the slot. Use this to help identify the slot in lists.

Parameter multipleValuesSetting : Indicates whether the slot returns multiple values in one response. Multi-value slots are only available in the en-US locale. If you set this value to true in any other locale, Amazon Lex throws a ValidationException.

If the multipleValuesSetting is not set, the default value is false.

Parameter obfuscationSetting : Determines how slot values are used in Amazon CloudWatch logs. If the value of the obfuscationSetting parameter is DefaultObfuscation, slot values are obfuscated in the log output. If the value is None, the actual value is present in the log output.

The default is to obfuscate values in the CloudWatch logs.

Parameter slotTypeId : The unique identifier for the slot type associated with this slot. The slot type determines the values that can be entered into the slot.

Parameter subSlotSetting : Specifications for the constituent sub slots and the expression for the composite slot.

Implementation

Future<CreateSlotResponse> createSlot({
  required String botId,
  required String botVersion,
  required String intentId,
  required String localeId,
  required String slotName,
  required SlotValueElicitationSetting valueElicitationSetting,
  String? description,
  MultipleValuesSetting? multipleValuesSetting,
  ObfuscationSetting? obfuscationSetting,
  String? slotTypeId,
  SubSlotSetting? subSlotSetting,
}) async {
  final $payload = <String, dynamic>{
    'slotName': slotName,
    'valueElicitationSetting': valueElicitationSetting,
    if (description != null) 'description': description,
    if (multipleValuesSetting != null)
      'multipleValuesSetting': multipleValuesSetting,
    if (obfuscationSetting != null) 'obfuscationSetting': obfuscationSetting,
    if (slotTypeId != null) 'slotTypeId': slotTypeId,
    if (subSlotSetting != null) 'subSlotSetting': subSlotSetting,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'PUT',
    requestUri:
        '/bots/${Uri.encodeComponent(botId)}/botversions/${Uri.encodeComponent(botVersion)}/botlocales/${Uri.encodeComponent(localeId)}/intents/${Uri.encodeComponent(intentId)}/slots',
    exceptionFnMap: _exceptionFns,
  );
  return CreateSlotResponse.fromJson(response);
}