aws_sdk_lexmodelsv2/operation/create_intent/
builders.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2pub use crate::operation::create_intent::_create_intent_output::CreateIntentOutputBuilder;
3
4pub use crate::operation::create_intent::_create_intent_input::CreateIntentInputBuilder;
5
6impl crate::operation::create_intent::builders::CreateIntentInputBuilder {
7    /// Sends a request with this input using the given client.
8    pub async fn send_with(
9        self,
10        client: &crate::Client,
11    ) -> ::std::result::Result<
12        crate::operation::create_intent::CreateIntentOutput,
13        ::aws_smithy_runtime_api::client::result::SdkError<
14            crate::operation::create_intent::CreateIntentError,
15            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
16        >,
17    > {
18        let mut fluent_builder = client.create_intent();
19        fluent_builder.inner = self;
20        fluent_builder.send().await
21    }
22}
23/// Fluent builder constructing a request to `CreateIntent`.
24///
25/// <p>Creates an intent.</p>
26/// <p>To define the interaction between the user and your bot, you define one or more intents. For example, for a pizza ordering bot you would create an <code>OrderPizza</code> intent.</p>
27/// <p>When you create an intent, you must provide a name. You can optionally provide the following:</p>
28/// <ul>
29/// <li>
30/// <p>Sample utterances. For example, "I want to order a pizza" and "Can I order a pizza." You can't provide utterances for built-in intents.</p></li>
31/// <li>
32/// <p>Information to be gathered. You specify slots for the information that you bot requests from the user. You can specify standard slot types, such as date and time, or custom slot types for your application.</p></li>
33/// <li>
34/// <p>How the intent is fulfilled. You can provide a Lambda function or configure the intent to return the intent information to your client application. If you use a Lambda function, Amazon Lex invokes the function when all of the intent information is available.</p></li>
35/// <li>
36/// <p>A confirmation prompt to send to the user to confirm an intent. For example, "Shall I order your pizza?"</p></li>
37/// <li>
38/// <p>A conclusion statement to send to the user after the intent is fulfilled. For example, "I ordered your pizza."</p></li>
39/// <li>
40/// <p>A follow-up prompt that asks the user for additional activity. For example, "Do you want a drink with your pizza?"</p></li>
41/// </ul>
42#[derive(::std::clone::Clone, ::std::fmt::Debug)]
43pub struct CreateIntentFluentBuilder {
44    handle: ::std::sync::Arc<crate::client::Handle>,
45    inner: crate::operation::create_intent::builders::CreateIntentInputBuilder,
46    config_override: ::std::option::Option<crate::config::Builder>,
47}
48impl
49    crate::client::customize::internal::CustomizableSend<
50        crate::operation::create_intent::CreateIntentOutput,
51        crate::operation::create_intent::CreateIntentError,
52    > for CreateIntentFluentBuilder
53{
54    fn send(
55        self,
56        config_override: crate::config::Builder,
57    ) -> crate::client::customize::internal::BoxFuture<
58        crate::client::customize::internal::SendResult<
59            crate::operation::create_intent::CreateIntentOutput,
60            crate::operation::create_intent::CreateIntentError,
61        >,
62    > {
63        ::std::boxed::Box::pin(async move { self.config_override(config_override).send().await })
64    }
65}
66impl CreateIntentFluentBuilder {
67    /// Creates a new `CreateIntentFluentBuilder`.
68    pub(crate) fn new(handle: ::std::sync::Arc<crate::client::Handle>) -> Self {
69        Self {
70            handle,
71            inner: ::std::default::Default::default(),
72            config_override: ::std::option::Option::None,
73        }
74    }
75    /// Access the CreateIntent as a reference.
76    pub fn as_input(&self) -> &crate::operation::create_intent::builders::CreateIntentInputBuilder {
77        &self.inner
78    }
79    /// Sends the request and returns the response.
80    ///
81    /// If an error occurs, an `SdkError` will be returned with additional details that
82    /// can be matched against.
83    ///
84    /// By default, any retryable failures will be retried twice. Retry behavior
85    /// is configurable with the [RetryConfig](aws_smithy_types::retry::RetryConfig), which can be
86    /// set when configuring the client.
87    pub async fn send(
88        self,
89    ) -> ::std::result::Result<
90        crate::operation::create_intent::CreateIntentOutput,
91        ::aws_smithy_runtime_api::client::result::SdkError<
92            crate::operation::create_intent::CreateIntentError,
93            ::aws_smithy_runtime_api::client::orchestrator::HttpResponse,
94        >,
95    > {
96        let input = self
97            .inner
98            .build()
99            .map_err(::aws_smithy_runtime_api::client::result::SdkError::construction_failure)?;
100        let runtime_plugins = crate::operation::create_intent::CreateIntent::operation_runtime_plugins(
101            self.handle.runtime_plugins.clone(),
102            &self.handle.conf,
103            self.config_override,
104        );
105        crate::operation::create_intent::CreateIntent::orchestrate(&runtime_plugins, input).await
106    }
107
108    /// Consumes this builder, creating a customizable operation that can be modified before being sent.
109    pub fn customize(
110        self,
111    ) -> crate::client::customize::CustomizableOperation<
112        crate::operation::create_intent::CreateIntentOutput,
113        crate::operation::create_intent::CreateIntentError,
114        Self,
115    > {
116        crate::client::customize::CustomizableOperation::new(self)
117    }
118    pub(crate) fn config_override(mut self, config_override: impl ::std::convert::Into<crate::config::Builder>) -> Self {
119        self.set_config_override(::std::option::Option::Some(config_override.into()));
120        self
121    }
122
123    pub(crate) fn set_config_override(&mut self, config_override: ::std::option::Option<crate::config::Builder>) -> &mut Self {
124        self.config_override = config_override;
125        self
126    }
127    /// <p>The name of the intent. Intent names must be unique in the locale that contains the intent and cannot match the name of any built-in intent.</p>
128    pub fn intent_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
129        self.inner = self.inner.intent_name(input.into());
130        self
131    }
132    /// <p>The name of the intent. Intent names must be unique in the locale that contains the intent and cannot match the name of any built-in intent.</p>
133    pub fn set_intent_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
134        self.inner = self.inner.set_intent_name(input);
135        self
136    }
137    /// <p>The name of the intent. Intent names must be unique in the locale that contains the intent and cannot match the name of any built-in intent.</p>
138    pub fn get_intent_name(&self) -> &::std::option::Option<::std::string::String> {
139        self.inner.get_intent_name()
140    }
141    /// <p>A display name for the intent. If configured, This name will be shown to users during Intent Disambiguation instead of the intent name. Display names should be user-friendly, descriptive and match the intent's purpose to improve user experience during disambiguation.</p>
142    pub fn intent_display_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
143        self.inner = self.inner.intent_display_name(input.into());
144        self
145    }
146    /// <p>A display name for the intent. If configured, This name will be shown to users during Intent Disambiguation instead of the intent name. Display names should be user-friendly, descriptive and match the intent's purpose to improve user experience during disambiguation.</p>
147    pub fn set_intent_display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
148        self.inner = self.inner.set_intent_display_name(input);
149        self
150    }
151    /// <p>A display name for the intent. If configured, This name will be shown to users during Intent Disambiguation instead of the intent name. Display names should be user-friendly, descriptive and match the intent's purpose to improve user experience during disambiguation.</p>
152    pub fn get_intent_display_name(&self) -> &::std::option::Option<::std::string::String> {
153        self.inner.get_intent_display_name()
154    }
155    /// <p>A description of the intent. Use the description to help identify the intent in lists.</p>
156    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
157        self.inner = self.inner.description(input.into());
158        self
159    }
160    /// <p>A description of the intent. Use the description to help identify the intent in lists.</p>
161    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
162        self.inner = self.inner.set_description(input);
163        self
164    }
165    /// <p>A description of the intent. Use the description to help identify the intent in lists.</p>
166    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
167        self.inner.get_description()
168    }
169    /// <p>A unique identifier for the built-in intent to base this intent on.</p>
170    pub fn parent_intent_signature(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
171        self.inner = self.inner.parent_intent_signature(input.into());
172        self
173    }
174    /// <p>A unique identifier for the built-in intent to base this intent on.</p>
175    pub fn set_parent_intent_signature(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
176        self.inner = self.inner.set_parent_intent_signature(input);
177        self
178    }
179    /// <p>A unique identifier for the built-in intent to base this intent on.</p>
180    pub fn get_parent_intent_signature(&self) -> &::std::option::Option<::std::string::String> {
181        self.inner.get_parent_intent_signature()
182    }
183    ///
184    /// Appends an item to `sampleUtterances`.
185    ///
186    /// To override the contents of this collection use [`set_sample_utterances`](Self::set_sample_utterances).
187    ///
188    /// <p>An array of strings that a user might say to signal the intent. For example, "I want a pizza", or "I want a {PizzaSize} pizza".</p>
189    /// <p>In an utterance, slot names are enclosed in curly braces ("{", "}") to indicate where they should be displayed in the utterance shown to the user..</p>
190    pub fn sample_utterances(mut self, input: crate::types::SampleUtterance) -> Self {
191        self.inner = self.inner.sample_utterances(input);
192        self
193    }
194    /// <p>An array of strings that a user might say to signal the intent. For example, "I want a pizza", or "I want a {PizzaSize} pizza".</p>
195    /// <p>In an utterance, slot names are enclosed in curly braces ("{", "}") to indicate where they should be displayed in the utterance shown to the user..</p>
196    pub fn set_sample_utterances(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::SampleUtterance>>) -> Self {
197        self.inner = self.inner.set_sample_utterances(input);
198        self
199    }
200    /// <p>An array of strings that a user might say to signal the intent. For example, "I want a pizza", or "I want a {PizzaSize} pizza".</p>
201    /// <p>In an utterance, slot names are enclosed in curly braces ("{", "}") to indicate where they should be displayed in the utterance shown to the user..</p>
202    pub fn get_sample_utterances(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::SampleUtterance>> {
203        self.inner.get_sample_utterances()
204    }
205    /// <p>Specifies that Amazon Lex invokes the alias Lambda function for each user input. You can invoke this Lambda function to personalize user interaction.</p>
206    /// <p>For example, suppose that your bot determines that the user's name is John. You Lambda function might retrieve John's information from a backend database and prepopulate some of the values. For example, if you find that John is gluten intolerant, you might set the corresponding intent slot, <code>glutenIntolerant</code> to <code>true</code>. You might find John's phone number and set the corresponding session attribute.</p>
207    pub fn dialog_code_hook(mut self, input: crate::types::DialogCodeHookSettings) -> Self {
208        self.inner = self.inner.dialog_code_hook(input);
209        self
210    }
211    /// <p>Specifies that Amazon Lex invokes the alias Lambda function for each user input. You can invoke this Lambda function to personalize user interaction.</p>
212    /// <p>For example, suppose that your bot determines that the user's name is John. You Lambda function might retrieve John's information from a backend database and prepopulate some of the values. For example, if you find that John is gluten intolerant, you might set the corresponding intent slot, <code>glutenIntolerant</code> to <code>true</code>. You might find John's phone number and set the corresponding session attribute.</p>
213    pub fn set_dialog_code_hook(mut self, input: ::std::option::Option<crate::types::DialogCodeHookSettings>) -> Self {
214        self.inner = self.inner.set_dialog_code_hook(input);
215        self
216    }
217    /// <p>Specifies that Amazon Lex invokes the alias Lambda function for each user input. You can invoke this Lambda function to personalize user interaction.</p>
218    /// <p>For example, suppose that your bot determines that the user's name is John. You Lambda function might retrieve John's information from a backend database and prepopulate some of the values. For example, if you find that John is gluten intolerant, you might set the corresponding intent slot, <code>glutenIntolerant</code> to <code>true</code>. You might find John's phone number and set the corresponding session attribute.</p>
219    pub fn get_dialog_code_hook(&self) -> &::std::option::Option<crate::types::DialogCodeHookSettings> {
220        self.inner.get_dialog_code_hook()
221    }
222    /// <p>Specifies that Amazon Lex invokes the alias Lambda function when the intent is ready for fulfillment. You can invoke this function to complete the bot's transaction with the user.</p>
223    /// <p>For example, in a pizza ordering bot, the Lambda function can look up the closest pizza restaurant to the customer's location and then place an order on the customer's behalf.</p>
224    pub fn fulfillment_code_hook(mut self, input: crate::types::FulfillmentCodeHookSettings) -> Self {
225        self.inner = self.inner.fulfillment_code_hook(input);
226        self
227    }
228    /// <p>Specifies that Amazon Lex invokes the alias Lambda function when the intent is ready for fulfillment. You can invoke this function to complete the bot's transaction with the user.</p>
229    /// <p>For example, in a pizza ordering bot, the Lambda function can look up the closest pizza restaurant to the customer's location and then place an order on the customer's behalf.</p>
230    pub fn set_fulfillment_code_hook(mut self, input: ::std::option::Option<crate::types::FulfillmentCodeHookSettings>) -> Self {
231        self.inner = self.inner.set_fulfillment_code_hook(input);
232        self
233    }
234    /// <p>Specifies that Amazon Lex invokes the alias Lambda function when the intent is ready for fulfillment. You can invoke this function to complete the bot's transaction with the user.</p>
235    /// <p>For example, in a pizza ordering bot, the Lambda function can look up the closest pizza restaurant to the customer's location and then place an order on the customer's behalf.</p>
236    pub fn get_fulfillment_code_hook(&self) -> &::std::option::Option<crate::types::FulfillmentCodeHookSettings> {
237        self.inner.get_fulfillment_code_hook()
238    }
239    /// <p>Provides prompts that Amazon Lex sends to the user to confirm the completion of an intent. If the user answers "no," the settings contain a statement that is sent to the user to end the intent.</p>
240    pub fn intent_confirmation_setting(mut self, input: crate::types::IntentConfirmationSetting) -> Self {
241        self.inner = self.inner.intent_confirmation_setting(input);
242        self
243    }
244    /// <p>Provides prompts that Amazon Lex sends to the user to confirm the completion of an intent. If the user answers "no," the settings contain a statement that is sent to the user to end the intent.</p>
245    pub fn set_intent_confirmation_setting(mut self, input: ::std::option::Option<crate::types::IntentConfirmationSetting>) -> Self {
246        self.inner = self.inner.set_intent_confirmation_setting(input);
247        self
248    }
249    /// <p>Provides prompts that Amazon Lex sends to the user to confirm the completion of an intent. If the user answers "no," the settings contain a statement that is sent to the user to end the intent.</p>
250    pub fn get_intent_confirmation_setting(&self) -> &::std::option::Option<crate::types::IntentConfirmationSetting> {
251        self.inner.get_intent_confirmation_setting()
252    }
253    /// <p>Sets the response that Amazon Lex sends to the user when the intent is closed.</p>
254    pub fn intent_closing_setting(mut self, input: crate::types::IntentClosingSetting) -> Self {
255        self.inner = self.inner.intent_closing_setting(input);
256        self
257    }
258    /// <p>Sets the response that Amazon Lex sends to the user when the intent is closed.</p>
259    pub fn set_intent_closing_setting(mut self, input: ::std::option::Option<crate::types::IntentClosingSetting>) -> Self {
260        self.inner = self.inner.set_intent_closing_setting(input);
261        self
262    }
263    /// <p>Sets the response that Amazon Lex sends to the user when the intent is closed.</p>
264    pub fn get_intent_closing_setting(&self) -> &::std::option::Option<crate::types::IntentClosingSetting> {
265        self.inner.get_intent_closing_setting()
266    }
267    ///
268    /// Appends an item to `inputContexts`.
269    ///
270    /// To override the contents of this collection use [`set_input_contexts`](Self::set_input_contexts).
271    ///
272    /// <p>A list of contexts that must be active for this intent to be considered by Amazon Lex.</p>
273    /// <p>When an intent has an input context list, Amazon Lex only considers using the intent in an interaction with the user when the specified contexts are included in the active context list for the session. If the contexts are not active, then Amazon Lex will not use the intent.</p>
274    /// <p>A context can be automatically activated using the <code>outputContexts</code> property or it can be set at runtime.</p>
275    /// <p>For example, if there are two intents with different input contexts that respond to the same utterances, only the intent with the active context will respond.</p>
276    /// <p>An intent may have up to 5 input contexts. If an intent has multiple input contexts, all of the contexts must be active to consider the intent.</p>
277    pub fn input_contexts(mut self, input: crate::types::InputContext) -> Self {
278        self.inner = self.inner.input_contexts(input);
279        self
280    }
281    /// <p>A list of contexts that must be active for this intent to be considered by Amazon Lex.</p>
282    /// <p>When an intent has an input context list, Amazon Lex only considers using the intent in an interaction with the user when the specified contexts are included in the active context list for the session. If the contexts are not active, then Amazon Lex will not use the intent.</p>
283    /// <p>A context can be automatically activated using the <code>outputContexts</code> property or it can be set at runtime.</p>
284    /// <p>For example, if there are two intents with different input contexts that respond to the same utterances, only the intent with the active context will respond.</p>
285    /// <p>An intent may have up to 5 input contexts. If an intent has multiple input contexts, all of the contexts must be active to consider the intent.</p>
286    pub fn set_input_contexts(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InputContext>>) -> Self {
287        self.inner = self.inner.set_input_contexts(input);
288        self
289    }
290    /// <p>A list of contexts that must be active for this intent to be considered by Amazon Lex.</p>
291    /// <p>When an intent has an input context list, Amazon Lex only considers using the intent in an interaction with the user when the specified contexts are included in the active context list for the session. If the contexts are not active, then Amazon Lex will not use the intent.</p>
292    /// <p>A context can be automatically activated using the <code>outputContexts</code> property or it can be set at runtime.</p>
293    /// <p>For example, if there are two intents with different input contexts that respond to the same utterances, only the intent with the active context will respond.</p>
294    /// <p>An intent may have up to 5 input contexts. If an intent has multiple input contexts, all of the contexts must be active to consider the intent.</p>
295    pub fn get_input_contexts(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InputContext>> {
296        self.inner.get_input_contexts()
297    }
298    ///
299    /// Appends an item to `outputContexts`.
300    ///
301    /// To override the contents of this collection use [`set_output_contexts`](Self::set_output_contexts).
302    ///
303    /// <p>A lists of contexts that the intent activates when it is fulfilled.</p>
304    /// <p>You can use an output context to indicate the intents that Amazon Lex should consider for the next turn of the conversation with a customer.</p>
305    /// <p>When you use the <code>outputContextsList</code> property, all of the contexts specified in the list are activated when the intent is fulfilled. You can set up to 10 output contexts. You can also set the number of conversation turns that the context should be active, or the length of time that the context should be active.</p>
306    pub fn output_contexts(mut self, input: crate::types::OutputContext) -> Self {
307        self.inner = self.inner.output_contexts(input);
308        self
309    }
310    /// <p>A lists of contexts that the intent activates when it is fulfilled.</p>
311    /// <p>You can use an output context to indicate the intents that Amazon Lex should consider for the next turn of the conversation with a customer.</p>
312    /// <p>When you use the <code>outputContextsList</code> property, all of the contexts specified in the list are activated when the intent is fulfilled. You can set up to 10 output contexts. You can also set the number of conversation turns that the context should be active, or the length of time that the context should be active.</p>
313    pub fn set_output_contexts(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::OutputContext>>) -> Self {
314        self.inner = self.inner.set_output_contexts(input);
315        self
316    }
317    /// <p>A lists of contexts that the intent activates when it is fulfilled.</p>
318    /// <p>You can use an output context to indicate the intents that Amazon Lex should consider for the next turn of the conversation with a customer.</p>
319    /// <p>When you use the <code>outputContextsList</code> property, all of the contexts specified in the list are activated when the intent is fulfilled. You can set up to 10 output contexts. You can also set the number of conversation turns that the context should be active, or the length of time that the context should be active.</p>
320    pub fn get_output_contexts(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::OutputContext>> {
321        self.inner.get_output_contexts()
322    }
323    /// <p>Configuration information required to use the <code>AMAZON.KendraSearchIntent</code> intent to connect to an Amazon Kendra index. The <code>AMAZON.KendraSearchIntent</code> intent is called when Amazon Lex can't determine another intent to invoke.</p>
324    pub fn kendra_configuration(mut self, input: crate::types::KendraConfiguration) -> Self {
325        self.inner = self.inner.kendra_configuration(input);
326        self
327    }
328    /// <p>Configuration information required to use the <code>AMAZON.KendraSearchIntent</code> intent to connect to an Amazon Kendra index. The <code>AMAZON.KendraSearchIntent</code> intent is called when Amazon Lex can't determine another intent to invoke.</p>
329    pub fn set_kendra_configuration(mut self, input: ::std::option::Option<crate::types::KendraConfiguration>) -> Self {
330        self.inner = self.inner.set_kendra_configuration(input);
331        self
332    }
333    /// <p>Configuration information required to use the <code>AMAZON.KendraSearchIntent</code> intent to connect to an Amazon Kendra index. The <code>AMAZON.KendraSearchIntent</code> intent is called when Amazon Lex can't determine another intent to invoke.</p>
334    pub fn get_kendra_configuration(&self) -> &::std::option::Option<crate::types::KendraConfiguration> {
335        self.inner.get_kendra_configuration()
336    }
337    /// <p>The identifier of the bot associated with this intent.</p>
338    pub fn bot_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
339        self.inner = self.inner.bot_id(input.into());
340        self
341    }
342    /// <p>The identifier of the bot associated with this intent.</p>
343    pub fn set_bot_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
344        self.inner = self.inner.set_bot_id(input);
345        self
346    }
347    /// <p>The identifier of the bot associated with this intent.</p>
348    pub fn get_bot_id(&self) -> &::std::option::Option<::std::string::String> {
349        self.inner.get_bot_id()
350    }
351    /// <p>The version of the bot associated with this intent.</p>
352    pub fn bot_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
353        self.inner = self.inner.bot_version(input.into());
354        self
355    }
356    /// <p>The version of the bot associated with this intent.</p>
357    pub fn set_bot_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
358        self.inner = self.inner.set_bot_version(input);
359        self
360    }
361    /// <p>The version of the bot associated with this intent.</p>
362    pub fn get_bot_version(&self) -> &::std::option::Option<::std::string::String> {
363        self.inner.get_bot_version()
364    }
365    /// <p>The identifier of the language and locale where this intent is used. All of the bots, slot types, and slots used by the intent must have the same locale. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.</p>
366    pub fn locale_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
367        self.inner = self.inner.locale_id(input.into());
368        self
369    }
370    /// <p>The identifier of the language and locale where this intent is used. All of the bots, slot types, and slots used by the intent must have the same locale. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.</p>
371    pub fn set_locale_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
372        self.inner = self.inner.set_locale_id(input);
373        self
374    }
375    /// <p>The identifier of the language and locale where this intent is used. All of the bots, slot types, and slots used by the intent must have the same locale. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.</p>
376    pub fn get_locale_id(&self) -> &::std::option::Option<::std::string::String> {
377        self.inner.get_locale_id()
378    }
379    /// <p>Configuration settings for the response that is sent to the user at the beginning of a conversation, before eliciting slot values.</p>
380    pub fn initial_response_setting(mut self, input: crate::types::InitialResponseSetting) -> Self {
381        self.inner = self.inner.initial_response_setting(input);
382        self
383    }
384    /// <p>Configuration settings for the response that is sent to the user at the beginning of a conversation, before eliciting slot values.</p>
385    pub fn set_initial_response_setting(mut self, input: ::std::option::Option<crate::types::InitialResponseSetting>) -> Self {
386        self.inner = self.inner.set_initial_response_setting(input);
387        self
388    }
389    /// <p>Configuration settings for the response that is sent to the user at the beginning of a conversation, before eliciting slot values.</p>
390    pub fn get_initial_response_setting(&self) -> &::std::option::Option<crate::types::InitialResponseSetting> {
391        self.inner.get_initial_response_setting()
392    }
393    /// <p>Specifies the configuration of the built-in <code>Amazon.QnAIntent</code>. The <code>AMAZON.QnAIntent</code> intent is called when Amazon Lex can't determine another intent to invoke. If you specify this field, you can't specify the <code>kendraConfiguration</code> field.</p>
394    pub fn qn_a_intent_configuration(mut self, input: crate::types::QnAIntentConfiguration) -> Self {
395        self.inner = self.inner.qn_a_intent_configuration(input);
396        self
397    }
398    /// <p>Specifies the configuration of the built-in <code>Amazon.QnAIntent</code>. The <code>AMAZON.QnAIntent</code> intent is called when Amazon Lex can't determine another intent to invoke. If you specify this field, you can't specify the <code>kendraConfiguration</code> field.</p>
399    pub fn set_qn_a_intent_configuration(mut self, input: ::std::option::Option<crate::types::QnAIntentConfiguration>) -> Self {
400        self.inner = self.inner.set_qn_a_intent_configuration(input);
401        self
402    }
403    /// <p>Specifies the configuration of the built-in <code>Amazon.QnAIntent</code>. The <code>AMAZON.QnAIntent</code> intent is called when Amazon Lex can't determine another intent to invoke. If you specify this field, you can't specify the <code>kendraConfiguration</code> field.</p>
404    pub fn get_qn_a_intent_configuration(&self) -> &::std::option::Option<crate::types::QnAIntentConfiguration> {
405        self.inner.get_qn_a_intent_configuration()
406    }
407    /// <p>Qinconnect intent configuration details for the create intent request.</p>
408    pub fn q_in_connect_intent_configuration(mut self, input: crate::types::QInConnectIntentConfiguration) -> Self {
409        self.inner = self.inner.q_in_connect_intent_configuration(input);
410        self
411    }
412    /// <p>Qinconnect intent configuration details for the create intent request.</p>
413    pub fn set_q_in_connect_intent_configuration(mut self, input: ::std::option::Option<crate::types::QInConnectIntentConfiguration>) -> Self {
414        self.inner = self.inner.set_q_in_connect_intent_configuration(input);
415        self
416    }
417    /// <p>Qinconnect intent configuration details for the create intent request.</p>
418    pub fn get_q_in_connect_intent_configuration(&self) -> &::std::option::Option<crate::types::QInConnectIntentConfiguration> {
419        self.inner.get_q_in_connect_intent_configuration()
420    }
421}