// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
impl super::Client {
/// Constructs a fluent builder for the [`Chat`](crate::operation::chat::builders::ChatFluentBuilder) operation.
///
/// - The fluent builder is configurable:
/// - [`application_id(impl Into<String>)`](crate::operation::chat::builders::ChatFluentBuilder::application_id) / [`set_application_id(Option<String>)`](crate::operation::chat::builders::ChatFluentBuilder::set_application_id):<br>required: **true**<br><p>The identifier of the Amazon Q Business application linked to a streaming Amazon Q Business conversation.</p><br>
/// - [`user_id(impl Into<String>)`](crate::operation::chat::builders::ChatFluentBuilder::user_id) / [`set_user_id(Option<String>)`](crate::operation::chat::builders::ChatFluentBuilder::set_user_id):<br>required: **false**<br><p>The identifier of the user attached to the chat input.</p><br>
/// - [`user_groups(impl Into<String>)`](crate::operation::chat::builders::ChatFluentBuilder::user_groups) / [`set_user_groups(Option<Vec::<String>>)`](crate::operation::chat::builders::ChatFluentBuilder::set_user_groups):<br>required: **false**<br><p>The groups that a user associated with the chat input belongs to.</p><br>
/// - [`conversation_id(impl Into<String>)`](crate::operation::chat::builders::ChatFluentBuilder::conversation_id) / [`set_conversation_id(Option<String>)`](crate::operation::chat::builders::ChatFluentBuilder::set_conversation_id):<br>required: **false**<br><p>The identifier of the Amazon Q Business conversation.</p><br>
/// - [`parent_message_id(impl Into<String>)`](crate::operation::chat::builders::ChatFluentBuilder::parent_message_id) / [`set_parent_message_id(Option<String>)`](crate::operation::chat::builders::ChatFluentBuilder::set_parent_message_id):<br>required: **false**<br><p>The identifier used to associate a user message with a AI generated response.</p><br>
/// - [`client_token(impl Into<String>)`](crate::operation::chat::builders::ChatFluentBuilder::client_token) / [`set_client_token(Option<String>)`](crate::operation::chat::builders::ChatFluentBuilder::set_client_token):<br>required: **false**<br><p>A token that you provide to identify the chat input.</p><br>
/// - [`input_stream(EventStreamSender<ChatInputStream, ChatInputStreamError>)`](crate::operation::chat::builders::ChatFluentBuilder::input_stream) / [`set_input_stream(EventStreamSender<ChatInputStream, ChatInputStreamError>)`](crate::operation::chat::builders::ChatFluentBuilder::set_input_stream):<br>required: **false**<br><p>The streaming input for the <code>Chat</code> API.</p><br>
/// - On success, responds with [`ChatOutput`](crate::operation::chat::ChatOutput) with field(s):
/// - [`output_stream(EventReceiver<ChatOutputStream, ChatOutputStreamError>)`](crate::operation::chat::ChatOutput::output_stream): <p>The streaming output for the <code>Chat</code> API.</p>
/// - On failure, responds with [`SdkError<ChatError>`](crate::operation::chat::ChatError)
pub fn chat(&self) -> crate::operation::chat::builders::ChatFluentBuilder {
crate::operation::chat::builders::ChatFluentBuilder::new(self.handle.clone())
}
}