aws_sdk_lexmodelsv2/operation/update_intent/
_update_intent_input.rs

1// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
2#[allow(missing_docs)] // documentation missing in model
3#[non_exhaustive]
4#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::fmt::Debug)]
5pub struct UpdateIntentInput {
6    /// <p>The unique identifier of the intent to update.</p>
7    pub intent_id: ::std::option::Option<::std::string::String>,
8    /// <p>The new name for the intent.</p>
9    pub intent_name: ::std::option::Option<::std::string::String>,
10    /// <p>The new display name for the intent.</p>
11    pub intent_display_name: ::std::option::Option<::std::string::String>,
12    /// <p>The new description of the intent.</p>
13    pub description: ::std::option::Option<::std::string::String>,
14    /// <p>The signature of the new built-in intent to use as the parent of this intent.</p>
15    pub parent_intent_signature: ::std::option::Option<::std::string::String>,
16    /// <p>New utterances used to invoke the intent.</p>
17    pub sample_utterances: ::std::option::Option<::std::vec::Vec<crate::types::SampleUtterance>>,
18    /// <p>The new Lambda function to use between each turn of the conversation with the bot.</p>
19    pub dialog_code_hook: ::std::option::Option<crate::types::DialogCodeHookSettings>,
20    /// <p>The new Lambda function to call when all of the intents required slots are provided and the intent is ready for fulfillment.</p>
21    pub fulfillment_code_hook: ::std::option::Option<crate::types::FulfillmentCodeHookSettings>,
22    /// <p>A new list of slots and their priorities that are contained by the intent.</p>
23    pub slot_priorities: ::std::option::Option<::std::vec::Vec<crate::types::SlotPriority>>,
24    /// <p>New prompts that Amazon Lex sends to the user to confirm the completion of an intent.</p>
25    pub intent_confirmation_setting: ::std::option::Option<crate::types::IntentConfirmationSetting>,
26    /// <p>The new response that Amazon Lex sends the user when the intent is closed.</p>
27    pub intent_closing_setting: ::std::option::Option<crate::types::IntentClosingSetting>,
28    /// <p>A new list of contexts that must be active in order for Amazon Lex to consider the intent.</p>
29    pub input_contexts: ::std::option::Option<::std::vec::Vec<crate::types::InputContext>>,
30    /// <p>A new list of contexts that Amazon Lex activates when the intent is fulfilled.</p>
31    pub output_contexts: ::std::option::Option<::std::vec::Vec<crate::types::OutputContext>>,
32    /// <p>New configuration settings for connecting to an Amazon Kendra index.</p>
33    pub kendra_configuration: ::std::option::Option<crate::types::KendraConfiguration>,
34    /// <p>The identifier of the bot that contains the intent.</p>
35    pub bot_id: ::std::option::Option<::std::string::String>,
36    /// <p>The version of the bot that contains the intent. Must be <code>DRAFT</code>.</p>
37    pub bot_version: ::std::option::Option<::std::string::String>,
38    /// <p>The identifier of the language and locale where this intent is used. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.</p>
39    pub locale_id: ::std::option::Option<::std::string::String>,
40    /// <p>Configuration settings for a response sent to the user before Amazon Lex starts eliciting slots.</p>
41    pub initial_response_setting: ::std::option::Option<crate::types::InitialResponseSetting>,
42    /// <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>
43    pub qn_a_intent_configuration: ::std::option::Option<crate::types::QnAIntentConfiguration>,
44    /// <p>Qinconnect intent configuration details for the update intent request.</p>
45    pub q_in_connect_intent_configuration: ::std::option::Option<crate::types::QInConnectIntentConfiguration>,
46}
47impl UpdateIntentInput {
48    /// <p>The unique identifier of the intent to update.</p>
49    pub fn intent_id(&self) -> ::std::option::Option<&str> {
50        self.intent_id.as_deref()
51    }
52    /// <p>The new name for the intent.</p>
53    pub fn intent_name(&self) -> ::std::option::Option<&str> {
54        self.intent_name.as_deref()
55    }
56    /// <p>The new display name for the intent.</p>
57    pub fn intent_display_name(&self) -> ::std::option::Option<&str> {
58        self.intent_display_name.as_deref()
59    }
60    /// <p>The new description of the intent.</p>
61    pub fn description(&self) -> ::std::option::Option<&str> {
62        self.description.as_deref()
63    }
64    /// <p>The signature of the new built-in intent to use as the parent of this intent.</p>
65    pub fn parent_intent_signature(&self) -> ::std::option::Option<&str> {
66        self.parent_intent_signature.as_deref()
67    }
68    /// <p>New utterances used to invoke the intent.</p>
69    ///
70    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.sample_utterances.is_none()`.
71    pub fn sample_utterances(&self) -> &[crate::types::SampleUtterance] {
72        self.sample_utterances.as_deref().unwrap_or_default()
73    }
74    /// <p>The new Lambda function to use between each turn of the conversation with the bot.</p>
75    pub fn dialog_code_hook(&self) -> ::std::option::Option<&crate::types::DialogCodeHookSettings> {
76        self.dialog_code_hook.as_ref()
77    }
78    /// <p>The new Lambda function to call when all of the intents required slots are provided and the intent is ready for fulfillment.</p>
79    pub fn fulfillment_code_hook(&self) -> ::std::option::Option<&crate::types::FulfillmentCodeHookSettings> {
80        self.fulfillment_code_hook.as_ref()
81    }
82    /// <p>A new list of slots and their priorities that are contained by the intent.</p>
83    ///
84    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.slot_priorities.is_none()`.
85    pub fn slot_priorities(&self) -> &[crate::types::SlotPriority] {
86        self.slot_priorities.as_deref().unwrap_or_default()
87    }
88    /// <p>New prompts that Amazon Lex sends to the user to confirm the completion of an intent.</p>
89    pub fn intent_confirmation_setting(&self) -> ::std::option::Option<&crate::types::IntentConfirmationSetting> {
90        self.intent_confirmation_setting.as_ref()
91    }
92    /// <p>The new response that Amazon Lex sends the user when the intent is closed.</p>
93    pub fn intent_closing_setting(&self) -> ::std::option::Option<&crate::types::IntentClosingSetting> {
94        self.intent_closing_setting.as_ref()
95    }
96    /// <p>A new list of contexts that must be active in order for Amazon Lex to consider the intent.</p>
97    ///
98    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.input_contexts.is_none()`.
99    pub fn input_contexts(&self) -> &[crate::types::InputContext] {
100        self.input_contexts.as_deref().unwrap_or_default()
101    }
102    /// <p>A new list of contexts that Amazon Lex activates when the intent is fulfilled.</p>
103    ///
104    /// If no value was sent for this field, a default will be set. If you want to determine if no value was sent, use `.output_contexts.is_none()`.
105    pub fn output_contexts(&self) -> &[crate::types::OutputContext] {
106        self.output_contexts.as_deref().unwrap_or_default()
107    }
108    /// <p>New configuration settings for connecting to an Amazon Kendra index.</p>
109    pub fn kendra_configuration(&self) -> ::std::option::Option<&crate::types::KendraConfiguration> {
110        self.kendra_configuration.as_ref()
111    }
112    /// <p>The identifier of the bot that contains the intent.</p>
113    pub fn bot_id(&self) -> ::std::option::Option<&str> {
114        self.bot_id.as_deref()
115    }
116    /// <p>The version of the bot that contains the intent. Must be <code>DRAFT</code>.</p>
117    pub fn bot_version(&self) -> ::std::option::Option<&str> {
118        self.bot_version.as_deref()
119    }
120    /// <p>The identifier of the language and locale where this intent is used. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.</p>
121    pub fn locale_id(&self) -> ::std::option::Option<&str> {
122        self.locale_id.as_deref()
123    }
124    /// <p>Configuration settings for a response sent to the user before Amazon Lex starts eliciting slots.</p>
125    pub fn initial_response_setting(&self) -> ::std::option::Option<&crate::types::InitialResponseSetting> {
126        self.initial_response_setting.as_ref()
127    }
128    /// <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>
129    pub fn qn_a_intent_configuration(&self) -> ::std::option::Option<&crate::types::QnAIntentConfiguration> {
130        self.qn_a_intent_configuration.as_ref()
131    }
132    /// <p>Qinconnect intent configuration details for the update intent request.</p>
133    pub fn q_in_connect_intent_configuration(&self) -> ::std::option::Option<&crate::types::QInConnectIntentConfiguration> {
134        self.q_in_connect_intent_configuration.as_ref()
135    }
136}
137impl UpdateIntentInput {
138    /// Creates a new builder-style object to manufacture [`UpdateIntentInput`](crate::operation::update_intent::UpdateIntentInput).
139    pub fn builder() -> crate::operation::update_intent::builders::UpdateIntentInputBuilder {
140        crate::operation::update_intent::builders::UpdateIntentInputBuilder::default()
141    }
142}
143
144/// A builder for [`UpdateIntentInput`](crate::operation::update_intent::UpdateIntentInput).
145#[derive(::std::clone::Clone, ::std::cmp::PartialEq, ::std::default::Default, ::std::fmt::Debug)]
146#[non_exhaustive]
147pub struct UpdateIntentInputBuilder {
148    pub(crate) intent_id: ::std::option::Option<::std::string::String>,
149    pub(crate) intent_name: ::std::option::Option<::std::string::String>,
150    pub(crate) intent_display_name: ::std::option::Option<::std::string::String>,
151    pub(crate) description: ::std::option::Option<::std::string::String>,
152    pub(crate) parent_intent_signature: ::std::option::Option<::std::string::String>,
153    pub(crate) sample_utterances: ::std::option::Option<::std::vec::Vec<crate::types::SampleUtterance>>,
154    pub(crate) dialog_code_hook: ::std::option::Option<crate::types::DialogCodeHookSettings>,
155    pub(crate) fulfillment_code_hook: ::std::option::Option<crate::types::FulfillmentCodeHookSettings>,
156    pub(crate) slot_priorities: ::std::option::Option<::std::vec::Vec<crate::types::SlotPriority>>,
157    pub(crate) intent_confirmation_setting: ::std::option::Option<crate::types::IntentConfirmationSetting>,
158    pub(crate) intent_closing_setting: ::std::option::Option<crate::types::IntentClosingSetting>,
159    pub(crate) input_contexts: ::std::option::Option<::std::vec::Vec<crate::types::InputContext>>,
160    pub(crate) output_contexts: ::std::option::Option<::std::vec::Vec<crate::types::OutputContext>>,
161    pub(crate) kendra_configuration: ::std::option::Option<crate::types::KendraConfiguration>,
162    pub(crate) bot_id: ::std::option::Option<::std::string::String>,
163    pub(crate) bot_version: ::std::option::Option<::std::string::String>,
164    pub(crate) locale_id: ::std::option::Option<::std::string::String>,
165    pub(crate) initial_response_setting: ::std::option::Option<crate::types::InitialResponseSetting>,
166    pub(crate) qn_a_intent_configuration: ::std::option::Option<crate::types::QnAIntentConfiguration>,
167    pub(crate) q_in_connect_intent_configuration: ::std::option::Option<crate::types::QInConnectIntentConfiguration>,
168}
169impl UpdateIntentInputBuilder {
170    /// <p>The unique identifier of the intent to update.</p>
171    /// This field is required.
172    pub fn intent_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
173        self.intent_id = ::std::option::Option::Some(input.into());
174        self
175    }
176    /// <p>The unique identifier of the intent to update.</p>
177    pub fn set_intent_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
178        self.intent_id = input;
179        self
180    }
181    /// <p>The unique identifier of the intent to update.</p>
182    pub fn get_intent_id(&self) -> &::std::option::Option<::std::string::String> {
183        &self.intent_id
184    }
185    /// <p>The new name for the intent.</p>
186    /// This field is required.
187    pub fn intent_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
188        self.intent_name = ::std::option::Option::Some(input.into());
189        self
190    }
191    /// <p>The new name for the intent.</p>
192    pub fn set_intent_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
193        self.intent_name = input;
194        self
195    }
196    /// <p>The new name for the intent.</p>
197    pub fn get_intent_name(&self) -> &::std::option::Option<::std::string::String> {
198        &self.intent_name
199    }
200    /// <p>The new display name for the intent.</p>
201    pub fn intent_display_name(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
202        self.intent_display_name = ::std::option::Option::Some(input.into());
203        self
204    }
205    /// <p>The new display name for the intent.</p>
206    pub fn set_intent_display_name(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
207        self.intent_display_name = input;
208        self
209    }
210    /// <p>The new display name for the intent.</p>
211    pub fn get_intent_display_name(&self) -> &::std::option::Option<::std::string::String> {
212        &self.intent_display_name
213    }
214    /// <p>The new description of the intent.</p>
215    pub fn description(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
216        self.description = ::std::option::Option::Some(input.into());
217        self
218    }
219    /// <p>The new description of the intent.</p>
220    pub fn set_description(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
221        self.description = input;
222        self
223    }
224    /// <p>The new description of the intent.</p>
225    pub fn get_description(&self) -> &::std::option::Option<::std::string::String> {
226        &self.description
227    }
228    /// <p>The signature of the new built-in intent to use as the parent of this intent.</p>
229    pub fn parent_intent_signature(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
230        self.parent_intent_signature = ::std::option::Option::Some(input.into());
231        self
232    }
233    /// <p>The signature of the new built-in intent to use as the parent of this intent.</p>
234    pub fn set_parent_intent_signature(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
235        self.parent_intent_signature = input;
236        self
237    }
238    /// <p>The signature of the new built-in intent to use as the parent of this intent.</p>
239    pub fn get_parent_intent_signature(&self) -> &::std::option::Option<::std::string::String> {
240        &self.parent_intent_signature
241    }
242    /// Appends an item to `sample_utterances`.
243    ///
244    /// To override the contents of this collection use [`set_sample_utterances`](Self::set_sample_utterances).
245    ///
246    /// <p>New utterances used to invoke the intent.</p>
247    pub fn sample_utterances(mut self, input: crate::types::SampleUtterance) -> Self {
248        let mut v = self.sample_utterances.unwrap_or_default();
249        v.push(input);
250        self.sample_utterances = ::std::option::Option::Some(v);
251        self
252    }
253    /// <p>New utterances used to invoke the intent.</p>
254    pub fn set_sample_utterances(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::SampleUtterance>>) -> Self {
255        self.sample_utterances = input;
256        self
257    }
258    /// <p>New utterances used to invoke the intent.</p>
259    pub fn get_sample_utterances(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::SampleUtterance>> {
260        &self.sample_utterances
261    }
262    /// <p>The new Lambda function to use between each turn of the conversation with the bot.</p>
263    pub fn dialog_code_hook(mut self, input: crate::types::DialogCodeHookSettings) -> Self {
264        self.dialog_code_hook = ::std::option::Option::Some(input);
265        self
266    }
267    /// <p>The new Lambda function to use between each turn of the conversation with the bot.</p>
268    pub fn set_dialog_code_hook(mut self, input: ::std::option::Option<crate::types::DialogCodeHookSettings>) -> Self {
269        self.dialog_code_hook = input;
270        self
271    }
272    /// <p>The new Lambda function to use between each turn of the conversation with the bot.</p>
273    pub fn get_dialog_code_hook(&self) -> &::std::option::Option<crate::types::DialogCodeHookSettings> {
274        &self.dialog_code_hook
275    }
276    /// <p>The new Lambda function to call when all of the intents required slots are provided and the intent is ready for fulfillment.</p>
277    pub fn fulfillment_code_hook(mut self, input: crate::types::FulfillmentCodeHookSettings) -> Self {
278        self.fulfillment_code_hook = ::std::option::Option::Some(input);
279        self
280    }
281    /// <p>The new Lambda function to call when all of the intents required slots are provided and the intent is ready for fulfillment.</p>
282    pub fn set_fulfillment_code_hook(mut self, input: ::std::option::Option<crate::types::FulfillmentCodeHookSettings>) -> Self {
283        self.fulfillment_code_hook = input;
284        self
285    }
286    /// <p>The new Lambda function to call when all of the intents required slots are provided and the intent is ready for fulfillment.</p>
287    pub fn get_fulfillment_code_hook(&self) -> &::std::option::Option<crate::types::FulfillmentCodeHookSettings> {
288        &self.fulfillment_code_hook
289    }
290    /// Appends an item to `slot_priorities`.
291    ///
292    /// To override the contents of this collection use [`set_slot_priorities`](Self::set_slot_priorities).
293    ///
294    /// <p>A new list of slots and their priorities that are contained by the intent.</p>
295    pub fn slot_priorities(mut self, input: crate::types::SlotPriority) -> Self {
296        let mut v = self.slot_priorities.unwrap_or_default();
297        v.push(input);
298        self.slot_priorities = ::std::option::Option::Some(v);
299        self
300    }
301    /// <p>A new list of slots and their priorities that are contained by the intent.</p>
302    pub fn set_slot_priorities(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::SlotPriority>>) -> Self {
303        self.slot_priorities = input;
304        self
305    }
306    /// <p>A new list of slots and their priorities that are contained by the intent.</p>
307    pub fn get_slot_priorities(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::SlotPriority>> {
308        &self.slot_priorities
309    }
310    /// <p>New prompts that Amazon Lex sends to the user to confirm the completion of an intent.</p>
311    pub fn intent_confirmation_setting(mut self, input: crate::types::IntentConfirmationSetting) -> Self {
312        self.intent_confirmation_setting = ::std::option::Option::Some(input);
313        self
314    }
315    /// <p>New prompts that Amazon Lex sends to the user to confirm the completion of an intent.</p>
316    pub fn set_intent_confirmation_setting(mut self, input: ::std::option::Option<crate::types::IntentConfirmationSetting>) -> Self {
317        self.intent_confirmation_setting = input;
318        self
319    }
320    /// <p>New prompts that Amazon Lex sends to the user to confirm the completion of an intent.</p>
321    pub fn get_intent_confirmation_setting(&self) -> &::std::option::Option<crate::types::IntentConfirmationSetting> {
322        &self.intent_confirmation_setting
323    }
324    /// <p>The new response that Amazon Lex sends the user when the intent is closed.</p>
325    pub fn intent_closing_setting(mut self, input: crate::types::IntentClosingSetting) -> Self {
326        self.intent_closing_setting = ::std::option::Option::Some(input);
327        self
328    }
329    /// <p>The new response that Amazon Lex sends the user when the intent is closed.</p>
330    pub fn set_intent_closing_setting(mut self, input: ::std::option::Option<crate::types::IntentClosingSetting>) -> Self {
331        self.intent_closing_setting = input;
332        self
333    }
334    /// <p>The new response that Amazon Lex sends the user when the intent is closed.</p>
335    pub fn get_intent_closing_setting(&self) -> &::std::option::Option<crate::types::IntentClosingSetting> {
336        &self.intent_closing_setting
337    }
338    /// Appends an item to `input_contexts`.
339    ///
340    /// To override the contents of this collection use [`set_input_contexts`](Self::set_input_contexts).
341    ///
342    /// <p>A new list of contexts that must be active in order for Amazon Lex to consider the intent.</p>
343    pub fn input_contexts(mut self, input: crate::types::InputContext) -> Self {
344        let mut v = self.input_contexts.unwrap_or_default();
345        v.push(input);
346        self.input_contexts = ::std::option::Option::Some(v);
347        self
348    }
349    /// <p>A new list of contexts that must be active in order for Amazon Lex to consider the intent.</p>
350    pub fn set_input_contexts(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::InputContext>>) -> Self {
351        self.input_contexts = input;
352        self
353    }
354    /// <p>A new list of contexts that must be active in order for Amazon Lex to consider the intent.</p>
355    pub fn get_input_contexts(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::InputContext>> {
356        &self.input_contexts
357    }
358    /// Appends an item to `output_contexts`.
359    ///
360    /// To override the contents of this collection use [`set_output_contexts`](Self::set_output_contexts).
361    ///
362    /// <p>A new list of contexts that Amazon Lex activates when the intent is fulfilled.</p>
363    pub fn output_contexts(mut self, input: crate::types::OutputContext) -> Self {
364        let mut v = self.output_contexts.unwrap_or_default();
365        v.push(input);
366        self.output_contexts = ::std::option::Option::Some(v);
367        self
368    }
369    /// <p>A new list of contexts that Amazon Lex activates when the intent is fulfilled.</p>
370    pub fn set_output_contexts(mut self, input: ::std::option::Option<::std::vec::Vec<crate::types::OutputContext>>) -> Self {
371        self.output_contexts = input;
372        self
373    }
374    /// <p>A new list of contexts that Amazon Lex activates when the intent is fulfilled.</p>
375    pub fn get_output_contexts(&self) -> &::std::option::Option<::std::vec::Vec<crate::types::OutputContext>> {
376        &self.output_contexts
377    }
378    /// <p>New configuration settings for connecting to an Amazon Kendra index.</p>
379    pub fn kendra_configuration(mut self, input: crate::types::KendraConfiguration) -> Self {
380        self.kendra_configuration = ::std::option::Option::Some(input);
381        self
382    }
383    /// <p>New configuration settings for connecting to an Amazon Kendra index.</p>
384    pub fn set_kendra_configuration(mut self, input: ::std::option::Option<crate::types::KendraConfiguration>) -> Self {
385        self.kendra_configuration = input;
386        self
387    }
388    /// <p>New configuration settings for connecting to an Amazon Kendra index.</p>
389    pub fn get_kendra_configuration(&self) -> &::std::option::Option<crate::types::KendraConfiguration> {
390        &self.kendra_configuration
391    }
392    /// <p>The identifier of the bot that contains the intent.</p>
393    /// This field is required.
394    pub fn bot_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
395        self.bot_id = ::std::option::Option::Some(input.into());
396        self
397    }
398    /// <p>The identifier of the bot that contains the intent.</p>
399    pub fn set_bot_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
400        self.bot_id = input;
401        self
402    }
403    /// <p>The identifier of the bot that contains the intent.</p>
404    pub fn get_bot_id(&self) -> &::std::option::Option<::std::string::String> {
405        &self.bot_id
406    }
407    /// <p>The version of the bot that contains the intent. Must be <code>DRAFT</code>.</p>
408    /// This field is required.
409    pub fn bot_version(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
410        self.bot_version = ::std::option::Option::Some(input.into());
411        self
412    }
413    /// <p>The version of the bot that contains the intent. Must be <code>DRAFT</code>.</p>
414    pub fn set_bot_version(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
415        self.bot_version = input;
416        self
417    }
418    /// <p>The version of the bot that contains the intent. Must be <code>DRAFT</code>.</p>
419    pub fn get_bot_version(&self) -> &::std::option::Option<::std::string::String> {
420        &self.bot_version
421    }
422    /// <p>The identifier of the language and locale where this intent is used. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.</p>
423    /// This field is required.
424    pub fn locale_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
425        self.locale_id = ::std::option::Option::Some(input.into());
426        self
427    }
428    /// <p>The identifier of the language and locale where this intent is used. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.</p>
429    pub fn set_locale_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
430        self.locale_id = input;
431        self
432    }
433    /// <p>The identifier of the language and locale where this intent is used. The string must match one of the supported locales. For more information, see <a href="https://docs.aws.amazon.com/lexv2/latest/dg/how-languages.html">Supported languages</a>.</p>
434    pub fn get_locale_id(&self) -> &::std::option::Option<::std::string::String> {
435        &self.locale_id
436    }
437    /// <p>Configuration settings for a response sent to the user before Amazon Lex starts eliciting slots.</p>
438    pub fn initial_response_setting(mut self, input: crate::types::InitialResponseSetting) -> Self {
439        self.initial_response_setting = ::std::option::Option::Some(input);
440        self
441    }
442    /// <p>Configuration settings for a response sent to the user before Amazon Lex starts eliciting slots.</p>
443    pub fn set_initial_response_setting(mut self, input: ::std::option::Option<crate::types::InitialResponseSetting>) -> Self {
444        self.initial_response_setting = input;
445        self
446    }
447    /// <p>Configuration settings for a response sent to the user before Amazon Lex starts eliciting slots.</p>
448    pub fn get_initial_response_setting(&self) -> &::std::option::Option<crate::types::InitialResponseSetting> {
449        &self.initial_response_setting
450    }
451    /// <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>
452    pub fn qn_a_intent_configuration(mut self, input: crate::types::QnAIntentConfiguration) -> Self {
453        self.qn_a_intent_configuration = ::std::option::Option::Some(input);
454        self
455    }
456    /// <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>
457    pub fn set_qn_a_intent_configuration(mut self, input: ::std::option::Option<crate::types::QnAIntentConfiguration>) -> Self {
458        self.qn_a_intent_configuration = input;
459        self
460    }
461    /// <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>
462    pub fn get_qn_a_intent_configuration(&self) -> &::std::option::Option<crate::types::QnAIntentConfiguration> {
463        &self.qn_a_intent_configuration
464    }
465    /// <p>Qinconnect intent configuration details for the update intent request.</p>
466    pub fn q_in_connect_intent_configuration(mut self, input: crate::types::QInConnectIntentConfiguration) -> Self {
467        self.q_in_connect_intent_configuration = ::std::option::Option::Some(input);
468        self
469    }
470    /// <p>Qinconnect intent configuration details for the update intent request.</p>
471    pub fn set_q_in_connect_intent_configuration(mut self, input: ::std::option::Option<crate::types::QInConnectIntentConfiguration>) -> Self {
472        self.q_in_connect_intent_configuration = input;
473        self
474    }
475    /// <p>Qinconnect intent configuration details for the update intent request.</p>
476    pub fn get_q_in_connect_intent_configuration(&self) -> &::std::option::Option<crate::types::QInConnectIntentConfiguration> {
477        &self.q_in_connect_intent_configuration
478    }
479    /// Consumes the builder and constructs a [`UpdateIntentInput`](crate::operation::update_intent::UpdateIntentInput).
480    pub fn build(
481        self,
482    ) -> ::std::result::Result<crate::operation::update_intent::UpdateIntentInput, ::aws_smithy_types::error::operation::BuildError> {
483        ::std::result::Result::Ok(crate::operation::update_intent::UpdateIntentInput {
484            intent_id: self.intent_id,
485            intent_name: self.intent_name,
486            intent_display_name: self.intent_display_name,
487            description: self.description,
488            parent_intent_signature: self.parent_intent_signature,
489            sample_utterances: self.sample_utterances,
490            dialog_code_hook: self.dialog_code_hook,
491            fulfillment_code_hook: self.fulfillment_code_hook,
492            slot_priorities: self.slot_priorities,
493            intent_confirmation_setting: self.intent_confirmation_setting,
494            intent_closing_setting: self.intent_closing_setting,
495            input_contexts: self.input_contexts,
496            output_contexts: self.output_contexts,
497            kendra_configuration: self.kendra_configuration,
498            bot_id: self.bot_id,
499            bot_version: self.bot_version,
500            locale_id: self.locale_id,
501            initial_response_setting: self.initial_response_setting,
502            qn_a_intent_configuration: self.qn_a_intent_configuration,
503            q_in_connect_intent_configuration: self.q_in_connect_intent_configuration,
504        })
505    }
506}