class Aws::LexModelsV2::Types::CreateIntentRequest

@note When making an API call, you may pass CreateIntentRequest

data as a hash:

    {
      intent_name: "Name", # required
      description: "Description",
      parent_intent_signature: "IntentSignature",
      sample_utterances: [
        {
          utterance: "Utterance", # required
        },
      ],
      dialog_code_hook: {
        enabled: false, # required
      },
      fulfillment_code_hook: {
        enabled: false, # required
      },
      intent_confirmation_setting: {
        prompt_specification: { # required
          message_groups: [ # required
            {
              message: { # required
                plain_text_message: {
                  value: "PlainTextMessageValue", # required
                },
                custom_payload: {
                  value: "CustomPayloadValue", # required
                },
                ssml_message: {
                  value: "SSMLMessageValue", # required
                },
                image_response_card: {
                  title: "AttachmentTitle", # required
                  subtitle: "AttachmentTitle",
                  image_url: "AttachmentUrl",
                  buttons: [
                    {
                      text: "ButtonText", # required
                      value: "ButtonValue", # required
                    },
                  ],
                },
              },
              variations: [
                {
                  plain_text_message: {
                    value: "PlainTextMessageValue", # required
                  },
                  custom_payload: {
                    value: "CustomPayloadValue", # required
                  },
                  ssml_message: {
                    value: "SSMLMessageValue", # required
                  },
                  image_response_card: {
                    title: "AttachmentTitle", # required
                    subtitle: "AttachmentTitle",
                    image_url: "AttachmentUrl",
                    buttons: [
                      {
                        text: "ButtonText", # required
                        value: "ButtonValue", # required
                      },
                    ],
                  },
                },
              ],
            },
          ],
          max_retries: 1, # required
          allow_interrupt: false,
        },
        declination_response: { # required
          message_groups: [ # required
            {
              message: { # required
                plain_text_message: {
                  value: "PlainTextMessageValue", # required
                },
                custom_payload: {
                  value: "CustomPayloadValue", # required
                },
                ssml_message: {
                  value: "SSMLMessageValue", # required
                },
                image_response_card: {
                  title: "AttachmentTitle", # required
                  subtitle: "AttachmentTitle",
                  image_url: "AttachmentUrl",
                  buttons: [
                    {
                      text: "ButtonText", # required
                      value: "ButtonValue", # required
                    },
                  ],
                },
              },
              variations: [
                {
                  plain_text_message: {
                    value: "PlainTextMessageValue", # required
                  },
                  custom_payload: {
                    value: "CustomPayloadValue", # required
                  },
                  ssml_message: {
                    value: "SSMLMessageValue", # required
                  },
                  image_response_card: {
                    title: "AttachmentTitle", # required
                    subtitle: "AttachmentTitle",
                    image_url: "AttachmentUrl",
                    buttons: [
                      {
                        text: "ButtonText", # required
                        value: "ButtonValue", # required
                      },
                    ],
                  },
                },
              ],
            },
          ],
          allow_interrupt: false,
        },
        active: false,
      },
      intent_closing_setting: {
        closing_response: { # required
          message_groups: [ # required
            {
              message: { # required
                plain_text_message: {
                  value: "PlainTextMessageValue", # required
                },
                custom_payload: {
                  value: "CustomPayloadValue", # required
                },
                ssml_message: {
                  value: "SSMLMessageValue", # required
                },
                image_response_card: {
                  title: "AttachmentTitle", # required
                  subtitle: "AttachmentTitle",
                  image_url: "AttachmentUrl",
                  buttons: [
                    {
                      text: "ButtonText", # required
                      value: "ButtonValue", # required
                    },
                  ],
                },
              },
              variations: [
                {
                  plain_text_message: {
                    value: "PlainTextMessageValue", # required
                  },
                  custom_payload: {
                    value: "CustomPayloadValue", # required
                  },
                  ssml_message: {
                    value: "SSMLMessageValue", # required
                  },
                  image_response_card: {
                    title: "AttachmentTitle", # required
                    subtitle: "AttachmentTitle",
                    image_url: "AttachmentUrl",
                    buttons: [
                      {
                        text: "ButtonText", # required
                        value: "ButtonValue", # required
                      },
                    ],
                  },
                },
              ],
            },
          ],
          allow_interrupt: false,
        },
        active: false,
      },
      input_contexts: [
        {
          name: "Name", # required
        },
      ],
      output_contexts: [
        {
          name: "Name", # required
          time_to_live_in_seconds: 1, # required
          turns_to_live: 1, # required
        },
      ],
      kendra_configuration: {
        kendra_index: "KendraIndexArn", # required
        query_filter_string_enabled: false,
        query_filter_string: "QueryFilterString",
      },
      bot_id: "Id", # required
      bot_version: "DraftBotVersion", # required
      locale_id: "LocaleId", # required
    }

@!attribute [rw] intent_name

The name of the intent. Intent names must be unique in the locale
that contains the intent and cannot match the name of any built-in
intent.
@return [String]

@!attribute [rw] description

A description of the intent. Use the description to help identify
the intent in lists.
@return [String]

@!attribute [rw] parent_intent_signature

A unique identifier for the built-in intent to base this intent on.
@return [String]

@!attribute [rw] sample_utterances

An array of strings that a user might say to signal the intent. For
example, "I want a pizza", or "I want a \\\{PizzaSize\\} pizza".

In an utterance, slot names are enclosed in curly braces ("\\\{",
"\\}") to indicate where they should be displayed in the utterance
shown to the user..
@return [Array<Types::SampleUtterance>]

@!attribute [rw] dialog_code_hook

Specifies that Amazon Lex invokes the alias Lambda function for each
user input. You can invoke this Lambda function to personalize user
interaction.

For example, suppose that your bot determines that the user's name
is John. You Lambda function might retrieve John's information from
a backend database and prepopulate some of the values. For example,
if you find that John is gluten intolerant, you might set the
corresponding intent slot, `glutenIntolerant` to `true`. You might
find John's phone number and set the corresponding session
attribute.
@return [Types::DialogCodeHookSettings]

@!attribute [rw] fulfillment_code_hook

Specifies that Amazon Lex invokes the alias Lambda function when the
intent is ready for fulfillment. You can invoke this function to
complete the bot's transaction with the user.

For example, in a pizza ordering bot, the Lambda function can look
up the closest pizza restaurant to the customer's location and then
place an order on the customer's behalf.
@return [Types::FulfillmentCodeHookSettings]

@!attribute [rw] intent_confirmation_setting

Provides prompts that Amazon Lex sends to the user to confirm the
completion of an intent. If the user answers "no," the settings
contain a statement that is sent to the user to end the intent.
@return [Types::IntentConfirmationSetting]

@!attribute [rw] intent_closing_setting

Sets the response that Amazon Lex sends to the user when the intent
is closed.
@return [Types::IntentClosingSetting]

@!attribute [rw] input_contexts

A list of contexts that must be active for this intent to be
considered by Amazon Lex.

When an intent has an input context list, Amazon Lex only considers
using the intent in an interaction with the user when the specified
contexts are included in the active context list for the session. If
the contexts are not active, then Amazon Lex will not use the
intent.

A context can be automatically activated using the `outputContexts`
property or it can be set at runtime.

For example, if there are two intents with different input contexts
that respond to the same utterances, only the intent with the active
context will respond.

An intent may have up to 5 input contexts. If an intent has multiple
input contexts, all of the contexts must be active to consider the
intent.
@return [Array<Types::InputContext>]

@!attribute [rw] output_contexts

A lists of contexts that the intent activates when it is fulfilled.

You can use an output context to indicate the intents that Amazon
Lex should consider for the next turn of the conversation with a
customer.

When you use the `outputContextsList` property, all of the contexts
specified in the list are activated when the intent is fulfilled.
You can set up to 10 output contexts. You can also set the number of
conversation turns that the context should be active, or the length
of time that the context should be active.
@return [Array<Types::OutputContext>]

@!attribute [rw] kendra_configuration

Configuration information required to use the
`AMAZON.KendraSearchIntent` intent to connect to an Amazon Kendra
index. The `AMAZON.KendraSearchIntent` intent is called when Amazon
Lex can't determine another intent to invoke.
@return [Types::KendraConfiguration]

@!attribute [rw] bot_id

The identifier of the bot associated with this intent.
@return [String]

@!attribute [rw] bot_version

The identifier of the version of the bot associated with this
intent.
@return [String]

@!attribute [rw] locale_id

The identifier of the language and locale where this intent is used.
All of the bots, slot types, and slots used by the intent must have
the same locale. For more information, see [Supported languages][1].

[1]: https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html
@return [String]

@see docs.aws.amazon.com/goto/WebAPI/models.lex.v2-2020-08-07/CreateIntentRequest AWS API Documentation

Constants

SENSITIVE