/*
* 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
}
}