/* * 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.Threading; using System.Threading.Tasks; using System.Collections.Generic; using Amazon.Runtime; using Amazon.Lex.Model; namespace Amazon.Lex { /// /// Interface for accessing Lex /// /// Amazon Lex provides both build and runtime endpoints. Each endpoint provides a set /// of operations (API). Your conversational bot uses the runtime API to understand user /// utterances (user input text or voice). For example, suppose a user says "I want pizza", /// your bot sends this input to Amazon Lex using the runtime API. Amazon Lex recognizes /// that the user request is for the OrderPizza intent (one of the intents defined in /// the bot). Then Amazon Lex engages in user conversation on behalf of the bot to elicit /// required information (slot values, such as pizza size and crust type), and then performs /// fulfillment activity (that you configured when you created the bot). You use the build-time /// API to create and manage your Amazon Lex bot. For a list of build-time operations, /// see the build-time API, . /// public partial interface IAmazonLex : IAmazonService, IDisposable { #region DeleteSession /// /// Removes session information for a specified bot, alias, and user ID. /// /// Container for the necessary parameters to execute the DeleteSession service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the DeleteSession service method, as returned by Lex. /// /// Request validation failed, there is no usable message in the context, or the bot /// build failed, is still in progress, or contains unbuilt changes. /// /// /// Two clients are using the same AWS account, Amazon Lex bot, and user ID. /// /// /// Internal service error. Retry the call. /// /// /// Exceeded a limit. /// /// /// The resource (such as the Amazon Lex bot or an alias) that is referred to is not found. /// /// REST API Reference for DeleteSession Operation Task DeleteSessionAsync(DeleteSessionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)); #endregion #region GetSession /// /// Returns session information for a specified bot, alias, and user ID. /// /// Container for the necessary parameters to execute the GetSession service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetSession service method, as returned by Lex. /// /// Request validation failed, there is no usable message in the context, or the bot /// build failed, is still in progress, or contains unbuilt changes. /// /// /// Internal service error. Retry the call. /// /// /// Exceeded a limit. /// /// /// The resource (such as the Amazon Lex bot or an alias) that is referred to is not found. /// /// REST API Reference for GetSession Operation Task GetSessionAsync(GetSessionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)); #endregion #region PostContent /// /// Sends user input (text or speech) to Amazon Lex. Clients use this API to send text /// and audio requests to Amazon Lex at runtime. Amazon Lex interprets the user input /// using the machine learning model that it built for the bot. /// /// /// /// The PostContent operation supports audio input at 8kHz and 16kHz. You /// can use 8kHz audio to achieve higher speech recognition accuracy in telephone audio /// applications. /// /// /// /// In response, Amazon Lex returns the next message to convey to the user. Consider /// the following example messages: /// ///
  • /// /// For a user input "I would like a pizza," Amazon Lex might return a response with /// a message eliciting slot data (for example, PizzaSize): "What size pizza /// would you like?". /// ///
  • /// /// After the user provides all of the pizza order information, Amazon Lex might return /// a response with a message to get user confirmation: "Order the pizza?". /// ///
  • /// /// After the user replies "Yes" to the confirmation prompt, Amazon Lex might return /// a conclusion statement: "Thank you, your cheese pizza has been ordered.". /// ///
/// /// Not all Amazon Lex messages require a response from the user. For example, conclusion /// statements do not require a response. Some messages require only a yes or no response. /// In addition to the message, Amazon Lex provides additional context about /// the message in the response that you can use to enhance client behavior, such as displaying /// the appropriate client user interface. Consider the following examples: /// ///
  • /// /// If the message is to elicit slot data, Amazon Lex returns the following context information: /// /// ///
    • /// /// x-amz-lex-dialog-state header set to ElicitSlot /// ///
    • /// /// x-amz-lex-intent-name header set to the intent name in the current context /// /// ///
    • /// /// x-amz-lex-slot-to-elicit header set to the slot name for which the message /// is eliciting information /// ///
    • /// /// x-amz-lex-slots header set to a map of slots configured for the intent /// with their current values /// ///
  • /// /// If the message is a confirmation prompt, the x-amz-lex-dialog-state /// header is set to Confirmation and the x-amz-lex-slot-to-elicit /// header is omitted. /// ///
  • /// /// If the message is a clarification prompt configured for the intent, indicating that /// the user intent is not understood, the x-amz-dialog-state header is set /// to ElicitIntent and the x-amz-slot-to-elicit header is omitted. /// /// ///
/// /// In addition, Amazon Lex also returns your application-specific sessionAttributes. /// For more information, see Managing /// Conversation Context. /// ///
/// Container for the necessary parameters to execute the PostContent service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the PostContent service method, as returned by Lex. /// /// Either the Amazon Lex bot is still building, or one of the dependent services (Amazon /// Polly, AWS Lambda) failed with an internal service error. /// /// /// Request validation failed, there is no usable message in the context, or the bot /// build failed, is still in progress, or contains unbuilt changes. /// /// /// Two clients are using the same AWS account, Amazon Lex bot, and user ID. /// /// /// One of the dependencies, such as AWS Lambda or Amazon Polly, threw an exception. /// For example, /// ///
  • /// /// If Amazon Lex does not have sufficient permissions to call a Lambda function. /// ///
  • /// /// If a Lambda function takes longer than 30 seconds to execute. /// ///
  • /// /// If a fulfillment Lambda function returns a Delegate dialog action without /// removing any slot values. /// ///
///
/// /// Internal service error. Retry the call. /// /// /// Exceeded a limit. /// /// /// This exception is not used. /// /// /// The accept header in the request does not have a valid value. /// /// /// The resource (such as the Amazon Lex bot or an alias) that is referred to is not found. /// /// /// The input speech is too long. /// /// /// The Content-Type header (PostContent API) has an invalid value. /// /// REST API Reference for PostContent Operation Task PostContentAsync(PostContentRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)); #endregion #region PostText /// /// 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: /// /// ///
  • /// /// For a user input "I would like a pizza", Amazon Lex might return a response with /// a message eliciting slot data (for example, PizzaSize): "What size pizza would you /// like?" /// ///
  • /// /// After the user provides all of the pizza order information, Amazon Lex might return /// a response with a message to obtain user confirmation "Proceed with the pizza order?". /// /// ///
  • /// /// After the user replies to a confirmation prompt with a "yes", Amazon Lex might return /// a conclusion statement: "Thank you, your cheese pizza has been ordered.". /// ///
/// /// 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: /// ///
  • /// /// If the message is to elicit slot data, Amazon Lex returns the following context information: /// ///
    • /// /// dialogState set to ElicitSlot /// ///
    • /// /// intentName set to the intent name in the current context /// ///
    • /// /// slotToElicit set to the slot name for which the message /// is eliciting information /// ///
    • /// /// slots set to a map of slots, configured for the intent, with currently /// known values /// ///
  • /// /// If the message is a confirmation prompt, the dialogState is set to ConfirmIntent /// and SlotToElicit is set to null. /// ///
  • /// /// If the message is a clarification prompt (configured for the intent) that indicates /// that user intent is not understood, the dialogState is set to ElicitIntent /// and slotToElicit is set to null. /// ///
/// /// In addition, Amazon Lex also returns your application-specific sessionAttributes. /// For more information, see Managing /// Conversation Context. /// ///
/// Container for the necessary parameters to execute the PostText service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the PostText service method, as returned by Lex. /// /// Either the Amazon Lex bot is still building, or one of the dependent services (Amazon /// Polly, AWS Lambda) failed with an internal service error. /// /// /// Request validation failed, there is no usable message in the context, or the bot /// build failed, is still in progress, or contains unbuilt changes. /// /// /// Two clients are using the same AWS account, Amazon Lex bot, and user ID. /// /// /// One of the dependencies, such as AWS Lambda or Amazon Polly, threw an exception. /// For example, /// ///
  • /// /// If Amazon Lex does not have sufficient permissions to call a Lambda function. /// ///
  • /// /// If a Lambda function takes longer than 30 seconds to execute. /// ///
  • /// /// If a fulfillment Lambda function returns a Delegate dialog action without /// removing any slot values. /// ///
///
/// /// Internal service error. Retry the call. /// /// /// Exceeded a limit. /// /// /// This exception is not used. /// /// /// The resource (such as the Amazon Lex bot or an alias) that is referred to is not found. /// /// REST API Reference for PostText Operation Task PostTextAsync(PostTextRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)); #endregion #region PutSession /// /// Creates a new session or modifies an existing session with an Amazon Lex bot. Use /// this operation to enable your application to set the state of the bot. /// /// /// /// For more information, see Managing /// Sessions. /// /// /// Container for the necessary parameters to execute the PutSession service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the PutSession service method, as returned by Lex. /// /// Either the Amazon Lex bot is still building, or one of the dependent services (Amazon /// Polly, AWS Lambda) failed with an internal service error. /// /// /// Request validation failed, there is no usable message in the context, or the bot /// build failed, is still in progress, or contains unbuilt changes. /// /// /// Two clients are using the same AWS account, Amazon Lex bot, and user ID. /// /// /// One of the dependencies, such as AWS Lambda or Amazon Polly, threw an exception. /// For example, /// ///
  • /// /// If Amazon Lex does not have sufficient permissions to call a Lambda function. /// ///
  • /// /// If a Lambda function takes longer than 30 seconds to execute. /// ///
  • /// /// If a fulfillment Lambda function returns a Delegate dialog action without /// removing any slot values. /// ///
///
/// /// Internal service error. Retry the call. /// /// /// Exceeded a limit. /// /// /// The accept header in the request does not have a valid value. /// /// /// The resource (such as the Amazon Lex bot or an alias) that is referred to is not found. /// /// REST API Reference for PutSession Operation Task PutSessionAsync(PutSessionRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)); #endregion } }