/** * 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 #include #include #include #include #include #include namespace Aws { namespace LexModelBuildingService { namespace Model { /** */ class PutIntentRequest : public LexModelBuildingServiceRequest { public: AWS_LEXMODELBUILDINGSERVICE_API PutIntentRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "PutIntent"; } AWS_LEXMODELBUILDINGSERVICE_API Aws::String SerializePayload() const override; /** *

The name of the intent. The name is not case sensitive.

The * name can't match a built-in intent name, or a built-in intent name with * "AMAZON." removed. For example, because there is a built-in intent called * AMAZON.HelpIntent, you can't create a custom intent called * HelpIntent.

For a list of built-in intents, see Standard * Built-in Intents in the Alexa Skills Kit.

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

The name of the intent. The name is not case sensitive.

The * name can't match a built-in intent name, or a built-in intent name with * "AMAZON." removed. For example, because there is a built-in intent called * AMAZON.HelpIntent, you can't create a custom intent called * HelpIntent.

For a list of built-in intents, see Standard * Built-in Intents in the Alexa Skills Kit.

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

The name of the intent. The name is not case sensitive.

The * name can't match a built-in intent name, or a built-in intent name with * "AMAZON." removed. For example, because there is a built-in intent called * AMAZON.HelpIntent, you can't create a custom intent called * HelpIntent.

For a list of built-in intents, see Standard * Built-in Intents in the Alexa Skills Kit.

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

The name of the intent. The name is not case sensitive.

The * name can't match a built-in intent name, or a built-in intent name with * "AMAZON." removed. For example, because there is a built-in intent called * AMAZON.HelpIntent, you can't create a custom intent called * HelpIntent.

For a list of built-in intents, see Standard * Built-in Intents in the Alexa Skills Kit.

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

The name of the intent. The name is not case sensitive.

The * name can't match a built-in intent name, or a built-in intent name with * "AMAZON." removed. For example, because there is a built-in intent called * AMAZON.HelpIntent, you can't create a custom intent called * HelpIntent.

For a list of built-in intents, see Standard * Built-in Intents in the Alexa Skills Kit.

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

The name of the intent. The name is not case sensitive.

The * name can't match a built-in intent name, or a built-in intent name with * "AMAZON." removed. For example, because there is a built-in intent called * AMAZON.HelpIntent, you can't create a custom intent called * HelpIntent.

For a list of built-in intents, see Standard * Built-in Intents in the Alexa Skills Kit.

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

The name of the intent. The name is not case sensitive.

The * name can't match a built-in intent name, or a built-in intent name with * "AMAZON." removed. For example, because there is a built-in intent called * AMAZON.HelpIntent, you can't create a custom intent called * HelpIntent.

For a list of built-in intents, see Standard * Built-in Intents in the Alexa Skills Kit.

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

The name of the intent. The name is not case sensitive.

The * name can't match a built-in intent name, or a built-in intent name with * "AMAZON." removed. For example, because there is a built-in intent called * AMAZON.HelpIntent, you can't create a custom intent called * HelpIntent.

For a list of built-in intents, see Standard * Built-in Intents in the Alexa Skills Kit.

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

A description of the intent.

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

A description of the intent.

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

A description of the intent.

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

A description of the intent.

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

A description of the intent.

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

A description of the intent.

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

A description of the intent.

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

A description of the intent.

*/ inline PutIntentRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

An array of intent slots. At runtime, Amazon Lex elicits required slot values * from the user using prompts defined in the slots. For more information, see * how-it-works.

*/ inline const Aws::Vector& GetSlots() const{ return m_slots; } /** *

An array of intent slots. At runtime, Amazon Lex elicits required slot values * from the user using prompts defined in the slots. For more information, see * how-it-works.

*/ inline bool SlotsHasBeenSet() const { return m_slotsHasBeenSet; } /** *

An array of intent slots. At runtime, Amazon Lex elicits required slot values * from the user using prompts defined in the slots. For more information, see * how-it-works.

*/ inline void SetSlots(const Aws::Vector& value) { m_slotsHasBeenSet = true; m_slots = value; } /** *

An array of intent slots. At runtime, Amazon Lex elicits required slot values * from the user using prompts defined in the slots. For more information, see * how-it-works.

*/ inline void SetSlots(Aws::Vector&& value) { m_slotsHasBeenSet = true; m_slots = std::move(value); } /** *

An array of intent slots. At runtime, Amazon Lex elicits required slot values * from the user using prompts defined in the slots. For more information, see * how-it-works.

*/ inline PutIntentRequest& WithSlots(const Aws::Vector& value) { SetSlots(value); return *this;} /** *

An array of intent slots. At runtime, Amazon Lex elicits required slot values * from the user using prompts defined in the slots. For more information, see * how-it-works.

*/ inline PutIntentRequest& WithSlots(Aws::Vector&& value) { SetSlots(std::move(value)); return *this;} /** *

An array of intent slots. At runtime, Amazon Lex elicits required slot values * from the user using prompts defined in the slots. For more information, see * how-it-works.

*/ inline PutIntentRequest& AddSlots(const Slot& value) { m_slotsHasBeenSet = true; m_slots.push_back(value); return *this; } /** *

An array of intent slots. At runtime, Amazon Lex elicits required slot values * from the user using prompts defined in the slots. For more information, see * how-it-works.

*/ inline PutIntentRequest& AddSlots(Slot&& value) { m_slotsHasBeenSet = true; m_slots.push_back(std::move(value)); return *this; } /** *

An array of utterances (strings) that a user might say to signal the intent. * For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas". *

In each utterance, a slot name is enclosed in curly braces.

*/ inline const Aws::Vector& GetSampleUtterances() const{ return m_sampleUtterances; } /** *

An array of utterances (strings) that a user might say to signal the intent. * For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas". *

In each utterance, a slot name is enclosed in curly braces.

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

An array of utterances (strings) that a user might say to signal the intent. * For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas". *

In each utterance, a slot name is enclosed in curly braces.

*/ inline void SetSampleUtterances(const Aws::Vector& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances = value; } /** *

An array of utterances (strings) that a user might say to signal the intent. * For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas". *

In each utterance, a slot name is enclosed in curly braces.

*/ inline void SetSampleUtterances(Aws::Vector&& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances = std::move(value); } /** *

An array of utterances (strings) that a user might say to signal the intent. * For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas". *

In each utterance, a slot name is enclosed in curly braces.

*/ inline PutIntentRequest& WithSampleUtterances(const Aws::Vector& value) { SetSampleUtterances(value); return *this;} /** *

An array of utterances (strings) that a user might say to signal the intent. * For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas". *

In each utterance, a slot name is enclosed in curly braces.

*/ inline PutIntentRequest& WithSampleUtterances(Aws::Vector&& value) { SetSampleUtterances(std::move(value)); return *this;} /** *

An array of utterances (strings) that a user might say to signal the intent. * For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas". *

In each utterance, a slot name is enclosed in curly braces.

*/ inline PutIntentRequest& AddSampleUtterances(const Aws::String& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances.push_back(value); return *this; } /** *

An array of utterances (strings) that a user might say to signal the intent. * For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas". *

In each utterance, a slot name is enclosed in curly braces.

*/ inline PutIntentRequest& AddSampleUtterances(Aws::String&& value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances.push_back(std::move(value)); return *this; } /** *

An array of utterances (strings) that a user might say to signal the intent. * For example, "I want {PizzaSize} pizza", "Order {Quantity} {PizzaSize} pizzas". *

In each utterance, a slot name is enclosed in curly braces.

*/ inline PutIntentRequest& AddSampleUtterances(const char* value) { m_sampleUtterancesHasBeenSet = true; m_sampleUtterances.push_back(value); return *this; } /** *

Prompts the user to confirm the intent. This question should have a yes or no * answer.

Amazon Lex uses this prompt to ensure that the user acknowledges * that the intent is ready for fulfillment. For example, with the * OrderPizza intent, you might want to confirm that the order is * correct before placing it. For other intents, such as intents that simply * respond to user questions, you might not need to ask the user for confirmation * before providing the information.

You you must provide both the * rejectionStatement and the confirmationPrompt, or * neither.

*/ inline const Prompt& GetConfirmationPrompt() const{ return m_confirmationPrompt; } /** *

Prompts the user to confirm the intent. This question should have a yes or no * answer.

Amazon Lex uses this prompt to ensure that the user acknowledges * that the intent is ready for fulfillment. For example, with the * OrderPizza intent, you might want to confirm that the order is * correct before placing it. For other intents, such as intents that simply * respond to user questions, you might not need to ask the user for confirmation * before providing the information.

You you must provide both the * rejectionStatement and the confirmationPrompt, or * neither.

*/ inline bool ConfirmationPromptHasBeenSet() const { return m_confirmationPromptHasBeenSet; } /** *

Prompts the user to confirm the intent. This question should have a yes or no * answer.

Amazon Lex uses this prompt to ensure that the user acknowledges * that the intent is ready for fulfillment. For example, with the * OrderPizza intent, you might want to confirm that the order is * correct before placing it. For other intents, such as intents that simply * respond to user questions, you might not need to ask the user for confirmation * before providing the information.

You you must provide both the * rejectionStatement and the confirmationPrompt, or * neither.

*/ inline void SetConfirmationPrompt(const Prompt& value) { m_confirmationPromptHasBeenSet = true; m_confirmationPrompt = value; } /** *

Prompts the user to confirm the intent. This question should have a yes or no * answer.

Amazon Lex uses this prompt to ensure that the user acknowledges * that the intent is ready for fulfillment. For example, with the * OrderPizza intent, you might want to confirm that the order is * correct before placing it. For other intents, such as intents that simply * respond to user questions, you might not need to ask the user for confirmation * before providing the information.

You you must provide both the * rejectionStatement and the confirmationPrompt, or * neither.

*/ inline void SetConfirmationPrompt(Prompt&& value) { m_confirmationPromptHasBeenSet = true; m_confirmationPrompt = std::move(value); } /** *

Prompts the user to confirm the intent. This question should have a yes or no * answer.

Amazon Lex uses this prompt to ensure that the user acknowledges * that the intent is ready for fulfillment. For example, with the * OrderPizza intent, you might want to confirm that the order is * correct before placing it. For other intents, such as intents that simply * respond to user questions, you might not need to ask the user for confirmation * before providing the information.

You you must provide both the * rejectionStatement and the confirmationPrompt, or * neither.

*/ inline PutIntentRequest& WithConfirmationPrompt(const Prompt& value) { SetConfirmationPrompt(value); return *this;} /** *

Prompts the user to confirm the intent. This question should have a yes or no * answer.

Amazon Lex uses this prompt to ensure that the user acknowledges * that the intent is ready for fulfillment. For example, with the * OrderPizza intent, you might want to confirm that the order is * correct before placing it. For other intents, such as intents that simply * respond to user questions, you might not need to ask the user for confirmation * before providing the information.

You you must provide both the * rejectionStatement and the confirmationPrompt, or * neither.

*/ inline PutIntentRequest& WithConfirmationPrompt(Prompt&& value) { SetConfirmationPrompt(std::move(value)); return *this;} /** *

When the user answers "no" to the question defined in * confirmationPrompt, Amazon Lex responds with this statement to * acknowledge that the intent was canceled.

You must provide both * the rejectionStatement and the confirmationPrompt, or * neither.

*/ inline const Statement& GetRejectionStatement() const{ return m_rejectionStatement; } /** *

When the user answers "no" to the question defined in * confirmationPrompt, Amazon Lex responds with this statement to * acknowledge that the intent was canceled.

You must provide both * the rejectionStatement and the confirmationPrompt, or * neither.

*/ inline bool RejectionStatementHasBeenSet() const { return m_rejectionStatementHasBeenSet; } /** *

When the user answers "no" to the question defined in * confirmationPrompt, Amazon Lex responds with this statement to * acknowledge that the intent was canceled.

You must provide both * the rejectionStatement and the confirmationPrompt, or * neither.

*/ inline void SetRejectionStatement(const Statement& value) { m_rejectionStatementHasBeenSet = true; m_rejectionStatement = value; } /** *

When the user answers "no" to the question defined in * confirmationPrompt, Amazon Lex responds with this statement to * acknowledge that the intent was canceled.

You must provide both * the rejectionStatement and the confirmationPrompt, or * neither.

*/ inline void SetRejectionStatement(Statement&& value) { m_rejectionStatementHasBeenSet = true; m_rejectionStatement = std::move(value); } /** *

When the user answers "no" to the question defined in * confirmationPrompt, Amazon Lex responds with this statement to * acknowledge that the intent was canceled.

You must provide both * the rejectionStatement and the confirmationPrompt, or * neither.

*/ inline PutIntentRequest& WithRejectionStatement(const Statement& value) { SetRejectionStatement(value); return *this;} /** *

When the user answers "no" to the question defined in * confirmationPrompt, Amazon Lex responds with this statement to * acknowledge that the intent was canceled.

You must provide both * the rejectionStatement and the confirmationPrompt, or * neither.

*/ inline PutIntentRequest& WithRejectionStatement(Statement&& value) { SetRejectionStatement(std::move(value)); return *this;} /** *

Amazon Lex uses this prompt to solicit additional activity after fulfilling * an intent. For example, after the OrderPizza intent is fulfilled, * you might prompt the user to order a drink.

The action that Amazon Lex * takes depends on the user's response, as follows:

  • If the user * says "Yes" it responds with the clarification prompt that is configured for the * bot.

  • if the user says "Yes" and continues with an utterance * that triggers an intent it starts a conversation for the intent.

  • *

    If the user says "No" it responds with the rejection statement configured for * the the follow-up prompt.

  • If it doesn't recognize the * utterance it repeats the follow-up prompt again.

The * followUpPrompt field and the conclusionStatement field * are mutually exclusive. You can specify only one.

*/ inline const FollowUpPrompt& GetFollowUpPrompt() const{ return m_followUpPrompt; } /** *

Amazon Lex uses this prompt to solicit additional activity after fulfilling * an intent. For example, after the OrderPizza intent is fulfilled, * you might prompt the user to order a drink.

The action that Amazon Lex * takes depends on the user's response, as follows:

  • If the user * says "Yes" it responds with the clarification prompt that is configured for the * bot.

  • if the user says "Yes" and continues with an utterance * that triggers an intent it starts a conversation for the intent.

  • *

    If the user says "No" it responds with the rejection statement configured for * the the follow-up prompt.

  • If it doesn't recognize the * utterance it repeats the follow-up prompt again.

The * followUpPrompt field and the conclusionStatement field * are mutually exclusive. You can specify only one.

*/ inline bool FollowUpPromptHasBeenSet() const { return m_followUpPromptHasBeenSet; } /** *

Amazon Lex uses this prompt to solicit additional activity after fulfilling * an intent. For example, after the OrderPizza intent is fulfilled, * you might prompt the user to order a drink.

The action that Amazon Lex * takes depends on the user's response, as follows:

  • If the user * says "Yes" it responds with the clarification prompt that is configured for the * bot.

  • if the user says "Yes" and continues with an utterance * that triggers an intent it starts a conversation for the intent.

  • *

    If the user says "No" it responds with the rejection statement configured for * the the follow-up prompt.

  • If it doesn't recognize the * utterance it repeats the follow-up prompt again.

The * followUpPrompt field and the conclusionStatement field * are mutually exclusive. You can specify only one.

*/ inline void SetFollowUpPrompt(const FollowUpPrompt& value) { m_followUpPromptHasBeenSet = true; m_followUpPrompt = value; } /** *

Amazon Lex uses this prompt to solicit additional activity after fulfilling * an intent. For example, after the OrderPizza intent is fulfilled, * you might prompt the user to order a drink.

The action that Amazon Lex * takes depends on the user's response, as follows:

  • If the user * says "Yes" it responds with the clarification prompt that is configured for the * bot.

  • if the user says "Yes" and continues with an utterance * that triggers an intent it starts a conversation for the intent.

  • *

    If the user says "No" it responds with the rejection statement configured for * the the follow-up prompt.

  • If it doesn't recognize the * utterance it repeats the follow-up prompt again.

The * followUpPrompt field and the conclusionStatement field * are mutually exclusive. You can specify only one.

*/ inline void SetFollowUpPrompt(FollowUpPrompt&& value) { m_followUpPromptHasBeenSet = true; m_followUpPrompt = std::move(value); } /** *

Amazon Lex uses this prompt to solicit additional activity after fulfilling * an intent. For example, after the OrderPizza intent is fulfilled, * you might prompt the user to order a drink.

The action that Amazon Lex * takes depends on the user's response, as follows:

  • If the user * says "Yes" it responds with the clarification prompt that is configured for the * bot.

  • if the user says "Yes" and continues with an utterance * that triggers an intent it starts a conversation for the intent.

  • *

    If the user says "No" it responds with the rejection statement configured for * the the follow-up prompt.

  • If it doesn't recognize the * utterance it repeats the follow-up prompt again.

The * followUpPrompt field and the conclusionStatement field * are mutually exclusive. You can specify only one.

*/ inline PutIntentRequest& WithFollowUpPrompt(const FollowUpPrompt& value) { SetFollowUpPrompt(value); return *this;} /** *

Amazon Lex uses this prompt to solicit additional activity after fulfilling * an intent. For example, after the OrderPizza intent is fulfilled, * you might prompt the user to order a drink.

The action that Amazon Lex * takes depends on the user's response, as follows:

  • If the user * says "Yes" it responds with the clarification prompt that is configured for the * bot.

  • if the user says "Yes" and continues with an utterance * that triggers an intent it starts a conversation for the intent.

  • *

    If the user says "No" it responds with the rejection statement configured for * the the follow-up prompt.

  • If it doesn't recognize the * utterance it repeats the follow-up prompt again.

The * followUpPrompt field and the conclusionStatement field * are mutually exclusive. You can specify only one.

*/ inline PutIntentRequest& WithFollowUpPrompt(FollowUpPrompt&& value) { SetFollowUpPrompt(std::move(value)); return *this;} /** *

The statement that you want Amazon Lex to convey to the user after the * intent is successfully fulfilled by the Lambda function.

This element is * relevant only if you provide a Lambda function in the * fulfillmentActivity. If you return the intent to the client * application, you can't specify this element.

The * followUpPrompt and conclusionStatement are mutually * exclusive. You can specify only one.

*/ inline const Statement& GetConclusionStatement() const{ return m_conclusionStatement; } /** *

The statement that you want Amazon Lex to convey to the user after the * intent is successfully fulfilled by the Lambda function.

This element is * relevant only if you provide a Lambda function in the * fulfillmentActivity. If you return the intent to the client * application, you can't specify this element.

The * followUpPrompt and conclusionStatement are mutually * exclusive. You can specify only one.

*/ inline bool ConclusionStatementHasBeenSet() const { return m_conclusionStatementHasBeenSet; } /** *

The statement that you want Amazon Lex to convey to the user after the * intent is successfully fulfilled by the Lambda function.

This element is * relevant only if you provide a Lambda function in the * fulfillmentActivity. If you return the intent to the client * application, you can't specify this element.

The * followUpPrompt and conclusionStatement are mutually * exclusive. You can specify only one.

*/ inline void SetConclusionStatement(const Statement& value) { m_conclusionStatementHasBeenSet = true; m_conclusionStatement = value; } /** *

The statement that you want Amazon Lex to convey to the user after the * intent is successfully fulfilled by the Lambda function.

This element is * relevant only if you provide a Lambda function in the * fulfillmentActivity. If you return the intent to the client * application, you can't specify this element.

The * followUpPrompt and conclusionStatement are mutually * exclusive. You can specify only one.

*/ inline void SetConclusionStatement(Statement&& value) { m_conclusionStatementHasBeenSet = true; m_conclusionStatement = std::move(value); } /** *

The statement that you want Amazon Lex to convey to the user after the * intent is successfully fulfilled by the Lambda function.

This element is * relevant only if you provide a Lambda function in the * fulfillmentActivity. If you return the intent to the client * application, you can't specify this element.

The * followUpPrompt and conclusionStatement are mutually * exclusive. You can specify only one.

*/ inline PutIntentRequest& WithConclusionStatement(const Statement& value) { SetConclusionStatement(value); return *this;} /** *

The statement that you want Amazon Lex to convey to the user after the * intent is successfully fulfilled by the Lambda function.

This element is * relevant only if you provide a Lambda function in the * fulfillmentActivity. If you return the intent to the client * application, you can't specify this element.

The * followUpPrompt and conclusionStatement are mutually * exclusive. You can specify only one.

*/ inline PutIntentRequest& WithConclusionStatement(Statement&& value) { SetConclusionStatement(std::move(value)); return *this;} /** *

Specifies a Lambda function to invoke for each user input. You can invoke * this Lambda function to personalize user interaction.

For example, * suppose your bot determines that the user is John. Your 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.

*/ inline const CodeHook& GetDialogCodeHook() const{ return m_dialogCodeHook; } /** *

Specifies a Lambda function to invoke for each user input. You can invoke * this Lambda function to personalize user interaction.

For example, * suppose your bot determines that the user is John. Your 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.

*/ inline bool DialogCodeHookHasBeenSet() const { return m_dialogCodeHookHasBeenSet; } /** *

Specifies a Lambda function to invoke for each user input. You can invoke * this Lambda function to personalize user interaction.

For example, * suppose your bot determines that the user is John. Your 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.

*/ inline void SetDialogCodeHook(const CodeHook& value) { m_dialogCodeHookHasBeenSet = true; m_dialogCodeHook = value; } /** *

Specifies a Lambda function to invoke for each user input. You can invoke * this Lambda function to personalize user interaction.

For example, * suppose your bot determines that the user is John. Your 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.

*/ inline void SetDialogCodeHook(CodeHook&& value) { m_dialogCodeHookHasBeenSet = true; m_dialogCodeHook = std::move(value); } /** *

Specifies a Lambda function to invoke for each user input. You can invoke * this Lambda function to personalize user interaction.

For example, * suppose your bot determines that the user is John. Your 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.

*/ inline PutIntentRequest& WithDialogCodeHook(const CodeHook& value) { SetDialogCodeHook(value); return *this;} /** *

Specifies a Lambda function to invoke for each user input. You can invoke * this Lambda function to personalize user interaction.

For example, * suppose your bot determines that the user is John. Your 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.

*/ inline PutIntentRequest& WithDialogCodeHook(CodeHook&& value) { SetDialogCodeHook(std::move(value)); return *this;} /** *

Required. Describes how the intent is fulfilled. For example, after a user * provides all of the information for a pizza order, * fulfillmentActivity defines how the bot places an order with a * local pizza store.

You might configure Amazon Lex to return all of the * intent information to the client application, or direct it to invoke a Lambda * function that can process the intent (for example, place an order with a * pizzeria).

*/ inline const FulfillmentActivity& GetFulfillmentActivity() const{ return m_fulfillmentActivity; } /** *

Required. Describes how the intent is fulfilled. For example, after a user * provides all of the information for a pizza order, * fulfillmentActivity defines how the bot places an order with a * local pizza store.

You might configure Amazon Lex to return all of the * intent information to the client application, or direct it to invoke a Lambda * function that can process the intent (for example, place an order with a * pizzeria).

*/ inline bool FulfillmentActivityHasBeenSet() const { return m_fulfillmentActivityHasBeenSet; } /** *

Required. Describes how the intent is fulfilled. For example, after a user * provides all of the information for a pizza order, * fulfillmentActivity defines how the bot places an order with a * local pizza store.

You might configure Amazon Lex to return all of the * intent information to the client application, or direct it to invoke a Lambda * function that can process the intent (for example, place an order with a * pizzeria).

*/ inline void SetFulfillmentActivity(const FulfillmentActivity& value) { m_fulfillmentActivityHasBeenSet = true; m_fulfillmentActivity = value; } /** *

Required. Describes how the intent is fulfilled. For example, after a user * provides all of the information for a pizza order, * fulfillmentActivity defines how the bot places an order with a * local pizza store.

You might configure Amazon Lex to return all of the * intent information to the client application, or direct it to invoke a Lambda * function that can process the intent (for example, place an order with a * pizzeria).

*/ inline void SetFulfillmentActivity(FulfillmentActivity&& value) { m_fulfillmentActivityHasBeenSet = true; m_fulfillmentActivity = std::move(value); } /** *

Required. Describes how the intent is fulfilled. For example, after a user * provides all of the information for a pizza order, * fulfillmentActivity defines how the bot places an order with a * local pizza store.

You might configure Amazon Lex to return all of the * intent information to the client application, or direct it to invoke a Lambda * function that can process the intent (for example, place an order with a * pizzeria).

*/ inline PutIntentRequest& WithFulfillmentActivity(const FulfillmentActivity& value) { SetFulfillmentActivity(value); return *this;} /** *

Required. Describes how the intent is fulfilled. For example, after a user * provides all of the information for a pizza order, * fulfillmentActivity defines how the bot places an order with a * local pizza store.

You might configure Amazon Lex to return all of the * intent information to the client application, or direct it to invoke a Lambda * function that can process the intent (for example, place an order with a * pizzeria).

*/ inline PutIntentRequest& WithFulfillmentActivity(FulfillmentActivity&& value) { SetFulfillmentActivity(std::move(value)); return *this;} /** *

A unique identifier for the built-in intent to base this intent on. To find * the signature for an intent, see Standard * Built-in Intents in the Alexa Skills Kit.

*/ inline const Aws::String& GetParentIntentSignature() const{ return m_parentIntentSignature; } /** *

A unique identifier for the built-in intent to base this intent on. To find * the signature for an intent, see Standard * Built-in Intents in the Alexa Skills Kit.

*/ inline bool ParentIntentSignatureHasBeenSet() const { return m_parentIntentSignatureHasBeenSet; } /** *

A unique identifier for the built-in intent to base this intent on. To find * the signature for an intent, see Standard * Built-in Intents in the Alexa Skills Kit.

*/ inline void SetParentIntentSignature(const Aws::String& value) { m_parentIntentSignatureHasBeenSet = true; m_parentIntentSignature = value; } /** *

A unique identifier for the built-in intent to base this intent on. To find * the signature for an intent, see Standard * Built-in Intents in the Alexa Skills Kit.

*/ inline void SetParentIntentSignature(Aws::String&& value) { m_parentIntentSignatureHasBeenSet = true; m_parentIntentSignature = std::move(value); } /** *

A unique identifier for the built-in intent to base this intent on. To find * the signature for an intent, see Standard * Built-in Intents in the Alexa Skills Kit.

*/ inline void SetParentIntentSignature(const char* value) { m_parentIntentSignatureHasBeenSet = true; m_parentIntentSignature.assign(value); } /** *

A unique identifier for the built-in intent to base this intent on. To find * the signature for an intent, see Standard * Built-in Intents in the Alexa Skills Kit.

*/ inline PutIntentRequest& WithParentIntentSignature(const Aws::String& value) { SetParentIntentSignature(value); return *this;} /** *

A unique identifier for the built-in intent to base this intent on. To find * the signature for an intent, see Standard * Built-in Intents in the Alexa Skills Kit.

*/ inline PutIntentRequest& WithParentIntentSignature(Aws::String&& value) { SetParentIntentSignature(std::move(value)); return *this;} /** *

A unique identifier for the built-in intent to base this intent on. To find * the signature for an intent, see Standard * Built-in Intents in the Alexa Skills Kit.

*/ inline PutIntentRequest& WithParentIntentSignature(const char* value) { SetParentIntentSignature(value); return *this;} /** *

Identifies a specific revision of the $LATEST version.

*

When you create a new intent, leave the checksum field blank. If * you specify a checksum you get a BadRequestException exception.

*

When you want to update a intent, set the checksum field to the * checksum of the most recent revision of the $LATEST version. If you * don't specify the checksum field, or if the checksum does not * match the $LATEST version, you get a * PreconditionFailedException exception.

*/ inline const Aws::String& GetChecksum() const{ return m_checksum; } /** *

Identifies a specific revision of the $LATEST version.

*

When you create a new intent, leave the checksum field blank. If * you specify a checksum you get a BadRequestException exception.

*

When you want to update a intent, set the checksum field to the * checksum of the most recent revision of the $LATEST version. If you * don't specify the checksum field, or if the checksum does not * match the $LATEST version, you get a * PreconditionFailedException exception.

*/ inline bool ChecksumHasBeenSet() const { return m_checksumHasBeenSet; } /** *

Identifies a specific revision of the $LATEST version.

*

When you create a new intent, leave the checksum field blank. If * you specify a checksum you get a BadRequestException exception.

*

When you want to update a intent, set the checksum field to the * checksum of the most recent revision of the $LATEST version. If you * don't specify the checksum field, or if the checksum does not * match the $LATEST version, you get a * PreconditionFailedException exception.

*/ inline void SetChecksum(const Aws::String& value) { m_checksumHasBeenSet = true; m_checksum = value; } /** *

Identifies a specific revision of the $LATEST version.

*

When you create a new intent, leave the checksum field blank. If * you specify a checksum you get a BadRequestException exception.

*

When you want to update a intent, set the checksum field to the * checksum of the most recent revision of the $LATEST version. If you * don't specify the checksum field, or if the checksum does not * match the $LATEST version, you get a * PreconditionFailedException exception.

*/ inline void SetChecksum(Aws::String&& value) { m_checksumHasBeenSet = true; m_checksum = std::move(value); } /** *

Identifies a specific revision of the $LATEST version.

*

When you create a new intent, leave the checksum field blank. If * you specify a checksum you get a BadRequestException exception.

*

When you want to update a intent, set the checksum field to the * checksum of the most recent revision of the $LATEST version. If you * don't specify the checksum field, or if the checksum does not * match the $LATEST version, you get a * PreconditionFailedException exception.

*/ inline void SetChecksum(const char* value) { m_checksumHasBeenSet = true; m_checksum.assign(value); } /** *

Identifies a specific revision of the $LATEST version.

*

When you create a new intent, leave the checksum field blank. If * you specify a checksum you get a BadRequestException exception.

*

When you want to update a intent, set the checksum field to the * checksum of the most recent revision of the $LATEST version. If you * don't specify the checksum field, or if the checksum does not * match the $LATEST version, you get a * PreconditionFailedException exception.

*/ inline PutIntentRequest& WithChecksum(const Aws::String& value) { SetChecksum(value); return *this;} /** *

Identifies a specific revision of the $LATEST version.

*

When you create a new intent, leave the checksum field blank. If * you specify a checksum you get a BadRequestException exception.

*

When you want to update a intent, set the checksum field to the * checksum of the most recent revision of the $LATEST version. If you * don't specify the checksum field, or if the checksum does not * match the $LATEST version, you get a * PreconditionFailedException exception.

*/ inline PutIntentRequest& WithChecksum(Aws::String&& value) { SetChecksum(std::move(value)); return *this;} /** *

Identifies a specific revision of the $LATEST version.

*

When you create a new intent, leave the checksum field blank. If * you specify a checksum you get a BadRequestException exception.

*

When you want to update a intent, set the checksum field to the * checksum of the most recent revision of the $LATEST version. If you * don't specify the checksum field, or if the checksum does not * match the $LATEST version, you get a * PreconditionFailedException exception.

*/ inline PutIntentRequest& WithChecksum(const char* value) { SetChecksum(value); return *this;} /** *

When set to true a new numbered version of the intent is * created. This is the same as calling the CreateIntentVersion * operation. If you do not specify createVersion, the default is * false.

*/ inline bool GetCreateVersion() const{ return m_createVersion; } /** *

When set to true a new numbered version of the intent is * created. This is the same as calling the CreateIntentVersion * operation. If you do not specify createVersion, the default is * false.

*/ inline bool CreateVersionHasBeenSet() const { return m_createVersionHasBeenSet; } /** *

When set to true a new numbered version of the intent is * created. This is the same as calling the CreateIntentVersion * operation. If you do not specify createVersion, the default is * false.

*/ inline void SetCreateVersion(bool value) { m_createVersionHasBeenSet = true; m_createVersion = value; } /** *

When set to true a new numbered version of the intent is * created. This is the same as calling the CreateIntentVersion * operation. If you do not specify createVersion, the default is * false.

*/ inline PutIntentRequest& WithCreateVersion(bool value) { SetCreateVersion(value); return *this;} /** *

Configuration information required to use the * AMAZON.KendraSearchIntent intent to connect to an Amazon Kendra * index. For more information, see * AMAZON.KendraSearchIntent.

*/ inline const KendraConfiguration& GetKendraConfiguration() const{ return m_kendraConfiguration; } /** *

Configuration information required to use the * AMAZON.KendraSearchIntent intent to connect to an Amazon Kendra * index. For more information, see * AMAZON.KendraSearchIntent.

*/ inline bool KendraConfigurationHasBeenSet() const { return m_kendraConfigurationHasBeenSet; } /** *

Configuration information required to use the * AMAZON.KendraSearchIntent intent to connect to an Amazon Kendra * index. For more information, see * AMAZON.KendraSearchIntent.

*/ inline void SetKendraConfiguration(const KendraConfiguration& value) { m_kendraConfigurationHasBeenSet = true; m_kendraConfiguration = value; } /** *

Configuration information required to use the * AMAZON.KendraSearchIntent intent to connect to an Amazon Kendra * index. For more information, see * AMAZON.KendraSearchIntent.

*/ inline void SetKendraConfiguration(KendraConfiguration&& value) { m_kendraConfigurationHasBeenSet = true; m_kendraConfiguration = std::move(value); } /** *

Configuration information required to use the * AMAZON.KendraSearchIntent intent to connect to an Amazon Kendra * index. For more information, see * AMAZON.KendraSearchIntent.

*/ inline PutIntentRequest& WithKendraConfiguration(const KendraConfiguration& value) { SetKendraConfiguration(value); return *this;} /** *

Configuration information required to use the * AMAZON.KendraSearchIntent intent to connect to an Amazon Kendra * index. For more information, see * AMAZON.KendraSearchIntent.

*/ inline PutIntentRequest& WithKendraConfiguration(KendraConfiguration&& value) { SetKendraConfiguration(std::move(value)); return *this;} /** *

An array of InputContext objects that lists the contexts that * must be active for Amazon Lex to choose the intent in a conversation with the * user.

*/ inline const Aws::Vector& GetInputContexts() const{ return m_inputContexts; } /** *

An array of InputContext objects that lists the contexts that * must be active for Amazon Lex to choose the intent in a conversation with the * user.

*/ inline bool InputContextsHasBeenSet() const { return m_inputContextsHasBeenSet; } /** *

An array of InputContext objects that lists the contexts that * must be active for Amazon Lex to choose the intent in a conversation with the * user.

*/ inline void SetInputContexts(const Aws::Vector& value) { m_inputContextsHasBeenSet = true; m_inputContexts = value; } /** *

An array of InputContext objects that lists the contexts that * must be active for Amazon Lex to choose the intent in a conversation with the * user.

*/ inline void SetInputContexts(Aws::Vector&& value) { m_inputContextsHasBeenSet = true; m_inputContexts = std::move(value); } /** *

An array of InputContext objects that lists the contexts that * must be active for Amazon Lex to choose the intent in a conversation with the * user.

*/ inline PutIntentRequest& WithInputContexts(const Aws::Vector& value) { SetInputContexts(value); return *this;} /** *

An array of InputContext objects that lists the contexts that * must be active for Amazon Lex to choose the intent in a conversation with the * user.

*/ inline PutIntentRequest& WithInputContexts(Aws::Vector&& value) { SetInputContexts(std::move(value)); return *this;} /** *

An array of InputContext objects that lists the contexts that * must be active for Amazon Lex to choose the intent in a conversation with the * user.

*/ inline PutIntentRequest& AddInputContexts(const InputContext& value) { m_inputContextsHasBeenSet = true; m_inputContexts.push_back(value); return *this; } /** *

An array of InputContext objects that lists the contexts that * must be active for Amazon Lex to choose the intent in a conversation with the * user.

*/ inline PutIntentRequest& AddInputContexts(InputContext&& value) { m_inputContextsHasBeenSet = true; m_inputContexts.push_back(std::move(value)); return *this; } /** *

An array of OutputContext objects that lists the contexts that * the intent activates when the intent is fulfilled.

*/ inline const Aws::Vector& GetOutputContexts() const{ return m_outputContexts; } /** *

An array of OutputContext objects that lists the contexts that * the intent activates when the intent is fulfilled.

*/ inline bool OutputContextsHasBeenSet() const { return m_outputContextsHasBeenSet; } /** *

An array of OutputContext objects that lists the contexts that * the intent activates when the intent is fulfilled.

*/ inline void SetOutputContexts(const Aws::Vector& value) { m_outputContextsHasBeenSet = true; m_outputContexts = value; } /** *

An array of OutputContext objects that lists the contexts that * the intent activates when the intent is fulfilled.

*/ inline void SetOutputContexts(Aws::Vector&& value) { m_outputContextsHasBeenSet = true; m_outputContexts = std::move(value); } /** *

An array of OutputContext objects that lists the contexts that * the intent activates when the intent is fulfilled.

*/ inline PutIntentRequest& WithOutputContexts(const Aws::Vector& value) { SetOutputContexts(value); return *this;} /** *

An array of OutputContext objects that lists the contexts that * the intent activates when the intent is fulfilled.

*/ inline PutIntentRequest& WithOutputContexts(Aws::Vector&& value) { SetOutputContexts(std::move(value)); return *this;} /** *

An array of OutputContext objects that lists the contexts that * the intent activates when the intent is fulfilled.

*/ inline PutIntentRequest& AddOutputContexts(const OutputContext& value) { m_outputContextsHasBeenSet = true; m_outputContexts.push_back(value); return *this; } /** *

An array of OutputContext objects that lists the contexts that * the intent activates when the intent is fulfilled.

*/ inline PutIntentRequest& AddOutputContexts(OutputContext&& value) { m_outputContextsHasBeenSet = true; m_outputContexts.push_back(std::move(value)); return *this; } private: Aws::String m_name; bool m_nameHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Vector m_slots; bool m_slotsHasBeenSet = false; Aws::Vector m_sampleUtterances; bool m_sampleUtterancesHasBeenSet = false; Prompt m_confirmationPrompt; bool m_confirmationPromptHasBeenSet = false; Statement m_rejectionStatement; bool m_rejectionStatementHasBeenSet = false; FollowUpPrompt m_followUpPrompt; bool m_followUpPromptHasBeenSet = false; Statement m_conclusionStatement; bool m_conclusionStatementHasBeenSet = false; CodeHook m_dialogCodeHook; bool m_dialogCodeHookHasBeenSet = false; FulfillmentActivity m_fulfillmentActivity; bool m_fulfillmentActivityHasBeenSet = false; Aws::String m_parentIntentSignature; bool m_parentIntentSignatureHasBeenSet = false; Aws::String m_checksum; bool m_checksumHasBeenSet = false; bool m_createVersion; bool m_createVersionHasBeenSet = false; KendraConfiguration m_kendraConfiguration; bool m_kendraConfigurationHasBeenSet = false; Aws::Vector m_inputContexts; bool m_inputContextsHasBeenSet = false; Aws::Vector m_outputContexts; bool m_outputContextsHasBeenSet = false; }; } // namespace Model } // namespace LexModelBuildingService } // namespace Aws