/* * 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 { /// /// Container for the parameters to the PostText operation. /// 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: /// /// /// /// /// 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: /// /// /// /// In addition, Amazon Lex also returns your application-specific sessionAttributes. /// For more information, see Managing /// Conversation Context. /// /// public partial class PostTextRequest : AmazonLexRequest { private List _activeContexts = new List(); private string _botAlias; private string _botName; private string _inputText; private Dictionary _requestAttributes = new Dictionary(); private Dictionary _sessionAttributes = new Dictionary(); private string _userId; /// /// Gets and sets the property 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. /// /// [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 BotAlias. /// /// The alias of the Amazon Lex bot. /// /// [AWSProperty(Required=true)] public string BotAlias { get { return this._botAlias; } set { this._botAlias = value; } } // Check to see if BotAlias property is set internal bool IsSetBotAlias() { return this._botAlias != null; } /// /// Gets and sets the property BotName. /// /// The name of the Amazon Lex bot. /// /// [AWSProperty(Required=true)] public string BotName { get { return this._botName; } set { this._botName = value; } } // Check to see if BotName property is set internal bool IsSetBotName() { return this._botName != null; } /// /// Gets and sets the property InputText. /// /// The text that the user entered (Amazon Lex interprets this text). /// /// [AWSProperty(Required=true, Sensitive=true, Min=1, Max=1024)] public string InputText { get { return this._inputText; } set { this._inputText = value; } } // Check to see if InputText property is set internal bool IsSetInputText() { return this._inputText != null; } /// /// Gets and sets the property 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. /// /// [AWSProperty(Sensitive=true)] public Dictionary RequestAttributes { get { return this._requestAttributes; } set { this._requestAttributes = value; } } // Check to see if RequestAttributes property is set internal bool IsSetRequestAttributes() { return this._requestAttributes != null && this._requestAttributes.Count > 0; } /// /// Gets and sets the property SessionAttributes. /// /// Application-specific information passed between Amazon Lex and a client application. /// /// /// /// For more information, see Setting /// Session Attributes. /// /// [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 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. /// ///
///
[AWSProperty(Required=true, Min=2, Max=100)] public string UserId { get { return this._userId; } set { this._userId = value; } } // Check to see if UserId property is set internal bool IsSetUserId() { return this._userId != null; } } }