aws_sdk_lexruntimev2/operation/recognize_utterance/
_recognize_utterance_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]
4pub struct RecognizeUtteranceInput {
5    /// <p>The identifier of the bot that should receive the request.</p>
6    pub bot_id: ::std::option::Option<::std::string::String>,
7    /// <p>The alias identifier in use for the bot that should receive the request.</p>
8    pub bot_alias_id: ::std::option::Option<::std::string::String>,
9    /// <p>The locale where the session is in use.</p>
10    pub locale_id: ::std::option::Option<::std::string::String>,
11    /// <p>The identifier of the session in use.</p>
12    pub session_id: ::std::option::Option<::std::string::String>,
13    /// <p>Sets the state of the session with the user. You can use this to set the current intent, attributes, context, and dialog action. Use the dialog action to determine the next step that Amazon Lex V2 should use in the conversation with the user.</p>
14    /// <p>The <code>sessionState</code> field must be compressed using gzip and then base64 encoded before sending to Amazon Lex V2.</p>
15    pub session_state: ::std::option::Option<::std::string::String>,
16    /// <p>Request-specific information passed between the client application and Amazon Lex V2</p>
17    /// <p>The namespace <code>x-amz-lex:</code> is reserved for special attributes. Don't create any request attributes for prefix <code>x-amz-lex:</code>.</p>
18    /// <p>The <code>requestAttributes</code> field must be compressed using gzip and then base64 encoded before sending to Amazon Lex V2.</p>
19    pub request_attributes: ::std::option::Option<::std::string::String>,
20    /// <p>Indicates the format for audio input or that the content is text. The header must start with one of the following prefixes:</p>
21    /// <ul>
22    /// <li>
23    /// <p>PCM format, audio data must be in little-endian byte order.</p>
24    /// <ul>
25    /// <li>
26    /// <p>audio/l16; rate=16000; channels=1</p></li>
27    /// <li>
28    /// <p>audio/x-l16; sample-rate=16000; channel-count=1</p></li>
29    /// <li>
30    /// <p>audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false</p></li>
31    /// </ul></li>
32    /// <li>
33    /// <p>Opus format</p>
34    /// <ul>
35    /// <li>
36    /// <p>audio/x-cbr-opus-with-preamble;preamble-size=0;bit-rate=256000;frame-size-milliseconds=4</p></li>
37    /// </ul></li>
38    /// <li>
39    /// <p>Text format</p>
40    /// <ul>
41    /// <li>
42    /// <p>text/plain; charset=utf-8</p></li>
43    /// </ul></li>
44    /// </ul>
45    pub request_content_type: ::std::option::Option<::std::string::String>,
46    /// <p>The message that Amazon Lex V2 returns in the response can be either text or speech based on the <code>responseContentType</code> value.</p>
47    /// <ul>
48    /// <li>
49    /// <p>If the value is <code>text/plain;charset=utf-8</code>, Amazon Lex V2 returns text in the response.</p></li>
50    /// <li>
51    /// <p>If the value begins with <code>audio/</code>, Amazon Lex V2 returns speech in the response. Amazon Lex V2 uses Amazon Polly to generate the speech using the configuration that you specified in the <code>responseContentType</code> parameter. For example, if you specify <code>audio/mpeg</code> as the value, Amazon Lex V2 returns speech in the MPEG format.</p></li>
52    /// <li>
53    /// <p>If the value is <code>audio/pcm</code>, the speech returned is <code>audio/pcm</code> at 16 KHz in 16-bit, little-endian format.</p></li>
54    /// <li>
55    /// <p>The following are the accepted values:</p>
56    /// <ul>
57    /// <li>
58    /// <p>audio/mpeg</p></li>
59    /// <li>
60    /// <p>audio/ogg</p></li>
61    /// <li>
62    /// <p>audio/pcm (16 KHz)</p></li>
63    /// <li>
64    /// <p>audio/* (defaults to mpeg)</p></li>
65    /// <li>
66    /// <p>text/plain; charset=utf-8</p></li>
67    /// </ul></li>
68    /// </ul>
69    pub response_content_type: ::std::option::Option<::std::string::String>,
70    /// <p>User input in PCM or Opus audio format or text format as described in the <code>requestContentType</code> parameter.</p>
71    pub input_stream: ::aws_smithy_types::byte_stream::ByteStream,
72}
73impl RecognizeUtteranceInput {
74    /// <p>The identifier of the bot that should receive the request.</p>
75    pub fn bot_id(&self) -> ::std::option::Option<&str> {
76        self.bot_id.as_deref()
77    }
78    /// <p>The alias identifier in use for the bot that should receive the request.</p>
79    pub fn bot_alias_id(&self) -> ::std::option::Option<&str> {
80        self.bot_alias_id.as_deref()
81    }
82    /// <p>The locale where the session is in use.</p>
83    pub fn locale_id(&self) -> ::std::option::Option<&str> {
84        self.locale_id.as_deref()
85    }
86    /// <p>The identifier of the session in use.</p>
87    pub fn session_id(&self) -> ::std::option::Option<&str> {
88        self.session_id.as_deref()
89    }
90    /// <p>Sets the state of the session with the user. You can use this to set the current intent, attributes, context, and dialog action. Use the dialog action to determine the next step that Amazon Lex V2 should use in the conversation with the user.</p>
91    /// <p>The <code>sessionState</code> field must be compressed using gzip and then base64 encoded before sending to Amazon Lex V2.</p>
92    pub fn session_state(&self) -> ::std::option::Option<&str> {
93        self.session_state.as_deref()
94    }
95    /// <p>Request-specific information passed between the client application and Amazon Lex V2</p>
96    /// <p>The namespace <code>x-amz-lex:</code> is reserved for special attributes. Don't create any request attributes for prefix <code>x-amz-lex:</code>.</p>
97    /// <p>The <code>requestAttributes</code> field must be compressed using gzip and then base64 encoded before sending to Amazon Lex V2.</p>
98    pub fn request_attributes(&self) -> ::std::option::Option<&str> {
99        self.request_attributes.as_deref()
100    }
101    /// <p>Indicates the format for audio input or that the content is text. The header must start with one of the following prefixes:</p>
102    /// <ul>
103    /// <li>
104    /// <p>PCM format, audio data must be in little-endian byte order.</p>
105    /// <ul>
106    /// <li>
107    /// <p>audio/l16; rate=16000; channels=1</p></li>
108    /// <li>
109    /// <p>audio/x-l16; sample-rate=16000; channel-count=1</p></li>
110    /// <li>
111    /// <p>audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false</p></li>
112    /// </ul></li>
113    /// <li>
114    /// <p>Opus format</p>
115    /// <ul>
116    /// <li>
117    /// <p>audio/x-cbr-opus-with-preamble;preamble-size=0;bit-rate=256000;frame-size-milliseconds=4</p></li>
118    /// </ul></li>
119    /// <li>
120    /// <p>Text format</p>
121    /// <ul>
122    /// <li>
123    /// <p>text/plain; charset=utf-8</p></li>
124    /// </ul></li>
125    /// </ul>
126    pub fn request_content_type(&self) -> ::std::option::Option<&str> {
127        self.request_content_type.as_deref()
128    }
129    /// <p>The message that Amazon Lex V2 returns in the response can be either text or speech based on the <code>responseContentType</code> value.</p>
130    /// <ul>
131    /// <li>
132    /// <p>If the value is <code>text/plain;charset=utf-8</code>, Amazon Lex V2 returns text in the response.</p></li>
133    /// <li>
134    /// <p>If the value begins with <code>audio/</code>, Amazon Lex V2 returns speech in the response. Amazon Lex V2 uses Amazon Polly to generate the speech using the configuration that you specified in the <code>responseContentType</code> parameter. For example, if you specify <code>audio/mpeg</code> as the value, Amazon Lex V2 returns speech in the MPEG format.</p></li>
135    /// <li>
136    /// <p>If the value is <code>audio/pcm</code>, the speech returned is <code>audio/pcm</code> at 16 KHz in 16-bit, little-endian format.</p></li>
137    /// <li>
138    /// <p>The following are the accepted values:</p>
139    /// <ul>
140    /// <li>
141    /// <p>audio/mpeg</p></li>
142    /// <li>
143    /// <p>audio/ogg</p></li>
144    /// <li>
145    /// <p>audio/pcm (16 KHz)</p></li>
146    /// <li>
147    /// <p>audio/* (defaults to mpeg)</p></li>
148    /// <li>
149    /// <p>text/plain; charset=utf-8</p></li>
150    /// </ul></li>
151    /// </ul>
152    pub fn response_content_type(&self) -> ::std::option::Option<&str> {
153        self.response_content_type.as_deref()
154    }
155    /// <p>User input in PCM or Opus audio format or text format as described in the <code>requestContentType</code> parameter.</p>
156    pub fn input_stream(&self) -> &::aws_smithy_types::byte_stream::ByteStream {
157        &self.input_stream
158    }
159}
160impl ::std::fmt::Debug for RecognizeUtteranceInput {
161    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
162        let mut formatter = f.debug_struct("RecognizeUtteranceInput");
163        formatter.field("bot_id", &self.bot_id);
164        formatter.field("bot_alias_id", &self.bot_alias_id);
165        formatter.field("locale_id", &self.locale_id);
166        formatter.field("session_id", &self.session_id);
167        formatter.field("session_state", &"*** Sensitive Data Redacted ***");
168        formatter.field("request_attributes", &"*** Sensitive Data Redacted ***");
169        formatter.field("request_content_type", &self.request_content_type);
170        formatter.field("response_content_type", &self.response_content_type);
171        formatter.field("input_stream", &self.input_stream);
172        formatter.finish()
173    }
174}
175impl RecognizeUtteranceInput {
176    /// Creates a new builder-style object to manufacture [`RecognizeUtteranceInput`](crate::operation::recognize_utterance::RecognizeUtteranceInput).
177    pub fn builder() -> crate::operation::recognize_utterance::builders::RecognizeUtteranceInputBuilder {
178        crate::operation::recognize_utterance::builders::RecognizeUtteranceInputBuilder::default()
179    }
180}
181
182/// A builder for [`RecognizeUtteranceInput`](crate::operation::recognize_utterance::RecognizeUtteranceInput).
183#[derive(::std::default::Default)]
184#[non_exhaustive]
185pub struct RecognizeUtteranceInputBuilder {
186    pub(crate) bot_id: ::std::option::Option<::std::string::String>,
187    pub(crate) bot_alias_id: ::std::option::Option<::std::string::String>,
188    pub(crate) locale_id: ::std::option::Option<::std::string::String>,
189    pub(crate) session_id: ::std::option::Option<::std::string::String>,
190    pub(crate) session_state: ::std::option::Option<::std::string::String>,
191    pub(crate) request_attributes: ::std::option::Option<::std::string::String>,
192    pub(crate) request_content_type: ::std::option::Option<::std::string::String>,
193    pub(crate) response_content_type: ::std::option::Option<::std::string::String>,
194    pub(crate) input_stream: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>,
195}
196impl RecognizeUtteranceInputBuilder {
197    /// <p>The identifier of the bot that should receive the request.</p>
198    /// This field is required.
199    pub fn bot_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
200        self.bot_id = ::std::option::Option::Some(input.into());
201        self
202    }
203    /// <p>The identifier of the bot that should receive the request.</p>
204    pub fn set_bot_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
205        self.bot_id = input;
206        self
207    }
208    /// <p>The identifier of the bot that should receive the request.</p>
209    pub fn get_bot_id(&self) -> &::std::option::Option<::std::string::String> {
210        &self.bot_id
211    }
212    /// <p>The alias identifier in use for the bot that should receive the request.</p>
213    /// This field is required.
214    pub fn bot_alias_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
215        self.bot_alias_id = ::std::option::Option::Some(input.into());
216        self
217    }
218    /// <p>The alias identifier in use for the bot that should receive the request.</p>
219    pub fn set_bot_alias_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
220        self.bot_alias_id = input;
221        self
222    }
223    /// <p>The alias identifier in use for the bot that should receive the request.</p>
224    pub fn get_bot_alias_id(&self) -> &::std::option::Option<::std::string::String> {
225        &self.bot_alias_id
226    }
227    /// <p>The locale where the session is in use.</p>
228    /// This field is required.
229    pub fn locale_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
230        self.locale_id = ::std::option::Option::Some(input.into());
231        self
232    }
233    /// <p>The locale where the session is in use.</p>
234    pub fn set_locale_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
235        self.locale_id = input;
236        self
237    }
238    /// <p>The locale where the session is in use.</p>
239    pub fn get_locale_id(&self) -> &::std::option::Option<::std::string::String> {
240        &self.locale_id
241    }
242    /// <p>The identifier of the session in use.</p>
243    /// This field is required.
244    pub fn session_id(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
245        self.session_id = ::std::option::Option::Some(input.into());
246        self
247    }
248    /// <p>The identifier of the session in use.</p>
249    pub fn set_session_id(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
250        self.session_id = input;
251        self
252    }
253    /// <p>The identifier of the session in use.</p>
254    pub fn get_session_id(&self) -> &::std::option::Option<::std::string::String> {
255        &self.session_id
256    }
257    /// <p>Sets the state of the session with the user. You can use this to set the current intent, attributes, context, and dialog action. Use the dialog action to determine the next step that Amazon Lex V2 should use in the conversation with the user.</p>
258    /// <p>The <code>sessionState</code> field must be compressed using gzip and then base64 encoded before sending to Amazon Lex V2.</p>
259    pub fn session_state(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
260        self.session_state = ::std::option::Option::Some(input.into());
261        self
262    }
263    /// <p>Sets the state of the session with the user. You can use this to set the current intent, attributes, context, and dialog action. Use the dialog action to determine the next step that Amazon Lex V2 should use in the conversation with the user.</p>
264    /// <p>The <code>sessionState</code> field must be compressed using gzip and then base64 encoded before sending to Amazon Lex V2.</p>
265    pub fn set_session_state(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
266        self.session_state = input;
267        self
268    }
269    /// <p>Sets the state of the session with the user. You can use this to set the current intent, attributes, context, and dialog action. Use the dialog action to determine the next step that Amazon Lex V2 should use in the conversation with the user.</p>
270    /// <p>The <code>sessionState</code> field must be compressed using gzip and then base64 encoded before sending to Amazon Lex V2.</p>
271    pub fn get_session_state(&self) -> &::std::option::Option<::std::string::String> {
272        &self.session_state
273    }
274    /// <p>Request-specific information passed between the client application and Amazon Lex V2</p>
275    /// <p>The namespace <code>x-amz-lex:</code> is reserved for special attributes. Don't create any request attributes for prefix <code>x-amz-lex:</code>.</p>
276    /// <p>The <code>requestAttributes</code> field must be compressed using gzip and then base64 encoded before sending to Amazon Lex V2.</p>
277    pub fn request_attributes(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
278        self.request_attributes = ::std::option::Option::Some(input.into());
279        self
280    }
281    /// <p>Request-specific information passed between the client application and Amazon Lex V2</p>
282    /// <p>The namespace <code>x-amz-lex:</code> is reserved for special attributes. Don't create any request attributes for prefix <code>x-amz-lex:</code>.</p>
283    /// <p>The <code>requestAttributes</code> field must be compressed using gzip and then base64 encoded before sending to Amazon Lex V2.</p>
284    pub fn set_request_attributes(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
285        self.request_attributes = input;
286        self
287    }
288    /// <p>Request-specific information passed between the client application and Amazon Lex V2</p>
289    /// <p>The namespace <code>x-amz-lex:</code> is reserved for special attributes. Don't create any request attributes for prefix <code>x-amz-lex:</code>.</p>
290    /// <p>The <code>requestAttributes</code> field must be compressed using gzip and then base64 encoded before sending to Amazon Lex V2.</p>
291    pub fn get_request_attributes(&self) -> &::std::option::Option<::std::string::String> {
292        &self.request_attributes
293    }
294    /// <p>Indicates the format for audio input or that the content is text. The header must start with one of the following prefixes:</p>
295    /// <ul>
296    /// <li>
297    /// <p>PCM format, audio data must be in little-endian byte order.</p>
298    /// <ul>
299    /// <li>
300    /// <p>audio/l16; rate=16000; channels=1</p></li>
301    /// <li>
302    /// <p>audio/x-l16; sample-rate=16000; channel-count=1</p></li>
303    /// <li>
304    /// <p>audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false</p></li>
305    /// </ul></li>
306    /// <li>
307    /// <p>Opus format</p>
308    /// <ul>
309    /// <li>
310    /// <p>audio/x-cbr-opus-with-preamble;preamble-size=0;bit-rate=256000;frame-size-milliseconds=4</p></li>
311    /// </ul></li>
312    /// <li>
313    /// <p>Text format</p>
314    /// <ul>
315    /// <li>
316    /// <p>text/plain; charset=utf-8</p></li>
317    /// </ul></li>
318    /// </ul>
319    /// This field is required.
320    pub fn request_content_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
321        self.request_content_type = ::std::option::Option::Some(input.into());
322        self
323    }
324    /// <p>Indicates the format for audio input or that the content is text. The header must start with one of the following prefixes:</p>
325    /// <ul>
326    /// <li>
327    /// <p>PCM format, audio data must be in little-endian byte order.</p>
328    /// <ul>
329    /// <li>
330    /// <p>audio/l16; rate=16000; channels=1</p></li>
331    /// <li>
332    /// <p>audio/x-l16; sample-rate=16000; channel-count=1</p></li>
333    /// <li>
334    /// <p>audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false</p></li>
335    /// </ul></li>
336    /// <li>
337    /// <p>Opus format</p>
338    /// <ul>
339    /// <li>
340    /// <p>audio/x-cbr-opus-with-preamble;preamble-size=0;bit-rate=256000;frame-size-milliseconds=4</p></li>
341    /// </ul></li>
342    /// <li>
343    /// <p>Text format</p>
344    /// <ul>
345    /// <li>
346    /// <p>text/plain; charset=utf-8</p></li>
347    /// </ul></li>
348    /// </ul>
349    pub fn set_request_content_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
350        self.request_content_type = input;
351        self
352    }
353    /// <p>Indicates the format for audio input or that the content is text. The header must start with one of the following prefixes:</p>
354    /// <ul>
355    /// <li>
356    /// <p>PCM format, audio data must be in little-endian byte order.</p>
357    /// <ul>
358    /// <li>
359    /// <p>audio/l16; rate=16000; channels=1</p></li>
360    /// <li>
361    /// <p>audio/x-l16; sample-rate=16000; channel-count=1</p></li>
362    /// <li>
363    /// <p>audio/lpcm; sample-rate=8000; sample-size-bits=16; channel-count=1; is-big-endian=false</p></li>
364    /// </ul></li>
365    /// <li>
366    /// <p>Opus format</p>
367    /// <ul>
368    /// <li>
369    /// <p>audio/x-cbr-opus-with-preamble;preamble-size=0;bit-rate=256000;frame-size-milliseconds=4</p></li>
370    /// </ul></li>
371    /// <li>
372    /// <p>Text format</p>
373    /// <ul>
374    /// <li>
375    /// <p>text/plain; charset=utf-8</p></li>
376    /// </ul></li>
377    /// </ul>
378    pub fn get_request_content_type(&self) -> &::std::option::Option<::std::string::String> {
379        &self.request_content_type
380    }
381    /// <p>The message that Amazon Lex V2 returns in the response can be either text or speech based on the <code>responseContentType</code> value.</p>
382    /// <ul>
383    /// <li>
384    /// <p>If the value is <code>text/plain;charset=utf-8</code>, Amazon Lex V2 returns text in the response.</p></li>
385    /// <li>
386    /// <p>If the value begins with <code>audio/</code>, Amazon Lex V2 returns speech in the response. Amazon Lex V2 uses Amazon Polly to generate the speech using the configuration that you specified in the <code>responseContentType</code> parameter. For example, if you specify <code>audio/mpeg</code> as the value, Amazon Lex V2 returns speech in the MPEG format.</p></li>
387    /// <li>
388    /// <p>If the value is <code>audio/pcm</code>, the speech returned is <code>audio/pcm</code> at 16 KHz in 16-bit, little-endian format.</p></li>
389    /// <li>
390    /// <p>The following are the accepted values:</p>
391    /// <ul>
392    /// <li>
393    /// <p>audio/mpeg</p></li>
394    /// <li>
395    /// <p>audio/ogg</p></li>
396    /// <li>
397    /// <p>audio/pcm (16 KHz)</p></li>
398    /// <li>
399    /// <p>audio/* (defaults to mpeg)</p></li>
400    /// <li>
401    /// <p>text/plain; charset=utf-8</p></li>
402    /// </ul></li>
403    /// </ul>
404    pub fn response_content_type(mut self, input: impl ::std::convert::Into<::std::string::String>) -> Self {
405        self.response_content_type = ::std::option::Option::Some(input.into());
406        self
407    }
408    /// <p>The message that Amazon Lex V2 returns in the response can be either text or speech based on the <code>responseContentType</code> value.</p>
409    /// <ul>
410    /// <li>
411    /// <p>If the value is <code>text/plain;charset=utf-8</code>, Amazon Lex V2 returns text in the response.</p></li>
412    /// <li>
413    /// <p>If the value begins with <code>audio/</code>, Amazon Lex V2 returns speech in the response. Amazon Lex V2 uses Amazon Polly to generate the speech using the configuration that you specified in the <code>responseContentType</code> parameter. For example, if you specify <code>audio/mpeg</code> as the value, Amazon Lex V2 returns speech in the MPEG format.</p></li>
414    /// <li>
415    /// <p>If the value is <code>audio/pcm</code>, the speech returned is <code>audio/pcm</code> at 16 KHz in 16-bit, little-endian format.</p></li>
416    /// <li>
417    /// <p>The following are the accepted values:</p>
418    /// <ul>
419    /// <li>
420    /// <p>audio/mpeg</p></li>
421    /// <li>
422    /// <p>audio/ogg</p></li>
423    /// <li>
424    /// <p>audio/pcm (16 KHz)</p></li>
425    /// <li>
426    /// <p>audio/* (defaults to mpeg)</p></li>
427    /// <li>
428    /// <p>text/plain; charset=utf-8</p></li>
429    /// </ul></li>
430    /// </ul>
431    pub fn set_response_content_type(mut self, input: ::std::option::Option<::std::string::String>) -> Self {
432        self.response_content_type = input;
433        self
434    }
435    /// <p>The message that Amazon Lex V2 returns in the response can be either text or speech based on the <code>responseContentType</code> value.</p>
436    /// <ul>
437    /// <li>
438    /// <p>If the value is <code>text/plain;charset=utf-8</code>, Amazon Lex V2 returns text in the response.</p></li>
439    /// <li>
440    /// <p>If the value begins with <code>audio/</code>, Amazon Lex V2 returns speech in the response. Amazon Lex V2 uses Amazon Polly to generate the speech using the configuration that you specified in the <code>responseContentType</code> parameter. For example, if you specify <code>audio/mpeg</code> as the value, Amazon Lex V2 returns speech in the MPEG format.</p></li>
441    /// <li>
442    /// <p>If the value is <code>audio/pcm</code>, the speech returned is <code>audio/pcm</code> at 16 KHz in 16-bit, little-endian format.</p></li>
443    /// <li>
444    /// <p>The following are the accepted values:</p>
445    /// <ul>
446    /// <li>
447    /// <p>audio/mpeg</p></li>
448    /// <li>
449    /// <p>audio/ogg</p></li>
450    /// <li>
451    /// <p>audio/pcm (16 KHz)</p></li>
452    /// <li>
453    /// <p>audio/* (defaults to mpeg)</p></li>
454    /// <li>
455    /// <p>text/plain; charset=utf-8</p></li>
456    /// </ul></li>
457    /// </ul>
458    pub fn get_response_content_type(&self) -> &::std::option::Option<::std::string::String> {
459        &self.response_content_type
460    }
461    /// <p>User input in PCM or Opus audio format or text format as described in the <code>requestContentType</code> parameter.</p>
462    pub fn input_stream(mut self, input: ::aws_smithy_types::byte_stream::ByteStream) -> Self {
463        self.input_stream = ::std::option::Option::Some(input);
464        self
465    }
466    /// <p>User input in PCM or Opus audio format or text format as described in the <code>requestContentType</code> parameter.</p>
467    pub fn set_input_stream(mut self, input: ::std::option::Option<::aws_smithy_types::byte_stream::ByteStream>) -> Self {
468        self.input_stream = input;
469        self
470    }
471    /// <p>User input in PCM or Opus audio format or text format as described in the <code>requestContentType</code> parameter.</p>
472    pub fn get_input_stream(&self) -> &::std::option::Option<::aws_smithy_types::byte_stream::ByteStream> {
473        &self.input_stream
474    }
475    /// Consumes the builder and constructs a [`RecognizeUtteranceInput`](crate::operation::recognize_utterance::RecognizeUtteranceInput).
476    pub fn build(
477        self,
478    ) -> ::std::result::Result<crate::operation::recognize_utterance::RecognizeUtteranceInput, ::aws_smithy_types::error::operation::BuildError> {
479        ::std::result::Result::Ok(crate::operation::recognize_utterance::RecognizeUtteranceInput {
480            bot_id: self.bot_id,
481            bot_alias_id: self.bot_alias_id,
482            locale_id: self.locale_id,
483            session_id: self.session_id,
484            session_state: self.session_state,
485            request_attributes: self.request_attributes,
486            request_content_type: self.request_content_type,
487            response_content_type: self.response_content_type,
488            input_stream: self.input_stream.unwrap_or_default(),
489        })
490    }
491}
492impl ::std::fmt::Debug for RecognizeUtteranceInputBuilder {
493    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
494        let mut formatter = f.debug_struct("RecognizeUtteranceInputBuilder");
495        formatter.field("bot_id", &self.bot_id);
496        formatter.field("bot_alias_id", &self.bot_alias_id);
497        formatter.field("locale_id", &self.locale_id);
498        formatter.field("session_id", &self.session_id);
499        formatter.field("session_state", &"*** Sensitive Data Redacted ***");
500        formatter.field("request_attributes", &"*** Sensitive Data Redacted ***");
501        formatter.field("request_content_type", &self.request_content_type);
502        formatter.field("response_content_type", &self.response_content_type);
503        formatter.field("input_stream", &self.input_stream);
504        formatter.finish()
505    }
506}