/* * 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 PostContent operation. /// public partial class PostContentResponse : AmazonWebServiceResponse, IDisposable { private string _activeContexts; private string _alternativeIntents; private Stream _audioStream; private string _botVersion; private string _contentType; private DialogState _dialogState; private string _encodedInputTranscript; private string _encodedMessage; private string _inputTranscript; private string _intentName; private string _message; private MessageFormatType _messageFormat; private string _nluIntentConfidence; private string _sentimentResponse; private string _sessionAttributes; private string _sessionId; private string _slots; 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)] public string ActiveContexts { get { return this._activeContexts; } set { this._activeContexts = value; } } // Check to see if ActiveContexts property is set internal bool IsSetActiveContexts() { return this._activeContexts != null; } /// /// 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. /// /// public string AlternativeIntents { get { return this._alternativeIntents; } set { this._alternativeIntents = value; } } // Check to see if AlternativeIntents property is set internal bool IsSetAlternativeIntents() { return this._alternativeIntents != null; } /// /// Gets and sets the property AudioStream. /// /// The prompt (or statement) to convey to the user. This is based on the bot configuration /// and context. For example, if Amazon Lex did not understand the user intent, it sends /// the clarificationPrompt configured for the bot. If the intent requires /// confirmation before taking the fulfillment action, it sends the confirmationPrompt. /// Another example: Suppose that the Lambda function successfully fulfilled the intent, /// and sent a message to convey to the user. Then Amazon Lex sends that message in the /// response. /// /// public Stream AudioStream { get { return this._audioStream; } set { this._audioStream = value; } } // Check to see if AudioStream property is set internal bool IsSetAudioStream() { return this._audioStream != null; } /// /// 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 ContentType. /// /// Content type as specified in the Accept HTTP header in the request. /// /// public string ContentType { get { return this._contentType; } set { this._contentType = value; } } // Check to see if ContentType property is set internal bool IsSetContentType() { return this._contentType != 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. /// /// /// 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 EncodedInputTranscript. /// /// The text used to process the request. /// /// /// /// If the input was an audio stream, the encodedInputTranscript field contains /// the text extracted from the audio stream. This is the text that is actually processed /// to recognize intents and slot values. You can use this information to determine if /// Amazon Lex is correctly processing the audio that you send. /// /// /// /// The encodedInputTranscript field is base-64 encoded. You must decode /// the field before you can use the value. /// /// [AWSProperty(Sensitive=true)] public string EncodedInputTranscript { get { return this._encodedInputTranscript; } set { this._encodedInputTranscript = value; } } // Check to see if EncodedInputTranscript property is set internal bool IsSetEncodedInputTranscript() { return this._encodedInputTranscript != null; } /// /// Gets and sets the property EncodedMessage. /// /// 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 in 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. /// /// /// /// The encodedMessage field is base-64 encoded. You must decode the field /// before you can use the value. /// /// [AWSProperty(Sensitive=true, Min=1, Max=1366)] public string EncodedMessage { get { return this._encodedMessage; } set { this._encodedMessage = value; } } // Check to see if EncodedMessage property is set internal bool IsSetEncodedMessage() { return this._encodedMessage != null; } /// /// Gets and sets the property InputTranscript. /// /// The text used to process the request. /// /// /// /// You can use this field only in the de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, /// fr-CA, fr-FR, and it-IT locales. In all other locales, the inputTranscript /// field is null. You should use the encodedInputTranscript field instead. /// /// /// /// If the input was an audio stream, the inputTranscript field contains /// the text extracted from the audio stream. This is the text that is actually processed /// to recognize intents and slot values. You can use this information to determine if /// Amazon Lex is correctly processing the audio that you send. /// /// [Obsolete("The inputTranscript field is deprecated, use the encodedInputTranscript field instead. The inputTranscript field is available only in the de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-CA, fr-FR and it-IT locales.")] public string InputTranscript { get { return this._inputTranscript; } set { this._inputTranscript = value; } } // Check to see if InputTranscript property is set internal bool IsSetInputTranscript() { return this._inputTranscript != null; } /// /// Gets and sets the property IntentName. /// /// 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. /// /// You can only use this field in the de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, /// fr-CA, fr-FR, and it-IT locales. In all other locales, the message field /// is null. You should use the encodedMessage field instead. /// /// /// /// 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 in 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. /// /// [Obsolete("The message field is deprecated, use the encodedMessage field instead. The message field is available only in the de-DE, en-AU, en-GB, en-US, es-419, es-ES, es-US, fr-CA, fr-FR and it-IT locales.")] [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: /// /// /// 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. /// /// /// /// The score is a relative score, not an absolute score. The score may change based on /// improvements to Amazon Lex. /// /// public string 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 SentimentResponse. /// /// The sentiment expressed in an utterance. /// /// /// /// When the bot is configured to send utterances to Amazon Comprehend for sentiment analysis, /// this field contains the result of the analysis. /// /// public string 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. /// /// Map of key/value pairs representing the session-specific context information. /// /// public string SessionAttributes { get { return this._sessionAttributes; } set { this._sessionAttributes = value; } } // Check to see if SessionAttributes property is set internal bool IsSetSessionAttributes() { return this._sessionAttributes != null; } /// /// Gets and sets the property SessionId. /// /// The 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. /// /// Map of zero or more intent slots (name/value pairs) Amazon Lex detected from the user /// input during the conversation. The field is base-64 encoded. /// /// /// /// 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. /// /// public string Slots { get { return this._slots; } set { this._slots = value; } } // Check to see if Slots property is set internal bool IsSetSlots() { return this._slots != null; } /// /// 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; } #region Dispose Pattern private bool _disposed; /// /// Disposes of all managed and unmanaged resources. /// public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (_disposed) return; if (disposing) { this._audioStream?.Dispose(); this._audioStream = null; } this._disposed = true; } #endregion } }