/* * 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; /** *
* Describes the next action that the bot should take in its interaction with
* the user and provides information about the context in which the action takes
* place. Use the DialogAction
data type to set the interaction to
* a specific state, or to return the interaction to a previous state.
*
* The next action that the bot should take in its interaction with the * user. The possible values are: *
*
* ConfirmIntent
- The next action is asking the user if the
* intent is complete and ready to be fulfilled. This is a yes/no question
* such as "Place the order?"
*
* Close
- Indicates that the there will not be a response from
* the user. For example, the statement "Your order has been placed" does
* not require a response.
*
* Delegate
- The next action is determined by Amazon Lex.
*
* ElicitIntent
- The next action is to determine the intent
* that the user wants to fulfill.
*
* ElicitSlot
- The next action is to elicit a slot value from
* the user.
*
* Constraints:
* Allowed Values: ElicitIntent, ConfirmIntent, ElicitSlot, Close,
* Delegate
*/
private String type;
/**
*
* The name of the intent. *
*/ private String intentName; /** ** Map of the slots that have been gathered and their values. *
*/ private java.util.Map* The name of the slot that should be elicited from the user. *
*/ private String slotToElicit; /** ** The fulfillment state of the intent. The possible values are: *
*
* Failed
- The Lambda function associated with the intent
* failed to fulfill the intent.
*
* Fulfilled
- The intent has fulfilled by the Lambda function
* associated with the intent.
*
* ReadyForFulfillment
- All of the information necessary for
* the intent is present and the intent ready to be fulfilled by the client
* application.
*
* Constraints:
* Allowed Values: Fulfilled, Failed, ReadyForFulfillment
*/
private String fulfillmentState;
/**
*
* The message that should be shown to the user. If you don't specify a * message, Amazon Lex will use the message configured for the intent. *
*
* Constraints:
* Length: 1 - 1024
*/
private String message;
/**
*
* PlainText
- The message contains plain UTF-8 text.
*
* CustomPayload
- The message is a custom format for the
* client.
*
* SSML
- The message contains text formatted for voice output.
*
* Composite
- The message contains an escaped JSON object
* containing one or more messages. For more information, see Message Groups.
*
* Constraints:
* Allowed Values: PlainText, CustomPayload, SSML, Composite
*/
private String messageFormat;
/**
*
* The next action that the bot should take in its interaction with the * user. The possible values are: *
*
* ConfirmIntent
- The next action is asking the user if the
* intent is complete and ready to be fulfilled. This is a yes/no question
* such as "Place the order?"
*
* Close
- Indicates that the there will not be a response from
* the user. For example, the statement "Your order has been placed" does
* not require a response.
*
* Delegate
- The next action is determined by Amazon Lex.
*
* ElicitIntent
- The next action is to determine the intent
* that the user wants to fulfill.
*
* ElicitSlot
- The next action is to elicit a slot value from
* the user.
*
* Constraints:
* Allowed Values: ElicitIntent, ConfirmIntent, ElicitSlot, Close,
* Delegate
*
* @return
* The next action that the bot should take in its interaction with * the user. The possible values are: *
*
* ConfirmIntent
- The next action is asking the user
* if the intent is complete and ready to be fulfilled. This is a
* yes/no question such as "Place the order?"
*
* Close
- Indicates that the there will not be a
* response from the user. For example, the statement
* "Your order has been placed" does not require a response.
*
* Delegate
- The next action is determined by Amazon
* Lex.
*
* ElicitIntent
- The next action is to determine the
* intent that the user wants to fulfill.
*
* ElicitSlot
- The next action is to elicit a slot
* value from the user.
*
* The next action that the bot should take in its interaction with the * user. The possible values are: *
*
* ConfirmIntent
- The next action is asking the user if the
* intent is complete and ready to be fulfilled. This is a yes/no question
* such as "Place the order?"
*
* Close
- Indicates that the there will not be a response from
* the user. For example, the statement "Your order has been placed" does
* not require a response.
*
* Delegate
- The next action is determined by Amazon Lex.
*
* ElicitIntent
- The next action is to determine the intent
* that the user wants to fulfill.
*
* ElicitSlot
- The next action is to elicit a slot value from
* the user.
*
* Constraints:
* Allowed Values: ElicitIntent, ConfirmIntent, ElicitSlot, Close,
* Delegate
*
* @param type
* The next action that the bot should take in its interaction * with the user. The possible values are: *
*
* ConfirmIntent
- The next action is asking the
* user if the intent is complete and ready to be fulfilled. This
* is a yes/no question such as "Place the order?"
*
* Close
- Indicates that the there will not be a
* response from the user. For example, the statement
* "Your order has been placed" does not require a response.
*
* Delegate
- The next action is determined by
* Amazon Lex.
*
* ElicitIntent
- The next action is to determine
* the intent that the user wants to fulfill.
*
* ElicitSlot
- The next action is to elicit a slot
* value from the user.
*
* The next action that the bot should take in its interaction with the * user. The possible values are: *
*
* ConfirmIntent
- The next action is asking the user if the
* intent is complete and ready to be fulfilled. This is a yes/no question
* such as "Place the order?"
*
* Close
- Indicates that the there will not be a response from
* the user. For example, the statement "Your order has been placed" does
* not require a response.
*
* Delegate
- The next action is determined by Amazon Lex.
*
* ElicitIntent
- The next action is to determine the intent
* that the user wants to fulfill.
*
* ElicitSlot
- The next action is to elicit a slot value from
* the user.
*
* Returns a reference to this object so that method calls can be chained * together. *
* Constraints:
* Allowed Values: ElicitIntent, ConfirmIntent, ElicitSlot, Close,
* Delegate
*
* @param type
* The next action that the bot should take in its interaction * with the user. The possible values are: *
*
* ConfirmIntent
- The next action is asking the
* user if the intent is complete and ready to be fulfilled. This
* is a yes/no question such as "Place the order?"
*
* Close
- Indicates that the there will not be a
* response from the user. For example, the statement
* "Your order has been placed" does not require a response.
*
* Delegate
- The next action is determined by
* Amazon Lex.
*
* ElicitIntent
- The next action is to determine
* the intent that the user wants to fulfill.
*
* ElicitSlot
- The next action is to elicit a slot
* value from the user.
*
* The next action that the bot should take in its interaction with the * user. The possible values are: *
*
* ConfirmIntent
- The next action is asking the user if the
* intent is complete and ready to be fulfilled. This is a yes/no question
* such as "Place the order?"
*
* Close
- Indicates that the there will not be a response from
* the user. For example, the statement "Your order has been placed" does
* not require a response.
*
* Delegate
- The next action is determined by Amazon Lex.
*
* ElicitIntent
- The next action is to determine the intent
* that the user wants to fulfill.
*
* ElicitSlot
- The next action is to elicit a slot value from
* the user.
*
* Constraints:
* Allowed Values: ElicitIntent, ConfirmIntent, ElicitSlot, Close,
* Delegate
*
* @param type
* The next action that the bot should take in its interaction * with the user. The possible values are: *
*
* ConfirmIntent
- The next action is asking the
* user if the intent is complete and ready to be fulfilled. This
* is a yes/no question such as "Place the order?"
*
* Close
- Indicates that the there will not be a
* response from the user. For example, the statement
* "Your order has been placed" does not require a response.
*
* Delegate
- The next action is determined by
* Amazon Lex.
*
* ElicitIntent
- The next action is to determine
* the intent that the user wants to fulfill.
*
* ElicitSlot
- The next action is to elicit a slot
* value from the user.
*
* The next action that the bot should take in its interaction with the * user. The possible values are: *
*
* ConfirmIntent
- The next action is asking the user if the
* intent is complete and ready to be fulfilled. This is a yes/no question
* such as "Place the order?"
*
* Close
- Indicates that the there will not be a response from
* the user. For example, the statement "Your order has been placed" does
* not require a response.
*
* Delegate
- The next action is determined by Amazon Lex.
*
* ElicitIntent
- The next action is to determine the intent
* that the user wants to fulfill.
*
* ElicitSlot
- The next action is to elicit a slot value from
* the user.
*
* Returns a reference to this object so that method calls can be chained * together. *
* Constraints:
* Allowed Values: ElicitIntent, ConfirmIntent, ElicitSlot, Close,
* Delegate
*
* @param type
* The next action that the bot should take in its interaction * with the user. The possible values are: *
*
* ConfirmIntent
- The next action is asking the
* user if the intent is complete and ready to be fulfilled. This
* is a yes/no question such as "Place the order?"
*
* Close
- Indicates that the there will not be a
* response from the user. For example, the statement
* "Your order has been placed" does not require a response.
*
* Delegate
- The next action is determined by
* Amazon Lex.
*
* ElicitIntent
- The next action is to determine
* the intent that the user wants to fulfill.
*
* ElicitSlot
- The next action is to elicit a slot
* value from the user.
*
* The name of the intent. *
* * @return* The name of the intent. *
*/ public String getIntentName() { return intentName; } /** ** The name of the intent. *
* * @param intentName* The name of the intent. *
*/ public void setIntentName(String intentName) { this.intentName = intentName; } /** ** The name of the intent. *
** Returns a reference to this object so that method calls can be chained * together. * * @param intentName
* The name of the intent. *
* @return A reference to this updated object so that method calls can be * chained together. */ public DialogAction withIntentName(String intentName) { this.intentName = intentName; return this; } /** ** Map of the slots that have been gathered and their values. *
* * @return* Map of the slots that have been gathered and their values. *
*/ public java.util.Map* Map of the slots that have been gathered and their values. *
* * @param slots* Map of the slots that have been gathered and their values. *
*/ public void setSlots(java.util.Map* Map of the slots that have been gathered and their values. *
** Returns a reference to this object so that method calls can be chained * together. * * @param slots
* Map of the slots that have been gathered and their values. *
* @return A reference to this updated object so that method calls can be * chained together. */ public DialogAction withSlots(java.util.Map* Map of the slots that have been gathered and their values. *
*
* The method adds a new key-value pair into slots 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 slots.
* @param value The corresponding value of the entry to be added into slots.
* @return A reference to this updated object so that method calls can be
* chained together.
*/
public DialogAction addslotsEntry(String key, String value) {
if (null == this.slots) {
this.slots = new java.util.HashMap
* Returns a reference to this object so that method calls can be chained
* together.
*/
public DialogAction clearslotsEntries() {
this.slots = null;
return this;
}
/**
*
* The name of the slot that should be elicited from the user.
*
* The name of the slot that should be elicited from the user.
*
* The name of the slot that should be elicited from the user.
*
* The name of the slot that should be elicited from the user.
*
* The name of the slot that should be elicited from the user.
*
* Returns a reference to this object so that method calls can be chained
* together.
*
* @param slotToElicit
* The name of the slot that should be elicited from the user.
*
* The fulfillment state of the intent. The possible values are:
*
*
*
*
* Constraints:
* The fulfillment state of the intent. The possible values are:
*
*
*
*
* The fulfillment state of the intent. The possible values are:
*
*
*
*
* Constraints:
* The fulfillment state of the intent. The possible values are:
*
*
*
*
* The fulfillment state of the intent. The possible values are:
*
*
*
*
* Returns a reference to this object so that method calls can be chained
* together.
*
* Constraints:
* The fulfillment state of the intent. The possible values are:
*
*
*
*
* The fulfillment state of the intent. The possible values are:
*
*
*
*
* Constraints:
* The fulfillment state of the intent. The possible values are:
*
*
*
*
* The fulfillment state of the intent. The possible values are:
*
*
*
*
* Returns a reference to this object so that method calls can be chained
* together.
*
* Constraints:
* The fulfillment state of the intent. The possible values are:
*
*
*
*
* The message that should be shown to the user. If you don't specify a
* message, Amazon Lex will use the message configured for the intent.
*
* Constraints:
* The message that should be shown to the user. If you don't
* specify a message, Amazon Lex will use the message configured for
* the intent.
*
* The message that should be shown to the user. If you don't specify a
* message, Amazon Lex will use the message configured for the intent.
*
* Constraints:
* The message that should be shown to the user. If you don't
* specify a message, Amazon Lex will use the message configured
* for the intent.
*
* The message that should be shown to the user. If you don't specify a
* message, Amazon Lex will use the message configured for the intent.
*
* Returns a reference to this object so that method calls can be chained
* together.
*
* Constraints:
* The message that should be shown to the user. If you don't
* specify a message, Amazon Lex will use the message configured
* for the intent.
*
*
*
*
*
* Constraints:
*
*
*
*
*
*
*
*
* Constraints:
*
*
*
*
*
*
*
*
* Returns a reference to this object so that method calls can be chained
* together.
*
* Constraints:
*
*
*
*
*
*
*
*
* Constraints:
*
*
*
*
*
*
*
*
* Returns a reference to this object so that method calls can be chained
* together.
*
* Constraints:
*
*
*
*
*
* Failed
- The Lambda function associated with the intent
* failed to fulfill the intent.
* Fulfilled
- The intent has fulfilled by the Lambda function
* associated with the intent.
* ReadyForFulfillment
- All of the information necessary for
* the intent is present and the intent ready to be fulfilled by the client
* application.
*
* Allowed Values: Fulfilled, Failed, ReadyForFulfillment
*
* @return
*
* @see FulfillmentState
*/
public String getFulfillmentState() {
return fulfillmentState;
}
/**
* Failed
- The Lambda function associated with the
* intent failed to fulfill the intent.
* Fulfilled
- The intent has fulfilled by the Lambda
* function associated with the intent.
* ReadyForFulfillment
- All of the information
* necessary for the intent is present and the intent ready to be
* fulfilled by the client application.
*
*
* Failed
- The Lambda function associated with the intent
* failed to fulfill the intent.
* Fulfilled
- The intent has fulfilled by the Lambda function
* associated with the intent.
* ReadyForFulfillment
- All of the information necessary for
* the intent is present and the intent ready to be fulfilled by the client
* application.
*
* Allowed Values: Fulfilled, Failed, ReadyForFulfillment
*
* @param fulfillmentState
*
* @see FulfillmentState
*/
public void setFulfillmentState(String fulfillmentState) {
this.fulfillmentState = fulfillmentState;
}
/**
* Failed
- The Lambda function associated with the
* intent failed to fulfill the intent.
* Fulfilled
- The intent has fulfilled by the
* Lambda function associated with the intent.
* ReadyForFulfillment
- All of the information
* necessary for the intent is present and the intent ready to be
* fulfilled by the client application.
*
*
* Failed
- The Lambda function associated with the intent
* failed to fulfill the intent.
* Fulfilled
- The intent has fulfilled by the Lambda function
* associated with the intent.
* ReadyForFulfillment
- All of the information necessary for
* the intent is present and the intent ready to be fulfilled by the client
* application.
*
* Allowed Values: Fulfilled, Failed, ReadyForFulfillment
*
* @param fulfillmentState
*
* @return A reference to this updated object so that method calls can be
* chained together.
* @see FulfillmentState
*/
public DialogAction withFulfillmentState(String fulfillmentState) {
this.fulfillmentState = fulfillmentState;
return this;
}
/**
* Failed
- The Lambda function associated with the
* intent failed to fulfill the intent.
* Fulfilled
- The intent has fulfilled by the
* Lambda function associated with the intent.
* ReadyForFulfillment
- All of the information
* necessary for the intent is present and the intent ready to be
* fulfilled by the client application.
*
*
* Failed
- The Lambda function associated with the intent
* failed to fulfill the intent.
* Fulfilled
- The intent has fulfilled by the Lambda function
* associated with the intent.
* ReadyForFulfillment
- All of the information necessary for
* the intent is present and the intent ready to be fulfilled by the client
* application.
*
* Allowed Values: Fulfilled, Failed, ReadyForFulfillment
*
* @param fulfillmentState
*
* @see FulfillmentState
*/
public void setFulfillmentState(FulfillmentState fulfillmentState) {
this.fulfillmentState = fulfillmentState.toString();
}
/**
* Failed
- The Lambda function associated with the
* intent failed to fulfill the intent.
* Fulfilled
- The intent has fulfilled by the
* Lambda function associated with the intent.
* ReadyForFulfillment
- All of the information
* necessary for the intent is present and the intent ready to be
* fulfilled by the client application.
*
*
* Failed
- The Lambda function associated with the intent
* failed to fulfill the intent.
* Fulfilled
- The intent has fulfilled by the Lambda function
* associated with the intent.
* ReadyForFulfillment
- All of the information necessary for
* the intent is present and the intent ready to be fulfilled by the client
* application.
*
* Allowed Values: Fulfilled, Failed, ReadyForFulfillment
*
* @param fulfillmentState
*
* @return A reference to this updated object so that method calls can be
* chained together.
* @see FulfillmentState
*/
public DialogAction withFulfillmentState(FulfillmentState fulfillmentState) {
this.fulfillmentState = fulfillmentState.toString();
return this;
}
/**
* Failed
- The Lambda function associated with the
* intent failed to fulfill the intent.
* Fulfilled
- The intent has fulfilled by the
* Lambda function associated with the intent.
* ReadyForFulfillment
- All of the information
* necessary for the intent is present and the intent ready to be
* fulfilled by the client application.
*
* Length: 1 - 1024
*
* @return
* Length: 1 - 1024
*
* @param message
* Length: 1 - 1024
*
* @param message
*
* PlainText
- The message contains plain UTF-8 text.
* CustomPayload
- The message is a custom format for the
* client.
* SSML
- The message contains text formatted for voice output.
* Composite
- The message contains an escaped JSON object
* containing one or more messages. For more information, see Message Groups.
*
* Allowed Values: PlainText, CustomPayload, SSML, Composite
*
* @return
*
* @see MessageFormatType
*/
public String getMessageFormat() {
return messageFormat;
}
/**
* PlainText
- The message contains plain UTF-8 text.
* CustomPayload
- The message is a custom format for
* the client.
* SSML
- The message contains text formatted for voice
* output.
* Composite
- The message contains an escaped JSON
* object containing one or more messages. For more information, see
* Message Groups.
*
*
* PlainText
- The message contains plain UTF-8 text.
* CustomPayload
- The message is a custom format for the
* client.
* SSML
- The message contains text formatted for voice output.
* Composite
- The message contains an escaped JSON object
* containing one or more messages. For more information, see Message Groups.
*
* Allowed Values: PlainText, CustomPayload, SSML, Composite
*
* @param messageFormat
*
* @see MessageFormatType
*/
public void setMessageFormat(String messageFormat) {
this.messageFormat = messageFormat;
}
/**
* PlainText
- The message contains plain UTF-8
* text.
* CustomPayload
- The message is a custom format
* for the client.
* SSML
- The message contains text formatted for
* voice output.
* Composite
- The message contains an escaped JSON
* object containing one or more messages. For more information,
* see Message Groups.
*
*
* PlainText
- The message contains plain UTF-8 text.
* CustomPayload
- The message is a custom format for the
* client.
* SSML
- The message contains text formatted for voice output.
* Composite
- The message contains an escaped JSON object
* containing one or more messages. For more information, see Message Groups.
*
* Allowed Values: PlainText, CustomPayload, SSML, Composite
*
* @param messageFormat
*
* @return A reference to this updated object so that method calls can be
* chained together.
* @see MessageFormatType
*/
public DialogAction withMessageFormat(String messageFormat) {
this.messageFormat = messageFormat;
return this;
}
/**
* PlainText
- The message contains plain UTF-8
* text.
* CustomPayload
- The message is a custom format
* for the client.
* SSML
- The message contains text formatted for
* voice output.
* Composite
- The message contains an escaped JSON
* object containing one or more messages. For more information,
* see Message Groups.
*
*
* PlainText
- The message contains plain UTF-8 text.
* CustomPayload
- The message is a custom format for the
* client.
* SSML
- The message contains text formatted for voice output.
* Composite
- The message contains an escaped JSON object
* containing one or more messages. For more information, see Message Groups.
*
* Allowed Values: PlainText, CustomPayload, SSML, Composite
*
* @param messageFormat
*
* @see MessageFormatType
*/
public void setMessageFormat(MessageFormatType messageFormat) {
this.messageFormat = messageFormat.toString();
}
/**
* PlainText
- The message contains plain UTF-8
* text.
* CustomPayload
- The message is a custom format
* for the client.
* SSML
- The message contains text formatted for
* voice output.
* Composite
- The message contains an escaped JSON
* object containing one or more messages. For more information,
* see Message Groups.
*
*
* PlainText
- The message contains plain UTF-8 text.
* CustomPayload
- The message is a custom format for the
* client.
* SSML
- The message contains text formatted for voice output.
* Composite
- The message contains an escaped JSON object
* containing one or more messages. For more information, see Message Groups.
*
* Allowed Values: PlainText, CustomPayload, SSML, Composite
*
* @param messageFormat
*
* @return A reference to this updated object so that method calls can be
* chained together.
* @see MessageFormatType
*/
public DialogAction withMessageFormat(MessageFormatType messageFormat) {
this.messageFormat = messageFormat.toString();
return this;
}
/**
* Returns a string representation of this object; useful for testing and
* debugging.
*
* @return A string representation of this object.
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("{");
if (getType() != null)
sb.append("type: " + getType() + ",");
if (getIntentName() != null)
sb.append("intentName: " + getIntentName() + ",");
if (getSlots() != null)
sb.append("slots: " + getSlots() + ",");
if (getSlotToElicit() != null)
sb.append("slotToElicit: " + getSlotToElicit() + ",");
if (getFulfillmentState() != null)
sb.append("fulfillmentState: " + getFulfillmentState() + ",");
if (getMessage() != null)
sb.append("message: " + getMessage() + ",");
if (getMessageFormat() != null)
sb.append("messageFormat: " + getMessageFormat());
sb.append("}");
return sb.toString();
}
@Override
public int hashCode() {
final int prime = 31;
int hashCode = 1;
hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode());
hashCode = prime * hashCode + ((getIntentName() == null) ? 0 : getIntentName().hashCode());
hashCode = prime * hashCode + ((getSlots() == null) ? 0 : getSlots().hashCode());
hashCode = prime * hashCode
+ ((getSlotToElicit() == null) ? 0 : getSlotToElicit().hashCode());
hashCode = prime * hashCode
+ ((getFulfillmentState() == null) ? 0 : getFulfillmentState().hashCode());
hashCode = prime * hashCode + ((getMessage() == null) ? 0 : getMessage().hashCode());
hashCode = prime * hashCode
+ ((getMessageFormat() == null) ? 0 : getMessageFormat().hashCode());
return hashCode;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (obj instanceof DialogAction == false)
return false;
DialogAction other = (DialogAction) obj;
if (other.getType() == null ^ this.getType() == null)
return false;
if (other.getType() != null && other.getType().equals(this.getType()) == false)
return false;
if (other.getIntentName() == null ^ this.getIntentName() == null)
return false;
if (other.getIntentName() != null
&& other.getIntentName().equals(this.getIntentName()) == false)
return false;
if (other.getSlots() == null ^ this.getSlots() == null)
return false;
if (other.getSlots() != null && other.getSlots().equals(this.getSlots()) == false)
return false;
if (other.getSlotToElicit() == null ^ this.getSlotToElicit() == null)
return false;
if (other.getSlotToElicit() != null
&& other.getSlotToElicit().equals(this.getSlotToElicit()) == false)
return false;
if (other.getFulfillmentState() == null ^ this.getFulfillmentState() == null)
return false;
if (other.getFulfillmentState() != null
&& other.getFulfillmentState().equals(this.getFulfillmentState()) == false)
return false;
if (other.getMessage() == null ^ this.getMessage() == null)
return false;
if (other.getMessage() != null && other.getMessage().equals(this.getMessage()) == false)
return false;
if (other.getMessageFormat() == null ^ this.getMessageFormat() == null)
return false;
if (other.getMessageFormat() != null
&& other.getMessageFormat().equals(this.getMessageFormat()) == false)
return false;
return true;
}
}
PlainText
- The message contains plain UTF-8
* text.
* CustomPayload
- The message is a custom format
* for the client.
* SSML
- The message contains text formatted for
* voice output.
* Composite
- The message contains an escaped JSON
* object containing one or more messages. For more information,
* see Message Groups.
*