NAME

Paws::LexModelsV2::CreateIntent - Arguments for method CreateIntent on Paws::LexModelsV2

DESCRIPTION

This class represents the parameters used for calling the method CreateIntent on the Amazon Lex Model Building V2 service. Use the attributes of this class as arguments to method CreateIntent.

You shouldn't make instances of this class. Each attribute should be used as a named argument in the call to CreateIntent.

SYNOPSIS

my $models-v2-lex = Paws->service('LexModelsV2');
my $CreateIntentResponse = $models - v2 -lex->CreateIntent(
  BotId          => 'MyId',
  BotVersion     => 'MyDraftBotVersion',
  IntentName     => 'MyName',
  LocaleId       => 'MyLocaleId',
  Description    => 'MyDescription',       # OPTIONAL
  DialogCodeHook => {
    Enabled => 1,

  },                                       # OPTIONAL
  FulfillmentCodeHook => {
    Enabled => 1,

  },                                       # OPTIONAL
  InputContexts => [
    {
      Name => 'MyName',                    # min: 1, max: 100

    },
    ...
  ],    # OPTIONAL
  IntentClosingSetting => {
    ClosingResponse => {
      MessageGroups => [
        {
          Message => {
            CustomPayload => {
              Value => 'MyCustomPayloadValue',    # min: 1, max: 1000

            },    # OPTIONAL
            ImageResponseCard => {
              Title   => 'MyAttachmentTitle',    # min: 1, max: 250
              Buttons => [
                {
                  Text  => 'MyButtonText',     # min: 1, max: 50
                  Value => 'MyButtonValue',    # min: 1, max: 50

                },
                ...
              ],    # max: 5; OPTIONAL
              ImageUrl => 'MyAttachmentUrl',    # min: 1, max: 250; OPTIONAL
              Subtitle => 'MyAttachmentTitle',  # min: 1, max: 250
            },    # OPTIONAL
            PlainTextMessage => {
              Value => 'MyPlainTextMessageValue',    # min: 1, max: 1000

            },    # OPTIONAL
            SsmlMessage => {
              Value => 'MySSMLMessageValue',    # min: 1, max: 1000

            },    # OPTIONAL
          },
          Variations => [
            {
              CustomPayload => {
                Value => 'MyCustomPayloadValue',    # min: 1, max: 1000

              },    # OPTIONAL
              ImageResponseCard => {
                Title   => 'MyAttachmentTitle',    # min: 1, max: 250
                Buttons => [
                  {
                    Text  => 'MyButtonText',     # min: 1, max: 50
                    Value => 'MyButtonValue',    # min: 1, max: 50

                  },
                  ...
                ],    # max: 5; OPTIONAL
                ImageUrl => 'MyAttachmentUrl',  # min: 1, max: 250; OPTIONAL
                Subtitle => 'MyAttachmentTitle',    # min: 1, max: 250
              },    # OPTIONAL
              PlainTextMessage => {
                Value => 'MyPlainTextMessageValue',    # min: 1, max: 1000

              },    # OPTIONAL
              SsmlMessage => {
                Value => 'MySSMLMessageValue',    # min: 1, max: 1000

              },    # OPTIONAL
            },
            ...
          ],    # max: 2; OPTIONAL
        },
        ...
      ],    # min: 1, max: 5
      AllowInterrupt => 1,    # OPTIONAL
    },

  },    # OPTIONAL
  IntentConfirmationSetting => {
    DeclinationResponse => {
      MessageGroups => [
        {
          Message => {
            CustomPayload => {
              Value => 'MyCustomPayloadValue',    # min: 1, max: 1000

            },    # OPTIONAL
            ImageResponseCard => {
              Title   => 'MyAttachmentTitle',    # min: 1, max: 250
              Buttons => [
                {
                  Text  => 'MyButtonText',     # min: 1, max: 50
                  Value => 'MyButtonValue',    # min: 1, max: 50

                },
                ...
              ],    # max: 5; OPTIONAL
              ImageUrl => 'MyAttachmentUrl',    # min: 1, max: 250; OPTIONAL
              Subtitle => 'MyAttachmentTitle',  # min: 1, max: 250
            },    # OPTIONAL
            PlainTextMessage => {
              Value => 'MyPlainTextMessageValue',    # min: 1, max: 1000

            },    # OPTIONAL
            SsmlMessage => {
              Value => 'MySSMLMessageValue',    # min: 1, max: 1000

            },    # OPTIONAL
          },
          Variations => [
            {
              CustomPayload => {
                Value => 'MyCustomPayloadValue',    # min: 1, max: 1000

              },    # OPTIONAL
              ImageResponseCard => {
                Title   => 'MyAttachmentTitle',    # min: 1, max: 250
                Buttons => [
                  {
                    Text  => 'MyButtonText',     # min: 1, max: 50
                    Value => 'MyButtonValue',    # min: 1, max: 50

                  },
                  ...
                ],    # max: 5; OPTIONAL
                ImageUrl => 'MyAttachmentUrl',  # min: 1, max: 250; OPTIONAL
                Subtitle => 'MyAttachmentTitle',    # min: 1, max: 250
              },    # OPTIONAL
              PlainTextMessage => {
                Value => 'MyPlainTextMessageValue',    # min: 1, max: 1000

              },    # OPTIONAL
              SsmlMessage => {
                Value => 'MySSMLMessageValue',    # min: 1, max: 1000

              },    # OPTIONAL
            },
            ...
          ],    # max: 2; OPTIONAL
        },
        ...
      ],    # min: 1, max: 5
      AllowInterrupt => 1,    # OPTIONAL
    },
    PromptSpecification => {
      MaxRetries    => 1,     # max: 5
      MessageGroups => [
        {
          Message => {
            CustomPayload => {
              Value => 'MyCustomPayloadValue',    # min: 1, max: 1000

            },    # OPTIONAL
            ImageResponseCard => {
              Title   => 'MyAttachmentTitle',    # min: 1, max: 250
              Buttons => [
                {
                  Text  => 'MyButtonText',     # min: 1, max: 50
                  Value => 'MyButtonValue',    # min: 1, max: 50

                },
                ...
              ],    # max: 5; OPTIONAL
              ImageUrl => 'MyAttachmentUrl',    # min: 1, max: 250; OPTIONAL
              Subtitle => 'MyAttachmentTitle',  # min: 1, max: 250
            },    # OPTIONAL
            PlainTextMessage => {
              Value => 'MyPlainTextMessageValue',    # min: 1, max: 1000

            },    # OPTIONAL
            SsmlMessage => {
              Value => 'MySSMLMessageValue',    # min: 1, max: 1000

            },    # OPTIONAL
          },
          Variations => [
            {
              CustomPayload => {
                Value => 'MyCustomPayloadValue',    # min: 1, max: 1000

              },    # OPTIONAL
              ImageResponseCard => {
                Title   => 'MyAttachmentTitle',    # min: 1, max: 250
                Buttons => [
                  {
                    Text  => 'MyButtonText',     # min: 1, max: 50
                    Value => 'MyButtonValue',    # min: 1, max: 50

                  },
                  ...
                ],    # max: 5; OPTIONAL
                ImageUrl => 'MyAttachmentUrl',  # min: 1, max: 250; OPTIONAL
                Subtitle => 'MyAttachmentTitle',    # min: 1, max: 250
              },    # OPTIONAL
              PlainTextMessage => {
                Value => 'MyPlainTextMessageValue',    # min: 1, max: 1000

              },    # OPTIONAL
              SsmlMessage => {
                Value => 'MySSMLMessageValue',    # min: 1, max: 1000

              },    # OPTIONAL
            },
            ...
          ],    # max: 2; OPTIONAL
        },
        ...
      ],    # min: 1, max: 5
      AllowInterrupt => 1,    # OPTIONAL
    },

  },    # OPTIONAL
  KendraConfiguration => {
    KendraIndex       => 'MyKendraIndexArn',    # min: 32, max: 2048
    QueryFilterString =>
      'MyQueryFilterString',    # min: 1, max: 5000; OPTIONAL
    QueryFilterStringEnabled => 1,
  },    # OPTIONAL
  OutputContexts => [
    {
      Name                => 'MyName',    # min: 1, max: 100
      TimeToLiveInSeconds => 1,           # min: 5, max: 86400
      TurnsToLive         => 1,           # min: 1, max: 20

    },
    ...
  ],    # OPTIONAL
  ParentIntentSignature => 'MyIntentSignature',    # OPTIONAL
  SampleUtterances      => [
    {
      Utterance => 'MyUtterance',

    },
    ...
  ],                                               # OPTIONAL
);

# Results:
my $BotId                = $CreateIntentResponse->BotId;
my $BotVersion           = $CreateIntentResponse->BotVersion;
my $CreationDateTime     = $CreateIntentResponse->CreationDateTime;
my $Description          = $CreateIntentResponse->Description;
my $DialogCodeHook       = $CreateIntentResponse->DialogCodeHook;
my $FulfillmentCodeHook  = $CreateIntentResponse->FulfillmentCodeHook;
my $InputContexts        = $CreateIntentResponse->InputContexts;
my $IntentClosingSetting = $CreateIntentResponse->IntentClosingSetting;
my $IntentConfirmationSetting =
  $CreateIntentResponse->IntentConfirmationSetting;
my $IntentId              = $CreateIntentResponse->IntentId;
my $IntentName            = $CreateIntentResponse->IntentName;
my $KendraConfiguration   = $CreateIntentResponse->KendraConfiguration;
my $LocaleId              = $CreateIntentResponse->LocaleId;
my $OutputContexts        = $CreateIntentResponse->OutputContexts;
my $ParentIntentSignature = $CreateIntentResponse->ParentIntentSignature;
my $SampleUtterances      = $CreateIntentResponse->SampleUtterances;

# Returns a L<Paws::LexModelsV2::CreateIntentResponse> object.

Values for attributes that are native types (Int, String, Float, etc) can passed as-is (scalar values). Values for complex Types (objects) can be passed as a HashRef. The keys and values of the hashref will be used to instance the underlying object. For the AWS API documentation, see https://docs.aws.amazon.com/goto/WebAPI/models-v2-lex/CreateIntent

ATTRIBUTES

REQUIRED BotId => Str

The identifier of the bot associated with this intent.

REQUIRED BotVersion => Str

The identifier of the version of the bot associated with this intent.

Description => Str

A description of the intent. Use the description to help identify the intent in lists.

DialogCodeHook => Paws::LexModelsV2::DialogCodeHookSettings

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.

FulfillmentCodeHook => Paws::LexModelsV2::FulfillmentCodeHookSettings

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.

InputContexts => ArrayRef[Paws::LexModelsV2::InputContext]

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.

IntentClosingSetting => Paws::LexModelsV2::IntentClosingSetting

Sets the response that Amazon Lex sends to the user when the intent is closed.

IntentConfirmationSetting => Paws::LexModelsV2::IntentConfirmationSetting

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.

REQUIRED IntentName => Str

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.

KendraConfiguration => Paws::LexModelsV2::KendraConfiguration

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.

REQUIRED LocaleId => Str

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 (https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html).

OutputContexts => ArrayRef[Paws::LexModelsV2::OutputContext]

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.

ParentIntentSignature => Str

A unique identifier for the built-in intent to base this intent on.

SampleUtterances => ArrayRef[Paws::LexModelsV2::SampleUtterance]

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..

SEE ALSO

This class forms part of Paws, documenting arguments for method CreateIntent in Paws::LexModelsV2

BUGS and CONTRIBUTIONS

The source code is located here: https://github.com/pplu/aws-sdk-perl

Please report bugs to: https://github.com/pplu/aws-sdk-perl/issues