/* * 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 lex-models-2017-04-19.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.LexModelBuildingService.Model { /// /// Container for the parameters to the PutBot operation. /// Creates an Amazon Lex conversational bot or replaces an existing bot. When you create /// or update a bot you are only required to specify a name, a locale, and whether the /// bot is directed toward children under age 13. You can use this to add intents later, /// or to remove intents from an existing bot. When you create a bot with the minimum /// information, the bot is created or updated but Amazon Lex returns the response /// FAILED. You can build the bot after you add one or more intents. For /// more information about Amazon Lex bots, see how-it-works. /// /// /// /// If you specify the name of an existing bot, the fields in the request replace the /// existing values in the $LATEST version of the bot. Amazon Lex removes /// any fields that you don't provide values for in the request, except for the idleTTLInSeconds /// and privacySettings fields, which are set to their default values. If /// you don't specify values for required fields, Amazon Lex throws an exception. /// /// /// /// This operation requires permissions for the lex:PutBot action. For more /// information, see security-iam. /// /// public partial class PutBotRequest : AmazonLexModelBuildingServiceRequest { private Statement _abortStatement; private string _checksum; private bool? _childDirected; private Prompt _clarificationPrompt; private bool? _createVersion; private string _description; private bool? _detectSentiment; private bool? _enableModelImprovements; private int? _idleSessionTTLInSeconds; private List _intents = new List(); private Locale _locale; private string _name; private double? _nluIntentConfidenceThreshold; private ProcessBehavior _processBehavior; private List _tags = new List(); private string _voiceId; /// /// Gets and sets the property AbortStatement. /// /// When Amazon Lex can't understand the user's input in context, it tries to elicit the /// information a few times. After that, Amazon Lex sends the message defined in abortStatement /// to the user, and then cancels the conversation. To set the number of retries, use /// the valueElicitationPrompt field for the slot type. /// /// /// /// For example, in a pizza ordering bot, Amazon Lex might ask a user "What type of crust /// would you like?" If the user's response is not one of the expected responses (for /// example, "thin crust, "deep dish," etc.), Amazon Lex tries to elicit a correct response /// a few more times. /// /// /// /// For example, in a pizza ordering application, OrderPizza might be one /// of the intents. This intent might require the CrustType slot. You specify /// the valueElicitationPrompt field when you create the CrustType /// slot. /// /// /// /// If you have defined a fallback intent the cancel statement will not be sent to the /// user, the fallback intent is used instead. For more information, see /// AMAZON.FallbackIntent. /// /// public Statement AbortStatement { get { return this._abortStatement; } set { this._abortStatement = value; } } // Check to see if AbortStatement property is set internal bool IsSetAbortStatement() { return this._abortStatement != null; } /// /// Gets and sets the property Checksum. /// /// Identifies a specific revision of the $LATEST version. /// /// /// /// When you create a new bot, leave the checksum field blank. If you specify /// a checksum you get a BadRequestException exception. /// /// /// /// When you want to update a bot, set the checksum field to the checksum /// of the most recent revision of the $LATEST version. If you don't specify /// the checksum field, or if the checksum does not match the $LATEST /// version, you get a PreconditionFailedException exception. /// /// public string Checksum { get { return this._checksum; } set { this._checksum = value; } } // Check to see if Checksum property is set internal bool IsSetChecksum() { return this._checksum != null; } /// /// Gets and sets the property ChildDirected. /// /// For each Amazon Lex bot created with the Amazon Lex Model Building Service, you must /// specify whether your use of Amazon Lex is related to a website, program, or other /// application that is directed or targeted, in whole or in part, to children under age /// 13 and subject to the Children's Online Privacy Protection Act (COPPA) by specifying /// true or false in the childDirected field. By /// specifying true in the childDirected field, you confirm /// that your use of Amazon Lex is related to a website, program, or other application /// that is directed or targeted, in whole or in part, to children under age 13 and subject /// to COPPA. By specifying false in the childDirected field, /// you confirm that your use of Amazon Lex is not related to a website, program, /// or other application that is directed or targeted, in whole or in part, to children /// under age 13 and subject to COPPA. You may not specify a default value for the childDirected /// field that does not accurately reflect whether your use of Amazon Lex is related to /// a website, program, or other application that is directed or targeted, in whole or /// in part, to children under age 13 and subject to COPPA. /// /// /// /// If your use of Amazon Lex relates to a website, program, or other application that /// is directed in whole or in part, to children under age 13, you must obtain any required /// verifiable parental consent under COPPA. For information regarding the use of Amazon /// Lex in connection with websites, programs, or other applications that are directed /// or targeted, in whole or in part, to children under age 13, see the Amazon /// Lex FAQ. /// /// [AWSProperty(Required=true)] public bool ChildDirected { get { return this._childDirected.GetValueOrDefault(); } set { this._childDirected = value; } } // Check to see if ChildDirected property is set internal bool IsSetChildDirected() { return this._childDirected.HasValue; } /// /// Gets and sets the property ClarificationPrompt. /// /// When Amazon Lex doesn't understand the user's intent, it uses this message to get /// clarification. To specify how many times Amazon Lex should repeat the clarification /// prompt, use the maxAttempts field. If Amazon Lex still doesn't understand, /// it sends the message in the abortStatement field. /// /// /// /// When you create a clarification prompt, make sure that it suggests the correct response /// from the user. for example, for a bot that orders pizza and drinks, you might create /// this clarification prompt: "What would you like to do? You can say 'Order a pizza' /// or 'Order a drink.'" /// /// /// /// If you have defined a fallback intent, it will be invoked if the clarification prompt /// is repeated the number of times defined in the maxAttempts field. For /// more information, see /// AMAZON.FallbackIntent. /// /// /// /// If you don't define a clarification prompt, at runtime Amazon Lex will return a 400 /// Bad Request exception in three cases: /// ///
  • /// /// Follow-up prompt - When the user responds to a follow-up prompt but does not provide /// an intent. For example, in response to a follow-up prompt that says "Would you like /// anything else today?" the user says "Yes." Amazon Lex will return a 400 Bad Request /// exception because it does not have a clarification prompt to send to the user to get /// an intent. /// ///
  • /// /// Lambda function - When using a Lambda function, you return an ElicitIntent /// dialog type. Since Amazon Lex does not have a clarification prompt to get an intent /// from the user, it returns a 400 Bad Request exception. /// ///
  • /// /// PutSession operation - When using the PutSession operation, you send /// an ElicitIntent dialog type. Since Amazon Lex does not have a clarification /// prompt to get an intent from the user, it returns a 400 Bad Request exception. /// ///
///
public Prompt ClarificationPrompt { get { return this._clarificationPrompt; } set { this._clarificationPrompt = value; } } // Check to see if ClarificationPrompt property is set internal bool IsSetClarificationPrompt() { return this._clarificationPrompt != null; } /// /// Gets and sets the property CreateVersion. /// /// When set to true a new numbered version of the bot is created. This is /// the same as calling the CreateBotVersion operation. If you don't specify /// createVersion, the default is false. /// /// public bool CreateVersion { get { return this._createVersion.GetValueOrDefault(); } set { this._createVersion = value; } } // Check to see if CreateVersion property is set internal bool IsSetCreateVersion() { return this._createVersion.HasValue; } /// /// Gets and sets the property Description. /// /// A description of the bot. /// /// [AWSProperty(Min=0, Max=200)] public string Description { get { return this._description; } set { this._description = value; } } // Check to see if Description property is set internal bool IsSetDescription() { return this._description != null; } /// /// Gets and sets the property DetectSentiment. /// /// When set to true user utterances are sent to Amazon Comprehend for sentiment /// analysis. If you don't specify detectSentiment, the default is false. /// /// public bool DetectSentiment { get { return this._detectSentiment.GetValueOrDefault(); } set { this._detectSentiment = value; } } // Check to see if DetectSentiment property is set internal bool IsSetDetectSentiment() { return this._detectSentiment.HasValue; } /// /// Gets and sets the property EnableModelImprovements. /// /// Set to true to enable access to natural language understanding improvements. /// /// /// /// /// When you set the enableModelImprovements parameter to true /// you can use the nluIntentConfidenceThreshold parameter to configure confidence /// scores. For more information, see Confidence /// Scores. /// /// /// /// You can only set the enableModelImprovements parameter in certain Regions. /// If you set the parameter to true, your bot has access to accuracy improvements. /// /// /// /// The Regions where you can set the enableModelImprovements parameter to /// true are: /// ///
  • /// /// US East (N. Virginia) (us-east-1) /// ///
  • /// /// US West (Oregon) (us-west-2) /// ///
  • /// /// Asia Pacific (Sydney) (ap-southeast-2) /// ///
  • /// /// EU (Ireland) (eu-west-1) /// ///
/// /// In other Regions, the enableModelImprovements parameter is set to true /// by default. In these Regions setting the parameter to false throws a /// ValidationException exception. /// ///
public bool EnableModelImprovements { get { return this._enableModelImprovements.GetValueOrDefault(); } set { this._enableModelImprovements = value; } } // Check to see if EnableModelImprovements property is set internal bool IsSetEnableModelImprovements() { return this._enableModelImprovements.HasValue; } /// /// Gets and sets the property IdleSessionTTLInSeconds. /// /// The maximum time in seconds that Amazon Lex retains the data gathered in a conversation. /// /// /// /// A user interaction session remains active for the amount of time specified. If no /// conversation occurs during this time, the session expires and Amazon Lex deletes any /// data provided before the timeout. /// /// /// /// For example, suppose that a user chooses the OrderPizza intent, but gets sidetracked /// halfway through placing an order. If the user doesn't complete the order within the /// specified time, Amazon Lex discards the slot information that it gathered, and the /// user must start over. /// /// /// /// If you don't include the idleSessionTTLInSeconds element in a PutBot /// operation request, Amazon Lex uses the default value. This is also true if the request /// replaces an existing bot. /// /// /// /// The default is 300 seconds (5 minutes). /// /// [AWSProperty(Min=60, Max=86400)] public int IdleSessionTTLInSeconds { get { return this._idleSessionTTLInSeconds.GetValueOrDefault(); } set { this._idleSessionTTLInSeconds = value; } } // Check to see if IdleSessionTTLInSeconds property is set internal bool IsSetIdleSessionTTLInSeconds() { return this._idleSessionTTLInSeconds.HasValue; } /// /// Gets and sets the property Intents. /// /// An array of Intent objects. Each intent represents a command that a user /// can express. For example, a pizza ordering bot might support an OrderPizza intent. /// For more information, see how-it-works. /// /// public List Intents { get { return this._intents; } set { this._intents = value; } } // Check to see if Intents property is set internal bool IsSetIntents() { return this._intents != null && this._intents.Count > 0; } /// /// Gets and sets the property Locale. /// /// Specifies the target locale for the bot. Any intent used in the bot must be compatible /// with the locale of the bot. /// /// /// /// The default is en-US. /// /// [AWSProperty(Required=true)] public Locale Locale { get { return this._locale; } set { this._locale = value; } } // Check to see if Locale property is set internal bool IsSetLocale() { return this._locale != null; } /// /// Gets and sets the property Name. /// /// The name of the bot. The name is not case sensitive. /// /// [AWSProperty(Required=true, Min=2, Max=50)] public string Name { get { return this._name; } set { this._name = value; } } // Check to see if Name property is set internal bool IsSetName() { return this._name != null; } /// /// Gets and sets the property NluIntentConfidenceThreshold. /// /// Determines the threshold where Amazon Lex will insert the AMAZON.FallbackIntent, /// AMAZON.KendraSearchIntent, or both when returning alternative intents /// in a PostContent /// or PostText /// response. AMAZON.FallbackIntent and AMAZON.KendraSearchIntent /// are only inserted if they are configured for the bot. /// /// /// /// You must set the enableModelImprovements parameter to true /// to use confidence scores in the following regions. /// ///
  • /// /// US East (N. Virginia) (us-east-1) /// ///
  • /// /// US West (Oregon) (us-west-2) /// ///
  • /// /// Asia Pacific (Sydney) (ap-southeast-2) /// ///
  • /// /// EU (Ireland) (eu-west-1) /// ///
/// /// In other Regions, the enableModelImprovements parameter is set to true /// by default. /// /// /// /// For example, suppose a bot is configured with the confidence threshold of 0.80 and /// the AMAZON.FallbackIntent. Amazon Lex returns three alternative intents /// with the following confidence scores: IntentA (0.70), IntentB (0.60), IntentC (0.50). /// The response from the PostText operation would be: /// ///
  • /// /// AMAZON.FallbackIntent /// ///
  • /// /// IntentA /// ///
  • /// /// IntentB /// ///
  • /// /// IntentC /// ///
///
[AWSProperty(Min=0, Max=1)] public double NluIntentConfidenceThreshold { get { return this._nluIntentConfidenceThreshold.GetValueOrDefault(); } set { this._nluIntentConfidenceThreshold = value; } } // Check to see if NluIntentConfidenceThreshold property is set internal bool IsSetNluIntentConfidenceThreshold() { return this._nluIntentConfidenceThreshold.HasValue; } /// /// Gets and sets the property ProcessBehavior. /// /// If you set the processBehavior element to BUILD, Amazon /// Lex builds the bot so that it can be run. If you set the element to SAVE /// Amazon Lex saves the bot, but doesn't build it. /// /// /// /// If you don't specify this value, the default value is BUILD. /// /// public ProcessBehavior ProcessBehavior { get { return this._processBehavior; } set { this._processBehavior = value; } } // Check to see if ProcessBehavior property is set internal bool IsSetProcessBehavior() { return this._processBehavior != null; } /// /// Gets and sets the property Tags. /// /// A list of tags to add to the bot. You can only add tags when you create a bot, you /// can't use the PutBot operation to update the tags on a bot. To update /// tags, use the TagResource operation. /// /// [AWSProperty(Min=0, Max=200)] public List Tags { get { return this._tags; } set { this._tags = value; } } // Check to see if Tags property is set internal bool IsSetTags() { return this._tags != null && this._tags.Count > 0; } /// /// Gets and sets the property VoiceId. /// /// The Amazon Polly voice ID that you want Amazon Lex to use for voice interactions with /// the user. The locale configured for the voice must match the locale of the bot. For /// more information, see Voices /// in Amazon Polly in the Amazon Polly Developer Guide. /// /// public string VoiceId { get { return this._voiceId; } set { this._voiceId = value; } } // Check to see if VoiceId property is set internal bool IsSetVoiceId() { return this._voiceId != null; } } }