/* * Copyright 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. */ /* * Do not modify this file. This file is generated from the runtime.lex-2016-11-28.normal.json service model. */ using System; using System.Collections.Generic; using System.Xml.Serialization; using System.Text; using System.IO; using System.Net; using Amazon.Runtime; using Amazon.Runtime.Internal; namespace Amazon.Lex.Model { /// /// This is the response object from the PostText operation. /// public partial class PostTextResponse : AmazonWebServiceResponse { private List _activeContexts = new List(); private List _alternativeIntents = new List(); private string _botVersion; private DialogState _dialogState; private string _intentName; private string _message; private MessageFormatType _messageFormat; private IntentConfidence _nluIntentConfidence; private ResponseCard _responseCard; private SentimentResponse _sentimentResponse; private Dictionary _sessionAttributes = new Dictionary(); private string _sessionId; private Dictionary _slots = new Dictionary(); private string _slotToElicit; /// /// Gets and sets the property ActiveContexts. /// /// A list of active contexts for the session. A context can be set when an intent is /// fulfilled or by calling the PostContent, PostText, or PutSession /// operation. /// /// /// /// You can use a context to control the intents that can follow up an intent, or to modify /// the operation of your application. /// /// [AWSProperty(Sensitive=true, Min=0, Max=20)] public List ActiveContexts { get { return this._activeContexts; } set { this._activeContexts = value; } } // Check to see if ActiveContexts property is set internal bool IsSetActiveContexts() { return this._activeContexts != null && this._activeContexts.Count > 0; } /// /// Gets and sets the property AlternativeIntents. /// /// One to four alternative intents that may be applicable to the user's intent. /// /// /// /// Each alternative includes a score that indicates how confident Amazon Lex is that /// the intent matches the user's intent. The intents are sorted by the confidence score. /// /// [AWSProperty(Max=4)] public List AlternativeIntents { get { return this._alternativeIntents; } set { this._alternativeIntents = value; } } // Check to see if AlternativeIntents property is set internal bool IsSetAlternativeIntents() { return this._alternativeIntents != null && this._alternativeIntents.Count > 0; } /// /// Gets and sets the property BotVersion. /// /// The version of the bot that responded to the conversation. You can use this information /// to help determine if one version of a bot is performing better than another version. /// /// [AWSProperty(Min=1, Max=64)] public string BotVersion { get { return this._botVersion; } set { this._botVersion = value; } } // Check to see if BotVersion property is set internal bool IsSetBotVersion() { return this._botVersion != null; } /// /// Gets and sets the property DialogState. /// /// Identifies the current state of the user interaction. Amazon Lex returns one of the /// following values as dialogState. The client can optionally use this information /// to customize the user interface. /// ///
  • /// /// ElicitIntent - Amazon Lex wants to elicit user intent. /// /// /// /// For example, a user might utter an intent ("I want to order a pizza"). If Amazon Lex /// cannot infer the user intent from this utterance, it will return this dialogState. /// ///
  • /// /// ConfirmIntent - Amazon Lex is expecting a "yes" or "no" response. /// /// /// /// For example, Amazon Lex wants user confirmation before fulfilling an intent. /// /// /// /// Instead of a simple "yes" or "no," a user might respond with additional information. /// For example, "yes, but make it thick crust pizza" or "no, I want to order a drink". /// Amazon Lex can process such additional information (in these examples, update the /// crust type slot value, or change intent from OrderPizza to OrderDrink). /// ///
  • /// /// ElicitSlot - Amazon Lex is expecting a slot value for the current intent. /// /// /// /// /// For example, suppose that in the response Amazon Lex sends this message: "What size /// pizza would you like?". A user might reply with the slot value (e.g., "medium"). The /// user might also provide additional information in the response (e.g., "medium thick /// crust pizza"). Amazon Lex can process such additional information appropriately. /// ///
  • /// /// Fulfilled - Conveys that the Lambda function configured for the intent /// has successfully fulfilled the intent. /// ///
  • /// /// ReadyForFulfillment - Conveys that the client has to fulfill the intent. /// /// ///
  • /// /// Failed - Conveys that the conversation with the user failed. /// /// /// /// This can happen for various reasons including that the user did not provide an appropriate /// response to prompts from the service (you can configure how many times Amazon Lex /// can prompt a user for specific information), or the Lambda function failed to fulfill /// the intent. /// ///
///
public DialogState DialogState { get { return this._dialogState; } set { this._dialogState = value; } } // Check to see if DialogState property is set internal bool IsSetDialogState() { return this._dialogState != null; } /// /// Gets and sets the property IntentName. /// /// The current user intent that Amazon Lex is aware of. /// /// public string IntentName { get { return this._intentName; } set { this._intentName = value; } } // Check to see if IntentName property is set internal bool IsSetIntentName() { return this._intentName != null; } /// /// Gets and sets the property Message. /// /// The message to convey to the user. The message can come from the bot's configuration /// or from a Lambda function. /// /// /// /// If the intent is not configured with a Lambda function, or if the Lambda function /// returned Delegate as the dialogAction.type its response, /// Amazon Lex decides on the next course of action and selects an appropriate message /// from the bot's configuration based on the current interaction context. For example, /// if Amazon Lex isn't able to understand user input, it uses a clarification prompt /// message. /// /// /// /// When you create an intent you can assign messages to groups. When messages are assigned /// to groups Amazon Lex returns one message from each group in the response. The message /// field is an escaped JSON string containing the messages. For more information about /// the structure of the JSON string returned, see msg-prompts-formats. /// /// /// /// If the Lambda function returns a message, Amazon Lex passes it to the client in its /// response. /// /// [AWSProperty(Sensitive=true, Min=1, Max=1024)] public string Message { get { return this._message; } set { this._message = value; } } // Check to see if Message property is set internal bool IsSetMessage() { return this._message != null; } /// /// Gets and sets the property MessageFormat. /// /// The format of the response message. One of the following values: /// ///
  • /// /// PlainText - The message contains plain UTF-8 text. /// ///
  • /// /// CustomPayload - The message is a custom format defined by the Lambda /// function. /// ///
  • /// /// SSML - The message contains text formatted for voice output. /// ///
  • /// /// Composite - The message contains an escaped JSON object containing one /// or more messages from the groups that messages were assigned to when the intent was /// created. /// ///
///
public MessageFormatType MessageFormat { get { return this._messageFormat; } set { this._messageFormat = value; } } // Check to see if MessageFormat property is set internal bool IsSetMessageFormat() { return this._messageFormat != null; } /// /// Gets and sets the property NluIntentConfidence. /// /// Provides a score that indicates how confident Amazon Lex is that the returned intent /// is the one that matches the user's intent. The score is between 0.0 and 1.0. For more /// information, see Confidence /// Scores. /// /// /// /// The score is a relative score, not an absolute score. The score may change based on /// improvements to Amazon Lex. /// /// public IntentConfidence NluIntentConfidence { get { return this._nluIntentConfidence; } set { this._nluIntentConfidence = value; } } // Check to see if NluIntentConfidence property is set internal bool IsSetNluIntentConfidence() { return this._nluIntentConfidence != null; } /// /// Gets and sets the property ResponseCard. /// /// Represents the options that the user has to respond to the current prompt. Response /// Card can come from the bot configuration (in the Amazon Lex console, choose the settings /// button next to a slot) or from a code hook (Lambda function). /// /// public ResponseCard ResponseCard { get { return this._responseCard; } set { this._responseCard = value; } } // Check to see if ResponseCard property is set internal bool IsSetResponseCard() { return this._responseCard != null; } /// /// Gets and sets the property SentimentResponse. /// /// The sentiment expressed in and utterance. /// /// /// /// When the bot is configured to send utterances to Amazon Comprehend for sentiment analysis, /// this field contains the result of the analysis. /// /// public SentimentResponse SentimentResponse { get { return this._sentimentResponse; } set { this._sentimentResponse = value; } } // Check to see if SentimentResponse property is set internal bool IsSetSentimentResponse() { return this._sentimentResponse != null; } /// /// Gets and sets the property SessionAttributes. /// /// A map of key-value pairs representing the session-specific context information. /// /// [AWSProperty(Sensitive=true)] public Dictionary SessionAttributes { get { return this._sessionAttributes; } set { this._sessionAttributes = value; } } // Check to see if SessionAttributes property is set internal bool IsSetSessionAttributes() { return this._sessionAttributes != null && this._sessionAttributes.Count > 0; } /// /// Gets and sets the property SessionId. /// /// A unique identifier for the session. /// /// public string SessionId { get { return this._sessionId; } set { this._sessionId = value; } } // Check to see if SessionId property is set internal bool IsSetSessionId() { return this._sessionId != null; } /// /// Gets and sets the property Slots. /// /// The intent slots that Amazon Lex detected from the user input in the conversation. /// /// /// /// /// Amazon Lex creates a resolution list containing likely values for a slot. The value /// that it returns is determined by the valueSelectionStrategy selected /// when the slot type was created or updated. If valueSelectionStrategy /// is set to ORIGINAL_VALUE, the value provided by the user is returned, /// if the user value is similar to the slot values. If valueSelectionStrategy /// is set to TOP_RESOLUTION Amazon Lex returns the first value in the resolution /// list or, if there is no resolution list, null. If you don't specify a valueSelectionStrategy, /// the default is ORIGINAL_VALUE. /// /// [AWSProperty(Sensitive=true)] public Dictionary Slots { get { return this._slots; } set { this._slots = value; } } // Check to see if Slots property is set internal bool IsSetSlots() { return this._slots != null && this._slots.Count > 0; } /// /// Gets and sets the property SlotToElicit. /// /// If the dialogState value is ElicitSlot, returns the name /// of the slot for which Amazon Lex is eliciting a value. /// /// public string SlotToElicit { get { return this._slotToElicit; } set { this._slotToElicit = value; } } // Check to see if SlotToElicit property is set internal bool IsSetSlotToElicit() { return this._slotToElicit != null; } } }