#[async_trait::async_trait]
pub trait ChatService: std::fmt::Debug + Send + Sync {
async fn create_message(
&self,
req: crate::model::CreateMessageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Message>>;
async fn list_messages(
&self,
req: crate::model::ListMessagesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListMessagesResponse>>;
async fn list_memberships(
&self,
req: crate::model::ListMembershipsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListMembershipsResponse>>;
async fn get_membership(
&self,
req: crate::model::GetMembershipRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Membership>>;
async fn get_message(
&self,
req: crate::model::GetMessageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Message>>;
async fn update_message(
&self,
req: crate::model::UpdateMessageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Message>>;
async fn delete_message(
&self,
req: crate::model::DeleteMessageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn search_messages(
&self,
req: crate::model::SearchMessagesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SearchMessagesResponse>>;
async fn get_attachment(
&self,
req: crate::model::GetAttachmentRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Attachment>>;
async fn upload_attachment(
&self,
req: crate::model::UploadAttachmentRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::UploadAttachmentResponse>>;
async fn list_spaces(
&self,
req: crate::model::ListSpacesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListSpacesResponse>>;
async fn search_spaces(
&self,
req: crate::model::SearchSpacesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SearchSpacesResponse>>;
async fn get_space(
&self,
req: crate::model::GetSpaceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Space>>;
async fn create_space(
&self,
req: crate::model::CreateSpaceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Space>>;
async fn set_up_space(
&self,
req: crate::model::SetUpSpaceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Space>>;
async fn update_space(
&self,
req: crate::model::UpdateSpaceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Space>>;
async fn delete_space(
&self,
req: crate::model::DeleteSpaceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn complete_import_space(
&self,
req: crate::model::CompleteImportSpaceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::CompleteImportSpaceResponse>>;
async fn find_direct_message(
&self,
req: crate::model::FindDirectMessageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Space>>;
async fn find_group_chats(
&self,
req: crate::model::FindGroupChatsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::FindGroupChatsResponse>>;
async fn create_membership(
&self,
req: crate::model::CreateMembershipRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Membership>>;
async fn update_membership(
&self,
req: crate::model::UpdateMembershipRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Membership>>;
async fn delete_membership(
&self,
req: crate::model::DeleteMembershipRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Membership>>;
async fn create_reaction(
&self,
req: crate::model::CreateReactionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Reaction>>;
async fn list_reactions(
&self,
req: crate::model::ListReactionsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListReactionsResponse>>;
async fn delete_reaction(
&self,
req: crate::model::DeleteReactionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn create_custom_emoji(
&self,
req: crate::model::CreateCustomEmojiRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::CustomEmoji>>;
async fn get_custom_emoji(
&self,
req: crate::model::GetCustomEmojiRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::CustomEmoji>>;
async fn list_custom_emojis(
&self,
req: crate::model::ListCustomEmojisRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListCustomEmojisResponse>>;
async fn delete_custom_emoji(
&self,
req: crate::model::DeleteCustomEmojiRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn get_space_read_state(
&self,
req: crate::model::GetSpaceReadStateRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SpaceReadState>>;
async fn update_space_read_state(
&self,
req: crate::model::UpdateSpaceReadStateRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SpaceReadState>>;
async fn get_thread_read_state(
&self,
req: crate::model::GetThreadReadStateRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ThreadReadState>>;
async fn get_availability(
&self,
req: crate::model::GetAvailabilityRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Availability>>;
async fn mark_as_active(
&self,
req: crate::model::MarkAsActiveRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Availability>>;
async fn mark_as_away(
&self,
req: crate::model::MarkAsAwayRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Availability>>;
async fn mark_as_do_not_disturb(
&self,
req: crate::model::MarkAsDoNotDisturbRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Availability>>;
async fn update_availability(
&self,
req: crate::model::UpdateAvailabilityRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Availability>>;
async fn get_space_event(
&self,
req: crate::model::GetSpaceEventRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SpaceEvent>>;
async fn list_space_events(
&self,
req: crate::model::ListSpaceEventsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListSpaceEventsResponse>>;
async fn get_space_notification_setting(
&self,
req: crate::model::GetSpaceNotificationSettingRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SpaceNotificationSetting>>;
async fn update_space_notification_setting(
&self,
req: crate::model::UpdateSpaceNotificationSettingRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SpaceNotificationSetting>>;
async fn create_section(
&self,
req: crate::model::CreateSectionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Section>>;
async fn delete_section(
&self,
req: crate::model::DeleteSectionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>>;
async fn update_section(
&self,
req: crate::model::UpdateSectionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Section>>;
async fn list_sections(
&self,
req: crate::model::ListSectionsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListSectionsResponse>>;
async fn position_section(
&self,
req: crate::model::PositionSectionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::PositionSectionResponse>>;
async fn list_section_items(
&self,
req: crate::model::ListSectionItemsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListSectionItemsResponse>>;
async fn move_section_item(
&self,
req: crate::model::MoveSectionItemRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::MoveSectionItemResponse>>;
}
#[async_trait::async_trait]
impl<T: super::ChatService> ChatService for T {
async fn create_message(
&self,
req: crate::model::CreateMessageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Message>> {
T::create_message(self, req, options).await
}
async fn list_messages(
&self,
req: crate::model::ListMessagesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListMessagesResponse>> {
T::list_messages(self, req, options).await
}
async fn list_memberships(
&self,
req: crate::model::ListMembershipsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListMembershipsResponse>> {
T::list_memberships(self, req, options).await
}
async fn get_membership(
&self,
req: crate::model::GetMembershipRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Membership>> {
T::get_membership(self, req, options).await
}
async fn get_message(
&self,
req: crate::model::GetMessageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Message>> {
T::get_message(self, req, options).await
}
async fn update_message(
&self,
req: crate::model::UpdateMessageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Message>> {
T::update_message(self, req, options).await
}
async fn delete_message(
&self,
req: crate::model::DeleteMessageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_message(self, req, options).await
}
async fn search_messages(
&self,
req: crate::model::SearchMessagesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SearchMessagesResponse>> {
T::search_messages(self, req, options).await
}
async fn get_attachment(
&self,
req: crate::model::GetAttachmentRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Attachment>> {
T::get_attachment(self, req, options).await
}
async fn upload_attachment(
&self,
req: crate::model::UploadAttachmentRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::UploadAttachmentResponse>> {
T::upload_attachment(self, req, options).await
}
async fn list_spaces(
&self,
req: crate::model::ListSpacesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListSpacesResponse>> {
T::list_spaces(self, req, options).await
}
async fn search_spaces(
&self,
req: crate::model::SearchSpacesRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SearchSpacesResponse>> {
T::search_spaces(self, req, options).await
}
async fn get_space(
&self,
req: crate::model::GetSpaceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Space>> {
T::get_space(self, req, options).await
}
async fn create_space(
&self,
req: crate::model::CreateSpaceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Space>> {
T::create_space(self, req, options).await
}
async fn set_up_space(
&self,
req: crate::model::SetUpSpaceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Space>> {
T::set_up_space(self, req, options).await
}
async fn update_space(
&self,
req: crate::model::UpdateSpaceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Space>> {
T::update_space(self, req, options).await
}
async fn delete_space(
&self,
req: crate::model::DeleteSpaceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_space(self, req, options).await
}
async fn complete_import_space(
&self,
req: crate::model::CompleteImportSpaceRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::CompleteImportSpaceResponse>> {
T::complete_import_space(self, req, options).await
}
async fn find_direct_message(
&self,
req: crate::model::FindDirectMessageRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Space>> {
T::find_direct_message(self, req, options).await
}
async fn find_group_chats(
&self,
req: crate::model::FindGroupChatsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::FindGroupChatsResponse>> {
T::find_group_chats(self, req, options).await
}
async fn create_membership(
&self,
req: crate::model::CreateMembershipRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Membership>> {
T::create_membership(self, req, options).await
}
async fn update_membership(
&self,
req: crate::model::UpdateMembershipRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Membership>> {
T::update_membership(self, req, options).await
}
async fn delete_membership(
&self,
req: crate::model::DeleteMembershipRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Membership>> {
T::delete_membership(self, req, options).await
}
async fn create_reaction(
&self,
req: crate::model::CreateReactionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Reaction>> {
T::create_reaction(self, req, options).await
}
async fn list_reactions(
&self,
req: crate::model::ListReactionsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListReactionsResponse>> {
T::list_reactions(self, req, options).await
}
async fn delete_reaction(
&self,
req: crate::model::DeleteReactionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_reaction(self, req, options).await
}
async fn create_custom_emoji(
&self,
req: crate::model::CreateCustomEmojiRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::CustomEmoji>> {
T::create_custom_emoji(self, req, options).await
}
async fn get_custom_emoji(
&self,
req: crate::model::GetCustomEmojiRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::CustomEmoji>> {
T::get_custom_emoji(self, req, options).await
}
async fn list_custom_emojis(
&self,
req: crate::model::ListCustomEmojisRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListCustomEmojisResponse>> {
T::list_custom_emojis(self, req, options).await
}
async fn delete_custom_emoji(
&self,
req: crate::model::DeleteCustomEmojiRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_custom_emoji(self, req, options).await
}
async fn get_space_read_state(
&self,
req: crate::model::GetSpaceReadStateRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SpaceReadState>> {
T::get_space_read_state(self, req, options).await
}
async fn update_space_read_state(
&self,
req: crate::model::UpdateSpaceReadStateRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SpaceReadState>> {
T::update_space_read_state(self, req, options).await
}
async fn get_thread_read_state(
&self,
req: crate::model::GetThreadReadStateRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ThreadReadState>> {
T::get_thread_read_state(self, req, options).await
}
async fn get_availability(
&self,
req: crate::model::GetAvailabilityRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Availability>> {
T::get_availability(self, req, options).await
}
async fn mark_as_active(
&self,
req: crate::model::MarkAsActiveRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Availability>> {
T::mark_as_active(self, req, options).await
}
async fn mark_as_away(
&self,
req: crate::model::MarkAsAwayRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Availability>> {
T::mark_as_away(self, req, options).await
}
async fn mark_as_do_not_disturb(
&self,
req: crate::model::MarkAsDoNotDisturbRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Availability>> {
T::mark_as_do_not_disturb(self, req, options).await
}
async fn update_availability(
&self,
req: crate::model::UpdateAvailabilityRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Availability>> {
T::update_availability(self, req, options).await
}
async fn get_space_event(
&self,
req: crate::model::GetSpaceEventRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SpaceEvent>> {
T::get_space_event(self, req, options).await
}
async fn list_space_events(
&self,
req: crate::model::ListSpaceEventsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListSpaceEventsResponse>> {
T::list_space_events(self, req, options).await
}
async fn get_space_notification_setting(
&self,
req: crate::model::GetSpaceNotificationSettingRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SpaceNotificationSetting>> {
T::get_space_notification_setting(self, req, options).await
}
async fn update_space_notification_setting(
&self,
req: crate::model::UpdateSpaceNotificationSettingRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::SpaceNotificationSetting>> {
T::update_space_notification_setting(self, req, options).await
}
async fn create_section(
&self,
req: crate::model::CreateSectionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Section>> {
T::create_section(self, req, options).await
}
async fn delete_section(
&self,
req: crate::model::DeleteSectionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<()>> {
T::delete_section(self, req, options).await
}
async fn update_section(
&self,
req: crate::model::UpdateSectionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::Section>> {
T::update_section(self, req, options).await
}
async fn list_sections(
&self,
req: crate::model::ListSectionsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListSectionsResponse>> {
T::list_sections(self, req, options).await
}
async fn position_section(
&self,
req: crate::model::PositionSectionRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::PositionSectionResponse>> {
T::position_section(self, req, options).await
}
async fn list_section_items(
&self,
req: crate::model::ListSectionItemsRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::ListSectionItemsResponse>> {
T::list_section_items(self, req, options).await
}
async fn move_section_item(
&self,
req: crate::model::MoveSectionItemRequest,
options: crate::RequestOptions,
) -> crate::Result<crate::Response<crate::model::MoveSectionItemResponse>> {
T::move_section_item(self, req, options).await
}
}