/* * Copyright 2010-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ package com.amazonaws.services.lexrts.model; import java.io.Serializable; import com.amazonaws.AmazonWebServiceRequest; /** *
* Sends user input to Amazon Lex. Client applications can use this API to send * requests to Amazon Lex at runtime. Amazon Lex then interprets the user input * using the machine learning model it built for the bot. *
*
* In response, Amazon Lex returns the next message
to convey to
* the user an optional responseCard
to display. Consider the
* following example messages:
*
* For a user input "I would like a pizza", Amazon Lex might return a response * with a message eliciting slot data (for example, PizzaSize): * "What size pizza would you like?" *
** After the user provides all of the pizza order information, Amazon Lex might * return a response with a message to obtain user confirmation * "Proceed with the pizza order?". *
** After the user replies to a confirmation prompt with a "yes", Amazon Lex * might return a conclusion statement: * "Thank you, your cheese pizza has been ordered.". *
*
* Not all Amazon Lex messages require a user response. For example, a
* conclusion statement does not require a response. Some messages require only
* a "yes" or "no" user response. In addition to the message
,
* Amazon Lex provides additional context about the message in the response that
* you might use to enhance client behavior, for example, to display the
* appropriate client user interface. These are the slotToElicit
,
* dialogState
, intentName
, and slots
* fields in the response. Consider the following examples:
*
* If the message is to elicit slot data, Amazon Lex returns the following * context information: *
*
* dialogState
set to ElicitSlot
*
* intentName
set to the intent name in the current context
*
* slotToElicit
set to the slot name for which the
* message
is eliciting information
*
* slots
set to a map of slots, configured for the intent, with
* currently known values
*
* If the message is a confirmation prompt, the dialogState
is set
* to ConfirmIntent and SlotToElicit
is set to null.
*
* If the message is a clarification prompt (configured for the intent) that
* indicates that user intent is not understood, the dialogState
is
* set to ElicitIntent and slotToElicit
is set to null.
*
* In addition, Amazon Lex also returns your application-specific
* sessionAttributes
. For more information, see Managing
* Conversation Context.
*
* The name of the Amazon Lex bot. *
*/ private String botName; /** ** The alias of the Amazon Lex bot. *
*/ private String botAlias; /** *
* The ID of the client application user. Amazon Lex uses this to identify a
* user's conversation with your bot. At runtime, each request must contain
* the userID
field.
*
* To decide the user ID to use for your application, consider the following * factors. *
*
* The userID
field must not contain any personally
* identifiable information of the user, for example, name, personal
* identification numbers, or other end user personal information.
*
* If you want a user to start a conversation on one device and continue on * another device, use a user-specific identifier. *
** If you want the same user to be able to have two independent * conversations on two different devices, choose a device-specific * identifier. *
** A user can't have two independent conversations with two different * versions of the same bot. For example, a user can't have a conversation * with the PROD and BETA versions of the same bot. If you anticipate that a * user will need to have conversation with two different versions, for * example, while testing, include the bot alias in the user ID to separate * the two conversations. *
*
* Constraints:
* Length: 2 - 100
* Pattern: [0-9a-zA-Z._:-]+
*/
private String userId;
/**
*
* Application-specific information passed between Amazon Lex and a client * application. *
** For more information, see Setting Session Attributes. *
*/ private java.util.Map* Request-specific information passed between Amazon Lex and a client * application. *
*
* The namespace x-amz-lex:
is reserved for special attributes.
* Don't create any request attributes with the prefix
* x-amz-lex:
.
*
* For more information, see Setting Request Attributes. *
*/ private java.util.Map* The text that the user entered (Amazon Lex interprets this text). *
*
* Constraints:
* Length: 1 - 1024
*/
private String inputText;
/**
*
* A list of contexts active for the request. A context can be activated * when a previous intent is fulfilled, or by including the context in the * request, *
** If you don't specify a list of contexts, Amazon Lex will use the current * list of contexts for the session. If you specify an empty list, all * contexts for the session are cleared. *
*/ private java.util.List* The name of the Amazon Lex bot. *
* * @return* The name of the Amazon Lex bot. *
*/ public String getBotName() { return botName; } /** ** The name of the Amazon Lex bot. *
* * @param botName* The name of the Amazon Lex bot. *
*/ public void setBotName(String botName) { this.botName = botName; } /** ** The name of the Amazon Lex bot. *
** Returns a reference to this object so that method calls can be chained * together. * * @param botName
* The name of the Amazon Lex bot. *
* @return A reference to this updated object so that method calls can be * chained together. */ public PostTextRequest withBotName(String botName) { this.botName = botName; return this; } /** ** The alias of the Amazon Lex bot. *
* * @return* The alias of the Amazon Lex bot. *
*/ public String getBotAlias() { return botAlias; } /** ** The alias of the Amazon Lex bot. *
* * @param botAlias* The alias of the Amazon Lex bot. *
*/ public void setBotAlias(String botAlias) { this.botAlias = botAlias; } /** ** The alias of the Amazon Lex bot. *
** Returns a reference to this object so that method calls can be chained * together. * * @param botAlias
* The alias of the Amazon Lex bot. *
* @return A reference to this updated object so that method calls can be * chained together. */ public PostTextRequest withBotAlias(String botAlias) { this.botAlias = botAlias; return this; } /** *
* The ID of the client application user. Amazon Lex uses this to identify a
* user's conversation with your bot. At runtime, each request must contain
* the userID
field.
*
* To decide the user ID to use for your application, consider the following * factors. *
*
* The userID
field must not contain any personally
* identifiable information of the user, for example, name, personal
* identification numbers, or other end user personal information.
*
* If you want a user to start a conversation on one device and continue on * another device, use a user-specific identifier. *
** If you want the same user to be able to have two independent * conversations on two different devices, choose a device-specific * identifier. *
** A user can't have two independent conversations with two different * versions of the same bot. For example, a user can't have a conversation * with the PROD and BETA versions of the same bot. If you anticipate that a * user will need to have conversation with two different versions, for * example, while testing, include the bot alias in the user ID to separate * the two conversations. *
*
* Constraints:
* Length: 2 - 100
* Pattern: [0-9a-zA-Z._:-]+
*
* @return
* The ID of the client application user. Amazon Lex uses this to
* identify a user's conversation with your bot. At runtime, each
* request must contain the userID
field.
*
* To decide the user ID to use for your application, consider the * following factors. *
*
* The userID
field must not contain any personally
* identifiable information of the user, for example, name, personal
* identification numbers, or other end user personal information.
*
* If you want a user to start a conversation on one device and * continue on another device, use a user-specific identifier. *
** If you want the same user to be able to have two independent * conversations on two different devices, choose a device-specific * identifier. *
** A user can't have two independent conversations with two * different versions of the same bot. For example, a user can't * have a conversation with the PROD and BETA versions of the same * bot. If you anticipate that a user will need to have conversation * with two different versions, for example, while testing, include * the bot alias in the user ID to separate the two conversations. *
*
* The ID of the client application user. Amazon Lex uses this to identify a
* user's conversation with your bot. At runtime, each request must contain
* the userID
field.
*
* To decide the user ID to use for your application, consider the following * factors. *
*
* The userID
field must not contain any personally
* identifiable information of the user, for example, name, personal
* identification numbers, or other end user personal information.
*
* If you want a user to start a conversation on one device and continue on * another device, use a user-specific identifier. *
** If you want the same user to be able to have two independent * conversations on two different devices, choose a device-specific * identifier. *
** A user can't have two independent conversations with two different * versions of the same bot. For example, a user can't have a conversation * with the PROD and BETA versions of the same bot. If you anticipate that a * user will need to have conversation with two different versions, for * example, while testing, include the bot alias in the user ID to separate * the two conversations. *
*
* Constraints:
* Length: 2 - 100
* Pattern: [0-9a-zA-Z._:-]+
*
* @param userId
* The ID of the client application user. Amazon Lex uses this to
* identify a user's conversation with your bot. At runtime, each
* request must contain the userID
field.
*
* To decide the user ID to use for your application, consider * the following factors. *
*
* The userID
field must not contain any personally
* identifiable information of the user, for example, name,
* personal identification numbers, or other end user personal
* information.
*
* If you want a user to start a conversation on one device and * continue on another device, use a user-specific identifier. *
** If you want the same user to be able to have two independent * conversations on two different devices, choose a * device-specific identifier. *
** A user can't have two independent conversations with two * different versions of the same bot. For example, a user can't * have a conversation with the PROD and BETA versions of the * same bot. If you anticipate that a user will need to have * conversation with two different versions, for example, while * testing, include the bot alias in the user ID to separate the * two conversations. *
*
* The ID of the client application user. Amazon Lex uses this to identify a
* user's conversation with your bot. At runtime, each request must contain
* the userID
field.
*
* To decide the user ID to use for your application, consider the following * factors. *
*
* The userID
field must not contain any personally
* identifiable information of the user, for example, name, personal
* identification numbers, or other end user personal information.
*
* If you want a user to start a conversation on one device and continue on * another device, use a user-specific identifier. *
** If you want the same user to be able to have two independent * conversations on two different devices, choose a device-specific * identifier. *
** A user can't have two independent conversations with two different * versions of the same bot. For example, a user can't have a conversation * with the PROD and BETA versions of the same bot. If you anticipate that a * user will need to have conversation with two different versions, for * example, while testing, include the bot alias in the user ID to separate * the two conversations. *
** Returns a reference to this object so that method calls can be chained * together. *
* Constraints:
* Length: 2 - 100
* Pattern: [0-9a-zA-Z._:-]+
*
* @param userId
* The ID of the client application user. Amazon Lex uses this to
* identify a user's conversation with your bot. At runtime, each
* request must contain the userID
field.
*
* To decide the user ID to use for your application, consider * the following factors. *
*
* The userID
field must not contain any personally
* identifiable information of the user, for example, name,
* personal identification numbers, or other end user personal
* information.
*
* If you want a user to start a conversation on one device and * continue on another device, use a user-specific identifier. *
** If you want the same user to be able to have two independent * conversations on two different devices, choose a * device-specific identifier. *
** A user can't have two independent conversations with two * different versions of the same bot. For example, a user can't * have a conversation with the PROD and BETA versions of the * same bot. If you anticipate that a user will need to have * conversation with two different versions, for example, while * testing, include the bot alias in the user ID to separate the * two conversations. *
** Application-specific information passed between Amazon Lex and a client * application. *
** For more information, see Setting Session Attributes. *
* * @return* Application-specific information passed between Amazon Lex and a * client application. *
** For more information, see Setting Session Attributes. *
*/ public java.util.Map* Application-specific information passed between Amazon Lex and a client * application. *
** For more information, see Setting Session Attributes. *
* * @param sessionAttributes* Application-specific information passed between Amazon Lex and * a client application. *
** For more information, see Setting Session Attributes. *
*/ public void setSessionAttributes(java.util.Map* Application-specific information passed between Amazon Lex and a client * application. *
** For more information, see Setting Session Attributes. *
** Returns a reference to this object so that method calls can be chained * together. * * @param sessionAttributes
* Application-specific information passed between Amazon Lex and * a client application. *
** For more information, see Setting Session Attributes. *
* @return A reference to this updated object so that method calls can be * chained together. */ public PostTextRequest withSessionAttributes(java.util.Map* Application-specific information passed between Amazon Lex and a client * application. *
** For more information, see Setting Session Attributes. *
*
* The method adds a new key-value pair into sessionAttributes parameter,
* and returns a reference to this object so that method calls can be
* chained together.
*
* @param key The key of the entry to be added into sessionAttributes.
* @param value The corresponding value of the entry to be added into
* sessionAttributes.
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public PostTextRequest addsessionAttributesEntry(String key, String value) {
if (null == this.sessionAttributes) {
this.sessionAttributes = new java.util.HashMap
* Returns a reference to this object so that method calls can be chained
* together.
*/
public PostTextRequest clearsessionAttributesEntries() {
this.sessionAttributes = null;
return this;
}
/**
*
* Request-specific information passed between Amazon Lex and a client
* application.
*
* The namespace
* For more information, see Setting Request Attributes.
*
* Request-specific information passed between Amazon Lex and a
* client application.
*
* The namespace
* For more information, see Setting Request Attributes.
*
* Request-specific information passed between Amazon Lex and a client
* application.
*
* The namespace
* For more information, see Setting Request Attributes.
*
* Request-specific information passed between Amazon Lex and a
* client application.
*
* The namespace
* For more information, see Setting Request Attributes.
*
* Request-specific information passed between Amazon Lex and a client
* application.
*
* The namespace
* For more information, see Setting Request Attributes.
*
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param requestAttributes
* Request-specific information passed between Amazon Lex and a
* client application.
*
* The namespace
* For more information, see Setting Request Attributes.
*
* Request-specific information passed between Amazon Lex and a client
* application.
*
* The namespace
* For more information, see Setting Request Attributes.
*
* The method adds a new key-value pair into requestAttributes parameter,
* and returns a reference to this object so that method calls can be
* chained together.
*
* @param key The key of the entry to be added into requestAttributes.
* @param value The corresponding value of the entry to be added into
* requestAttributes.
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public PostTextRequest addrequestAttributesEntry(String key, String value) {
if (null == this.requestAttributes) {
this.requestAttributes = new java.util.HashMap
* Returns a reference to this object so that method calls can be chained
* together.
*/
public PostTextRequest clearrequestAttributesEntries() {
this.requestAttributes = null;
return this;
}
/**
*
* The text that the user entered (Amazon Lex interprets this text).
*
* Constraints:
* The text that the user entered (Amazon Lex interprets this text).
*
* The text that the user entered (Amazon Lex interprets this text).
*
* Constraints:
* The text that the user entered (Amazon Lex interprets this
* text).
*
* The text that the user entered (Amazon Lex interprets this text).
*
* Returns a reference to this object so that method calls can be chained
* together.
*
* Constraints:
* The text that the user entered (Amazon Lex interprets this
* text).
*
* A list of contexts active for the request. A context can be activated
* when a previous intent is fulfilled, or by including the context in the
* request,
*
* If you don't specify a list of contexts, Amazon Lex will use the current
* list of contexts for the session. If you specify an empty list, all
* contexts for the session are cleared.
*
* A list of contexts active for the request. A context can be
* activated when a previous intent is fulfilled, or by including
* the context in the request,
*
* If you don't specify a list of contexts, Amazon Lex will use the
* current list of contexts for the session. If you specify an empty
* list, all contexts for the session are cleared.
*
* A list of contexts active for the request. A context can be activated
* when a previous intent is fulfilled, or by including the context in the
* request,
*
* If you don't specify a list of contexts, Amazon Lex will use the current
* list of contexts for the session. If you specify an empty list, all
* contexts for the session are cleared.
*
* A list of contexts active for the request. A context can be
* activated when a previous intent is fulfilled, or by including
* the context in the request,
*
* If you don't specify a list of contexts, Amazon Lex will use
* the current list of contexts for the session. If you specify
* an empty list, all contexts for the session are cleared.
*
* A list of contexts active for the request. A context can be activated
* when a previous intent is fulfilled, or by including the context in the
* request,
*
* If you don't specify a list of contexts, Amazon Lex will use the current
* list of contexts for the session. If you specify an empty list, all
* contexts for the session are cleared.
*
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param activeContexts
* A list of contexts active for the request. A context can be
* activated when a previous intent is fulfilled, or by including
* the context in the request,
*
* If you don't specify a list of contexts, Amazon Lex will use
* the current list of contexts for the session. If you specify
* an empty list, all contexts for the session are cleared.
*
* A list of contexts active for the request. A context can be activated
* when a previous intent is fulfilled, or by including the context in the
* request,
*
* If you don't specify a list of contexts, Amazon Lex will use the current
* list of contexts for the session. If you specify an empty list, all
* contexts for the session are cleared.
*
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param activeContexts
* A list of contexts active for the request. A context can be
* activated when a previous intent is fulfilled, or by including
* the context in the request,
*
* If you don't specify a list of contexts, Amazon Lex will use
* the current list of contexts for the session. If you specify
* an empty list, all contexts for the session are cleared.
* x-amz-lex:
is reserved for special attributes.
* Don't create any request attributes with the prefix
* x-amz-lex:
.
* x-amz-lex:
is reserved for special
* attributes. Don't create any request attributes with the prefix
* x-amz-lex:
.
* x-amz-lex:
is reserved for special attributes.
* Don't create any request attributes with the prefix
* x-amz-lex:
.
* x-amz-lex:
is reserved for special
* attributes. Don't create any request attributes with the
* prefix x-amz-lex:
.
* x-amz-lex:
is reserved for special attributes.
* Don't create any request attributes with the prefix
* x-amz-lex:
.
* x-amz-lex:
is reserved for special
* attributes. Don't create any request attributes with the
* prefix x-amz-lex:
.
* x-amz-lex:
is reserved for special attributes.
* Don't create any request attributes with the prefix
* x-amz-lex:
.
*
* Length: 1 - 1024
*
* @return
* Length: 1 - 1024
*
* @param inputText
* Length: 1 - 1024
*
* @param inputText