
com.amazonaws.services.lexruntime.model.PostTextRequest Maven / Gradle / Ivy
/*
* Copyright 2018-2023 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.lexruntime.model;
import java.io.Serializable;
import javax.annotation.Generated;
import com.amazonaws.AmazonWebServiceRequest;
/**
*
* @see AWS API
* Documentation
*/
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class PostTextRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable {
/**
*
* 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.
*
*
*
*/
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 sessionAttributes;
/**
*
* 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 requestAttributes;
/**
*
* The text that the user entered (Amazon Lex interprets this text).
*
*/
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 activeContexts;
/**
*
* 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.
*
*
* @return The name of the Amazon Lex bot.
*/
public String getBotName() {
return this.botName;
}
/**
*
* The name of the Amazon Lex bot.
*
*
* @param botName
* The name of the Amazon Lex bot.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PostTextRequest withBotName(String botName) {
setBotName(botName);
return this;
}
/**
*
* 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.
*
*
* @return The alias of the Amazon Lex bot.
*/
public String getBotAlias() {
return this.botAlias;
}
/**
*
* The alias of the Amazon Lex bot.
*
*
* @param botAlias
* The alias of the Amazon Lex bot.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PostTextRequest withBotAlias(String botAlias) {
setBotAlias(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.
*
*
*
*
* @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.
*
*
*/
public void setUserId(String userId) {
this.userId = 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.
*
*
*
*
* @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.
*
*
*/
public String getUserId() {
return this.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.
*
*
*
*
* @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.
*
*
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PostTextRequest withUserId(String userId) {
setUserId(userId);
return this;
}
/**
*
* 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 getSessionAttributes() {
return sessionAttributes;
}
/**
*
* 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 sessionAttributes) {
this.sessionAttributes = sessionAttributes;
}
/**
*
* 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.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PostTextRequest withSessionAttributes(java.util.Map sessionAttributes) {
setSessionAttributes(sessionAttributes);
return this;
}
/**
* Add a single SessionAttributes entry
*
* @see PostTextRequest#withSessionAttributes
* @returns a reference to this 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();
}
if (this.sessionAttributes.containsKey(key))
throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided.");
this.sessionAttributes.put(key, value);
return this;
}
/**
* Removes all the entries added into SessionAttributes.
*
* @return 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 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.
*
*
* @return 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.
*/
public java.util.Map getRequestAttributes() {
return requestAttributes;
}
/**
*
* 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.
*
*
* @param requestAttributes
* 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.
*/
public void setRequestAttributes(java.util.Map requestAttributes) {
this.requestAttributes = requestAttributes;
}
/**
*
* 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.
*
*
* @param requestAttributes
* 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.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PostTextRequest withRequestAttributes(java.util.Map requestAttributes) {
setRequestAttributes(requestAttributes);
return this;
}
/**
* Add a single RequestAttributes entry
*
* @see PostTextRequest#withRequestAttributes
* @returns a reference to this 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();
}
if (this.requestAttributes.containsKey(key))
throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided.");
this.requestAttributes.put(key, value);
return this;
}
/**
* Removes all the entries added into RequestAttributes.
*
* @return 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).
*
*
* @param inputText
* The text that the user entered (Amazon Lex interprets this text).
*/
public void setInputText(String inputText) {
this.inputText = inputText;
}
/**
*
* The text that the user entered (Amazon Lex interprets this text).
*
*
* @return The text that the user entered (Amazon Lex interprets this text).
*/
public String getInputText() {
return this.inputText;
}
/**
*
* The text that the user entered (Amazon Lex interprets this text).
*
*
* @param inputText
* The text that the user entered (Amazon Lex interprets this text).
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PostTextRequest withInputText(String inputText) {
setInputText(inputText);
return this;
}
/**
*
* 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.
*
*
* @return 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.
*/
public java.util.List getActiveContexts() {
return 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.
*
*
* @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.
*/
public void setActiveContexts(java.util.Collection activeContexts) {
if (activeContexts == null) {
this.activeContexts = null;
return;
}
this.activeContexts = new java.util.ArrayList(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.
*
*
* NOTE: This method appends the values to the existing list (if any). Use
* {@link #setActiveContexts(java.util.Collection)} or {@link #withActiveContexts(java.util.Collection)} if you want
* to override the existing values.
*
*
* @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.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PostTextRequest withActiveContexts(ActiveContext... activeContexts) {
if (this.activeContexts == null) {
setActiveContexts(new java.util.ArrayList(activeContexts.length));
}
for (ActiveContext ele : activeContexts) {
this.activeContexts.add(ele);
}
return this;
}
/**
*
* 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.
*
*
* @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.
* @return Returns a reference to this object so that method calls can be chained together.
*/
public PostTextRequest withActiveContexts(java.util.Collection activeContexts) {
setActiveContexts(activeContexts);
return this;
}
/**
* Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
* redacted from this string using a placeholder value.
*
* @return A string representation of this object.
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getBotName() != null)
sb.append("BotName: ").append(getBotName()).append(",");
if (getBotAlias() != null)
sb.append("BotAlias: ").append(getBotAlias()).append(",");
if (getUserId() != null)
sb.append("UserId: ").append(getUserId()).append(",");
if (getSessionAttributes() != null)
sb.append("SessionAttributes: ").append("***Sensitive Data Redacted***").append(",");
if (getRequestAttributes() != null)
sb.append("RequestAttributes: ").append("***Sensitive Data Redacted***").append(",");
if (getInputText() != null)
sb.append("InputText: ").append("***Sensitive Data Redacted***").append(",");
if (getActiveContexts() != null)
sb.append("ActiveContexts: ").append("***Sensitive Data Redacted***");
sb.append("}");
return sb.toString();
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof PostTextRequest == false)
return false;
PostTextRequest other = (PostTextRequest) obj;
if (other.getBotName() == null ^ this.getBotName() == null)
return false;
if (other.getBotName() != null && other.getBotName().equals(this.getBotName()) == false)
return false;
if (other.getBotAlias() == null ^ this.getBotAlias() == null)
return false;
if (other.getBotAlias() != null && other.getBotAlias().equals(this.getBotAlias()) == false)
return false;
if (other.getUserId() == null ^ this.getUserId() == null)
return false;
if (other.getUserId() != null && other.getUserId().equals(this.getUserId()) == false)
return false;
if (other.getSessionAttributes() == null ^ this.getSessionAttributes() == null)
return false;
if (other.getSessionAttributes() != null && other.getSessionAttributes().equals(this.getSessionAttributes()) == false)
return false;
if (other.getRequestAttributes() == null ^ this.getRequestAttributes() == null)
return false;
if (other.getRequestAttributes() != null && other.getRequestAttributes().equals(this.getRequestAttributes()) == false)
return false;
if (other.getInputText() == null ^ this.getInputText() == null)
return false;
if (other.getInputText() != null && other.getInputText().equals(this.getInputText()) == false)
return false;
if (other.getActiveContexts() == null ^ this.getActiveContexts() == null)
return false;
if (other.getActiveContexts() != null && other.getActiveContexts().equals(this.getActiveContexts()) == false)
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getBotName() == null) ? 0 : getBotName().hashCode());
hashCode = prime * hashCode + ((getBotAlias() == null) ? 0 : getBotAlias().hashCode());
hashCode = prime * hashCode + ((getUserId() == null) ? 0 : getUserId().hashCode());
hashCode = prime * hashCode + ((getSessionAttributes() == null) ? 0 : getSessionAttributes().hashCode());
hashCode = prime * hashCode + ((getRequestAttributes() == null) ? 0 : getRequestAttributes().hashCode());
hashCode = prime * hashCode + ((getInputText() == null) ? 0 : getInputText().hashCode());
hashCode = prime * hashCode + ((getActiveContexts() == null) ? 0 : getActiveContexts().hashCode());
return hashCode;
}
@Override
public PostTextRequest clone() {
return (PostTextRequest) super.clone();
}
}