rivet-client-api-chat 0.0.1

Rivet service enabling identities to send and receive chat messages
Documentation
// Code generated by software.amazon.smithy.rust.codegen.smithy-rs. DO NOT EDIT.
#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct GetDirectThreadOutput {
	/// A universally unique identifier.
	pub thread_id: std::option::Option<std::string::String>,
	/// An identity handle.
	pub identity: std::option::Option<crate::model::IdentityHandle>,
}
impl GetDirectThreadOutput {
	/// A universally unique identifier.
	pub fn thread_id(&self) -> std::option::Option<&str> {
		self.thread_id.as_deref()
	}
	/// An identity handle.
	pub fn identity(&self) -> std::option::Option<&crate::model::IdentityHandle> {
		self.identity.as_ref()
	}
}
impl std::fmt::Debug for GetDirectThreadOutput {
	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
		let mut formatter = f.debug_struct("GetDirectThreadOutput");
		formatter.field("thread_id", &self.thread_id);
		formatter.field("identity", &self.identity);
		formatter.finish()
	}
}
/// See [`GetDirectThreadOutput`](crate::output::GetDirectThreadOutput)
pub mod get_direct_thread_output {
	/// A builder for [`GetDirectThreadOutput`](crate::output::GetDirectThreadOutput)
	#[non_exhaustive]
	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
	pub struct Builder {
		pub(crate) thread_id: std::option::Option<std::string::String>,
		pub(crate) identity: std::option::Option<crate::model::IdentityHandle>,
	}
	impl Builder {
		/// A universally unique identifier.
		pub fn thread_id(mut self, input: impl Into<std::string::String>) -> Self {
			self.thread_id = Some(input.into());
			self
		}
		/// A universally unique identifier.
		pub fn set_thread_id(mut self, input: std::option::Option<std::string::String>) -> Self {
			self.thread_id = input;
			self
		}
		/// An identity handle.
		pub fn identity(mut self, input: crate::model::IdentityHandle) -> Self {
			self.identity = Some(input);
			self
		}
		/// An identity handle.
		pub fn set_identity(
			mut self,
			input: std::option::Option<crate::model::IdentityHandle>,
		) -> Self {
			self.identity = input;
			self
		}
		/// Consumes the builder and constructs a [`GetDirectThreadOutput`](crate::output::GetDirectThreadOutput)
		pub fn build(self) -> crate::output::GetDirectThreadOutput {
			crate::output::GetDirectThreadOutput {
				thread_id: self.thread_id,
				identity: self.identity,
			}
		}
	}
}
impl GetDirectThreadOutput {
	/// Creates a new builder-style object to manufacture [`GetDirectThreadOutput`](crate::output::GetDirectThreadOutput)
	pub fn builder() -> crate::output::get_direct_thread_output::Builder {
		crate::output::get_direct_thread_output::Builder::default()
	}
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct SendChatMessageOutput {
	/// A universally unique identifier.
	pub chat_message_id: std::option::Option<std::string::String>,
}
impl SendChatMessageOutput {
	/// A universally unique identifier.
	pub fn chat_message_id(&self) -> std::option::Option<&str> {
		self.chat_message_id.as_deref()
	}
}
impl std::fmt::Debug for SendChatMessageOutput {
	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
		let mut formatter = f.debug_struct("SendChatMessageOutput");
		formatter.field("chat_message_id", &self.chat_message_id);
		formatter.finish()
	}
}
/// See [`SendChatMessageOutput`](crate::output::SendChatMessageOutput)
pub mod send_chat_message_output {
	/// A builder for [`SendChatMessageOutput`](crate::output::SendChatMessageOutput)
	#[non_exhaustive]
	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
	pub struct Builder {
		pub(crate) chat_message_id: std::option::Option<std::string::String>,
	}
	impl Builder {
		/// A universally unique identifier.
		pub fn chat_message_id(mut self, input: impl Into<std::string::String>) -> Self {
			self.chat_message_id = Some(input.into());
			self
		}
		/// A universally unique identifier.
		pub fn set_chat_message_id(
			mut self,
			input: std::option::Option<std::string::String>,
		) -> Self {
			self.chat_message_id = input;
			self
		}
		/// Consumes the builder and constructs a [`SendChatMessageOutput`](crate::output::SendChatMessageOutput)
		pub fn build(self) -> crate::output::SendChatMessageOutput {
			crate::output::SendChatMessageOutput {
				chat_message_id: self.chat_message_id,
			}
		}
	}
}
impl SendChatMessageOutput {
	/// Creates a new builder-style object to manufacture [`SendChatMessageOutput`](crate::output::SendChatMessageOutput)
	pub fn builder() -> crate::output::send_chat_message_output::Builder {
		crate::output::send_chat_message_output::Builder::default()
	}
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct SetTypingStatusOutput {}
impl std::fmt::Debug for SetTypingStatusOutput {
	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
		let mut formatter = f.debug_struct("SetTypingStatusOutput");
		formatter.finish()
	}
}
/// See [`SetTypingStatusOutput`](crate::output::SetTypingStatusOutput)
pub mod set_typing_status_output {
	/// A builder for [`SetTypingStatusOutput`](crate::output::SetTypingStatusOutput)
	#[non_exhaustive]
	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
	pub struct Builder {}
	impl Builder {
		/// Consumes the builder and constructs a [`SetTypingStatusOutput`](crate::output::SetTypingStatusOutput)
		pub fn build(self) -> crate::output::SetTypingStatusOutput {
			crate::output::SetTypingStatusOutput {}
		}
	}
}
impl SetTypingStatusOutput {
	/// Creates a new builder-style object to manufacture [`SetTypingStatusOutput`](crate::output::SetTypingStatusOutput)
	pub fn builder() -> crate::output::set_typing_status_output::Builder {
		crate::output::set_typing_status_output::Builder::default()
	}
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct SetThreadReadOutput {}
impl std::fmt::Debug for SetThreadReadOutput {
	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
		let mut formatter = f.debug_struct("SetThreadReadOutput");
		formatter.finish()
	}
}
/// See [`SetThreadReadOutput`](crate::output::SetThreadReadOutput)
pub mod set_thread_read_output {
	/// A builder for [`SetThreadReadOutput`](crate::output::SetThreadReadOutput)
	#[non_exhaustive]
	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
	pub struct Builder {}
	impl Builder {
		/// Consumes the builder and constructs a [`SetThreadReadOutput`](crate::output::SetThreadReadOutput)
		pub fn build(self) -> crate::output::SetThreadReadOutput {
			crate::output::SetThreadReadOutput {}
		}
	}
}
impl SetThreadReadOutput {
	/// Creates a new builder-style object to manufacture [`SetThreadReadOutput`](crate::output::SetThreadReadOutput)
	pub fn builder() -> crate::output::set_thread_read_output::Builder {
		crate::output::set_thread_read_output::Builder::default()
	}
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct GetThreadHistoryOutput {
	/// Ordered old to new. If querying `rivet.api.chat.common#before_and_after`, this will be `count * 2` long.
	pub chat_messages: std::option::Option<std::vec::Vec<crate::model::ChatMessage>>,
}
impl GetThreadHistoryOutput {
	/// Ordered old to new. If querying `rivet.api.chat.common#before_and_after`, this will be `count * 2` long.
	pub fn chat_messages(&self) -> std::option::Option<&[crate::model::ChatMessage]> {
		self.chat_messages.as_deref()
	}
}
impl std::fmt::Debug for GetThreadHistoryOutput {
	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
		let mut formatter = f.debug_struct("GetThreadHistoryOutput");
		formatter.field("chat_messages", &self.chat_messages);
		formatter.finish()
	}
}
/// See [`GetThreadHistoryOutput`](crate::output::GetThreadHistoryOutput)
pub mod get_thread_history_output {
	/// A builder for [`GetThreadHistoryOutput`](crate::output::GetThreadHistoryOutput)
	#[non_exhaustive]
	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
	pub struct Builder {
		pub(crate) chat_messages: std::option::Option<std::vec::Vec<crate::model::ChatMessage>>,
	}
	impl Builder {
		/// Appends an item to `chat_messages`.
		///
		/// To override the contents of this collection use [`set_chat_messages`](Self::set_chat_messages).
		///
		/// Ordered old to new. If querying `rivet.api.chat.common#before_and_after`, this will be `count * 2` long.
		pub fn chat_messages(mut self, input: crate::model::ChatMessage) -> Self {
			let mut v = self.chat_messages.unwrap_or_default();
			v.push(input);
			self.chat_messages = Some(v);
			self
		}
		/// Ordered old to new. If querying `rivet.api.chat.common#before_and_after`, this will be `count * 2` long.
		pub fn set_chat_messages(
			mut self,
			input: std::option::Option<std::vec::Vec<crate::model::ChatMessage>>,
		) -> Self {
			self.chat_messages = input;
			self
		}
		/// Consumes the builder and constructs a [`GetThreadHistoryOutput`](crate::output::GetThreadHistoryOutput)
		pub fn build(self) -> crate::output::GetThreadHistoryOutput {
			crate::output::GetThreadHistoryOutput {
				chat_messages: self.chat_messages,
			}
		}
	}
}
impl GetThreadHistoryOutput {
	/// Creates a new builder-style object to manufacture [`GetThreadHistoryOutput`](crate::output::GetThreadHistoryOutput)
	pub fn builder() -> crate::output::get_thread_history_output::Builder {
		crate::output::get_thread_history_output::Builder::default()
	}
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct WatchThreadOutput {
	/// All messages new messages posted to this thread. Ordered old to new.
	pub chat_messages: std::option::Option<std::vec::Vec<crate::model::ChatMessage>>,
	/// All identities that are currently typing in this thread.
	pub typing_statuses: std::option::Option<std::vec::Vec<crate::model::ChatIdentityTypingStatus>>,
	/// Provided by watchable endpoints used in blocking loops.
	pub watch: std::option::Option<crate::model::WatchResponse>,
}
impl WatchThreadOutput {
	/// All messages new messages posted to this thread. Ordered old to new.
	pub fn chat_messages(&self) -> std::option::Option<&[crate::model::ChatMessage]> {
		self.chat_messages.as_deref()
	}
	/// All identities that are currently typing in this thread.
	pub fn typing_statuses(
		&self,
	) -> std::option::Option<&[crate::model::ChatIdentityTypingStatus]> {
		self.typing_statuses.as_deref()
	}
	/// Provided by watchable endpoints used in blocking loops.
	pub fn watch(&self) -> std::option::Option<&crate::model::WatchResponse> {
		self.watch.as_ref()
	}
}
impl std::fmt::Debug for WatchThreadOutput {
	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
		let mut formatter = f.debug_struct("WatchThreadOutput");
		formatter.field("chat_messages", &self.chat_messages);
		formatter.field("typing_statuses", &self.typing_statuses);
		formatter.field("watch", &self.watch);
		formatter.finish()
	}
}
/// See [`WatchThreadOutput`](crate::output::WatchThreadOutput)
pub mod watch_thread_output {
	/// A builder for [`WatchThreadOutput`](crate::output::WatchThreadOutput)
	#[non_exhaustive]
	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
	pub struct Builder {
		pub(crate) chat_messages: std::option::Option<std::vec::Vec<crate::model::ChatMessage>>,
		pub(crate) typing_statuses:
			std::option::Option<std::vec::Vec<crate::model::ChatIdentityTypingStatus>>,
		pub(crate) watch: std::option::Option<crate::model::WatchResponse>,
	}
	impl Builder {
		/// Appends an item to `chat_messages`.
		///
		/// To override the contents of this collection use [`set_chat_messages`](Self::set_chat_messages).
		///
		/// All messages new messages posted to this thread. Ordered old to new.
		pub fn chat_messages(mut self, input: crate::model::ChatMessage) -> Self {
			let mut v = self.chat_messages.unwrap_or_default();
			v.push(input);
			self.chat_messages = Some(v);
			self
		}
		/// All messages new messages posted to this thread. Ordered old to new.
		pub fn set_chat_messages(
			mut self,
			input: std::option::Option<std::vec::Vec<crate::model::ChatMessage>>,
		) -> Self {
			self.chat_messages = input;
			self
		}
		/// Appends an item to `typing_statuses`.
		///
		/// To override the contents of this collection use [`set_typing_statuses`](Self::set_typing_statuses).
		///
		/// All identities that are currently typing in this thread.
		pub fn typing_statuses(mut self, input: crate::model::ChatIdentityTypingStatus) -> Self {
			let mut v = self.typing_statuses.unwrap_or_default();
			v.push(input);
			self.typing_statuses = Some(v);
			self
		}
		/// All identities that are currently typing in this thread.
		pub fn set_typing_statuses(
			mut self,
			input: std::option::Option<std::vec::Vec<crate::model::ChatIdentityTypingStatus>>,
		) -> Self {
			self.typing_statuses = input;
			self
		}
		/// Provided by watchable endpoints used in blocking loops.
		pub fn watch(mut self, input: crate::model::WatchResponse) -> Self {
			self.watch = Some(input);
			self
		}
		/// Provided by watchable endpoints used in blocking loops.
		pub fn set_watch(
			mut self,
			input: std::option::Option<crate::model::WatchResponse>,
		) -> Self {
			self.watch = input;
			self
		}
		/// Consumes the builder and constructs a [`WatchThreadOutput`](crate::output::WatchThreadOutput)
		pub fn build(self) -> crate::output::WatchThreadOutput {
			crate::output::WatchThreadOutput {
				chat_messages: self.chat_messages,
				typing_statuses: self.typing_statuses,
				watch: self.watch,
			}
		}
	}
}
impl WatchThreadOutput {
	/// Creates a new builder-style object to manufacture [`WatchThreadOutput`](crate::output::WatchThreadOutput)
	pub fn builder() -> crate::output::watch_thread_output::Builder {
		crate::output::watch_thread_output::Builder::default()
	}
}

#[allow(missing_docs)] // documentation missing in model
#[non_exhaustive]
#[derive(std::clone::Clone, std::cmp::PartialEq)]
pub struct GetThreadTopicOutput {
	/// Represents a topic of the given chat thread without the associated handles for the topic.
	pub topic: std::option::Option<crate::model::ChatSimpleTopic>,
}
impl GetThreadTopicOutput {
	/// Represents a topic of the given chat thread without the associated handles for the topic.
	pub fn topic(&self) -> std::option::Option<&crate::model::ChatSimpleTopic> {
		self.topic.as_ref()
	}
}
impl std::fmt::Debug for GetThreadTopicOutput {
	fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
		let mut formatter = f.debug_struct("GetThreadTopicOutput");
		formatter.field("topic", &self.topic);
		formatter.finish()
	}
}
/// See [`GetThreadTopicOutput`](crate::output::GetThreadTopicOutput)
pub mod get_thread_topic_output {
	/// A builder for [`GetThreadTopicOutput`](crate::output::GetThreadTopicOutput)
	#[non_exhaustive]
	#[derive(std::default::Default, std::clone::Clone, std::cmp::PartialEq, std::fmt::Debug)]
	pub struct Builder {
		pub(crate) topic: std::option::Option<crate::model::ChatSimpleTopic>,
	}
	impl Builder {
		/// Represents a topic of the given chat thread without the associated handles for the topic.
		pub fn topic(mut self, input: crate::model::ChatSimpleTopic) -> Self {
			self.topic = Some(input);
			self
		}
		/// Represents a topic of the given chat thread without the associated handles for the topic.
		pub fn set_topic(
			mut self,
			input: std::option::Option<crate::model::ChatSimpleTopic>,
		) -> Self {
			self.topic = input;
			self
		}
		/// Consumes the builder and constructs a [`GetThreadTopicOutput`](crate::output::GetThreadTopicOutput)
		pub fn build(self) -> crate::output::GetThreadTopicOutput {
			crate::output::GetThreadTopicOutput { topic: self.topic }
		}
	}
}
impl GetThreadTopicOutput {
	/// Creates a new builder-style object to manufacture [`GetThreadTopicOutput`](crate::output::GetThreadTopicOutput)
	pub fn builder() -> crate::output::get_thread_topic_output::Builder {
		crate::output::get_thread_topic_output::Builder::default()
	}
}