/*
* Mattermost API Reference
*
* There is also a work-in-progress [Postman API reference](https://documenter.getpostman.com/view/4508214/RW8FERUn).
*
* The version of the OpenAPI document: 4.0.0
* Contact: feedback@mattermost.com
* Generated by: https://openapi-generator.tech
*/
use reqwest;
use super::ResponseContent;
use super::{Error, configuration};
/// struct for passing parameters to the method [`add_channel_member`]
#[derive(Clone, Debug, Default)]
pub struct AddChannelMemberParams {
/// The channel ID
pub channel_id: String,
pub add_channel_member_request: crate::openapi::models::AddChannelMemberRequest,
}
/// struct for passing parameters to the method [`autocomplete_channels_for_team`]
#[derive(Clone, Debug, Default)]
pub struct AutocompleteChannelsForTeamParams {
/// Team GUID
pub team_id: String,
/// Name or display name
pub name: String,
}
/// struct for passing parameters to the method [`autocomplete_channels_for_team_for_search`]
#[derive(Clone, Debug, Default)]
pub struct AutocompleteChannelsForTeamForSearchParams {
/// Team GUID
pub team_id: String,
/// Name or display name
pub name: String,
}
/// struct for passing parameters to the method [`channel_members_minus_group_members`]
#[derive(Clone, Debug, Default)]
pub struct ChannelMembersMinusGroupMembersParams {
/// Channel GUID
pub channel_id: String,
/// A comma-separated list of group ids.
pub group_ids: String,
/// The page to select.
pub page: Option<i32>,
/// The number of users per page.
pub per_page: Option<i32>,
}
/// struct for passing parameters to the method [`create_channel`]
#[derive(Clone, Debug, Default)]
pub struct CreateChannelParams {
/// Channel object to be created
pub create_channel_request: crate::openapi::models::CreateChannelRequest,
}
/// struct for passing parameters to the method [`create_direct_channel`]
#[derive(Clone, Debug, Default)]
pub struct CreateDirectChannelParams {
/// The two user ids to be in the direct message
pub request_body: Vec<String>,
}
/// struct for passing parameters to the method [`create_group_channel`]
#[derive(Clone, Debug, Default)]
pub struct CreateGroupChannelParams {
/// User ids to be in the group message channel
pub request_body: Vec<String>,
}
/// struct for passing parameters to the method [`create_sidebar_category_for_team_for_user`]
#[derive(Clone, Debug, Default)]
pub struct CreateSidebarCategoryForTeamForUserParams {
/// Team GUID
pub team_id: String,
/// User GUID
pub user_id: String,
pub sidebar_category: crate::openapi::models::SidebarCategory,
}
/// struct for passing parameters to the method [`delete_channel`]
#[derive(Clone, Debug, Default)]
pub struct DeleteChannelParams {
/// Channel GUID
pub channel_id: String,
}
/// struct for passing parameters to the method [`get_all_channels`]
#[derive(Clone, Debug, Default)]
pub struct GetAllChannelsParams {
/// A group id to exclude channels that are associated with that group via GroupChannel records. This can also be left blank with `not_associated_to_group=`.
pub not_associated_to_group: Option<String>,
/// The page to select.
pub page: Option<i32>,
/// The number of channels per page.
pub per_page: Option<i32>,
/// Whether to exclude default channels (ex Town Square, Off-Topic) from the results.
pub exclude_default_channels: Option<bool>,
/// Include channels that have been archived. This correlates to the `DeleteAt` flag being set in the database.
pub include_deleted: Option<bool>,
/// Appends a total count of returned channels inside the response object - ex: `{ \"channels\": [], \"total_count\" : 0 }`.
pub include_total_count: Option<bool>,
/// If set to true, channels which are part of a data retention policy will be excluded. The `sysconsole_read_compliance` permission is required to use this parameter. __Minimum server version__: 5.35
pub exclude_policy_constrained: Option<bool>,
}
/// struct for passing parameters to the method [`get_channel`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelParams {
/// Channel GUID
pub channel_id: String,
}
/// struct for passing parameters to the method [`get_channel_by_name`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelByNameParams {
/// Team GUID
pub team_id: String,
/// Channel Name
pub channel_name: String,
/// Defines if deleted channels should be returned or not (Mattermost Server 5.26.0+)
pub include_deleted: Option<bool>,
}
/// struct for passing parameters to the method [`get_channel_by_name_for_team_name`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelByNameForTeamNameParams {
/// Team Name
pub team_name: String,
/// Channel Name
pub channel_name: String,
/// Defines if deleted channels should be returned or not (Mattermost Server 5.26.0+)
pub include_deleted: Option<bool>,
}
/// struct for passing parameters to the method [`get_channel_member`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelMemberParams {
/// Channel GUID
pub channel_id: String,
/// User GUID
pub user_id: String,
}
/// struct for passing parameters to the method [`get_channel_member_counts_by_group`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelMemberCountsByGroupParams {
/// Channel GUID
pub channel_id: String,
/// Defines if member timezone counts should be returned or not
pub include_timezones: Option<bool>,
}
/// struct for passing parameters to the method [`get_channel_members`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelMembersParams {
/// Channel GUID
pub channel_id: String,
/// The page to select.
pub page: Option<i32>,
/// The number of members per page. There is a maximum limit of 200 members.
pub per_page: Option<i32>,
}
/// struct for passing parameters to the method [`get_channel_members_by_ids`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelMembersByIdsParams {
/// Channel GUID
pub channel_id: String,
/// List of user ids
pub request_body: Vec<String>,
}
/// struct for passing parameters to the method [`get_channel_members_for_user`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelMembersForUserParams {
/// User GUID
pub user_id: String,
/// Team GUID
pub team_id: String,
}
/// struct for passing parameters to the method [`get_channel_members_timezones`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelMembersTimezonesParams {
/// Channel GUID
pub channel_id: String,
}
/// struct for passing parameters to the method [`get_channel_moderations`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelModerationsParams {
/// Channel GUID
pub channel_id: String,
}
/// struct for passing parameters to the method [`get_channel_stats`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelStatsParams {
/// Channel GUID
pub channel_id: String,
}
/// struct for passing parameters to the method [`get_channel_unread`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelUnreadParams {
/// User GUID
pub user_id: String,
/// Channel GUID
pub channel_id: String,
}
/// struct for passing parameters to the method [`get_channels_for_team_for_user`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelsForTeamForUserParams {
/// User GUID
pub user_id: String,
/// Team GUID
pub team_id: String,
/// Defines if deleted channels should be returned or not
pub include_deleted: Option<bool>,
/// Filters the deleted channels by this time in epoch format. Does not have any effect if include_deleted is set to false.
pub last_delete_at: Option<i32>,
}
/// struct for passing parameters to the method [`get_channels_for_user`]
#[derive(Clone, Debug, Default)]
pub struct GetChannelsForUserParams {
/// The ID of the user. This can also be \"me\" which will point to the current user.
pub user_id: String,
/// Filters the deleted channels by this time in epoch format. Does not have any effect if include_deleted is set to false.
pub last_delete_at: Option<i32>,
/// Defines if deleted channels should be returned or not
pub include_deleted: Option<bool>,
}
/// struct for passing parameters to the method [`get_deleted_channels_for_team`]
#[derive(Clone, Debug, Default)]
pub struct GetDeletedChannelsForTeamParams {
/// Team GUID
pub team_id: String,
/// The page to select.
pub page: Option<i32>,
/// The number of public channels per page.
pub per_page: Option<i32>,
}
/// struct for passing parameters to the method [`get_pinned_posts`]
#[derive(Clone, Debug, Default)]
pub struct GetPinnedPostsParams {
/// Channel GUID
pub channel_id: String,
}
/// struct for passing parameters to the method [`get_private_channels_for_team`]
#[derive(Clone, Debug, Default)]
pub struct GetPrivateChannelsForTeamParams {
/// Team GUID
pub team_id: String,
/// The page to select.
pub page: Option<i32>,
/// The number of private channels per page.
pub per_page: Option<i32>,
}
/// struct for passing parameters to the method [`get_public_channels_by_ids_for_team`]
#[derive(Clone, Debug, Default)]
pub struct GetPublicChannelsByIdsForTeamParams {
/// Team GUID
pub team_id: String,
/// List of channel ids
pub request_body: Vec<String>,
}
/// struct for passing parameters to the method [`get_public_channels_for_team`]
#[derive(Clone, Debug, Default)]
pub struct GetPublicChannelsForTeamParams {
/// Team GUID
pub team_id: String,
/// The page to select.
pub page: Option<i32>,
/// The number of public channels per page.
pub per_page: Option<i32>,
}
/// struct for passing parameters to the method [`get_sidebar_categories_for_team_for_user`]
#[derive(Clone, Debug, Default)]
pub struct GetSidebarCategoriesForTeamForUserParams {
/// Team GUID
pub team_id: String,
/// User GUID
pub user_id: String,
}
/// struct for passing parameters to the method [`get_sidebar_category_for_team_for_user`]
#[derive(Clone, Debug, Default)]
pub struct GetSidebarCategoryForTeamForUserParams {
/// Team GUID
pub team_id: String,
/// User GUID
pub user_id: String,
/// Category GUID
pub category_id: String,
}
/// struct for passing parameters to the method [`get_sidebar_category_order_for_team_for_user`]
#[derive(Clone, Debug, Default)]
pub struct GetSidebarCategoryOrderForTeamForUserParams {
/// Team GUID
pub team_id: String,
/// User GUID
pub user_id: String,
}
/// struct for passing parameters to the method [`move_channel`]
#[derive(Clone, Debug, Default)]
pub struct MoveChannelParams {
/// Channel GUID
pub channel_id: String,
pub move_channel_request: crate::openapi::models::MoveChannelRequest,
}
/// struct for passing parameters to the method [`patch_channel`]
#[derive(Clone, Debug, Default)]
pub struct PatchChannelParams {
/// Channel GUID
pub channel_id: String,
/// Channel object to be updated
pub patch_channel_request: crate::openapi::models::PatchChannelRequest,
}
/// struct for passing parameters to the method [`patch_channel_moderations`]
#[derive(Clone, Debug, Default)]
pub struct PatchChannelModerationsParams {
/// Channel GUID
pub channel_id: String,
pub channel_moderation_patch: crate::openapi::models::ChannelModerationPatch,
}
/// struct for passing parameters to the method [`remove_sidebar_category_for_team_for_user`]
#[derive(Clone, Debug, Default)]
pub struct RemoveSidebarCategoryForTeamForUserParams {
/// Team GUID
pub team_id: String,
/// User GUID
pub user_id: String,
/// Category GUID
pub category_id: String,
}
/// struct for passing parameters to the method [`remove_user_from_channel`]
#[derive(Clone, Debug, Default)]
pub struct RemoveUserFromChannelParams {
/// Channel GUID
pub channel_id: String,
/// User GUID
pub user_id: String,
}
/// struct for passing parameters to the method [`restore_channel`]
#[derive(Clone, Debug, Default)]
pub struct RestoreChannelParams {
/// Channel GUID
pub channel_id: String,
}
/// struct for passing parameters to the method [`search_all_channels`]
#[derive(Clone, Debug, Default)]
pub struct SearchAllChannelsParams {
/// The search terms and logic to use in the search.
pub search_all_channels_request: crate::openapi::models::SearchAllChannelsRequest,
/// Is the request from system_console. If this is set to true, it filters channels by the logged in user.
pub system_console: Option<bool>,
}
/// struct for passing parameters to the method [`search_archived_channels`]
#[derive(Clone, Debug, Default)]
pub struct SearchArchivedChannelsParams {
/// Team GUID
pub team_id: String,
/// Search criteria
pub search_archived_channels_request: crate::openapi::models::SearchArchivedChannelsRequest,
}
/// struct for passing parameters to the method [`search_channels`]
#[derive(Clone, Debug, Default)]
pub struct SearchChannelsParams {
/// Team GUID
pub team_id: String,
/// Search criteria
pub search_channels_request: crate::openapi::models::SearchChannelsRequest,
}
/// struct for passing parameters to the method [`search_group_channels`]
#[derive(Clone, Debug, Default)]
pub struct SearchGroupChannelsParams {
/// Search criteria
pub search_group_channels_request: crate::openapi::models::SearchGroupChannelsRequest,
}
/// struct for passing parameters to the method [`update_channel`]
#[derive(Clone, Debug, Default)]
pub struct UpdateChannelParams {
/// Channel GUID
pub channel_id: String,
/// Channel object to be updated
pub update_channel_request: crate::openapi::models::UpdateChannelRequest,
}
/// struct for passing parameters to the method [`update_channel_member_scheme_roles`]
#[derive(Clone, Debug, Default)]
pub struct UpdateChannelMemberSchemeRolesParams {
/// Channel GUID
pub channel_id: String,
/// User GUID
pub user_id: String,
/// Scheme properties.
pub update_team_member_scheme_roles_request:
crate::openapi::models::UpdateTeamMemberSchemeRolesRequest,
}
/// struct for passing parameters to the method [`update_channel_notify_props`]
#[derive(Clone, Debug, Default)]
pub struct UpdateChannelNotifyPropsParams {
/// Channel GUID
pub channel_id: String,
/// User GUID
pub user_id: String,
pub channel_notify_props: crate::openapi::models::ChannelNotifyProps,
}
/// struct for passing parameters to the method [`update_channel_privacy`]
#[derive(Clone, Debug, Default)]
pub struct UpdateChannelPrivacyParams {
/// Channel GUID
pub channel_id: String,
pub update_channel_privacy_request: crate::openapi::models::UpdateChannelPrivacyRequest,
}
/// struct for passing parameters to the method [`update_channel_roles`]
#[derive(Clone, Debug, Default)]
pub struct UpdateChannelRolesParams {
/// Channel GUID
pub channel_id: String,
/// User GUID
pub user_id: String,
/// Space-delimited channel roles to assign to the user
pub update_user_roles_request: crate::openapi::models::UpdateUserRolesRequest,
}
/// struct for passing parameters to the method [`update_channel_scheme`]
#[derive(Clone, Debug, Default)]
pub struct UpdateChannelSchemeParams {
/// Channel GUID
pub channel_id: String,
/// Scheme GUID
pub update_team_scheme_request: crate::openapi::models::UpdateTeamSchemeRequest,
}
/// struct for passing parameters to the method [`update_sidebar_categories_for_team_for_user`]
#[derive(Clone, Debug, Default)]
pub struct UpdateSidebarCategoriesForTeamForUserParams {
/// Team GUID
pub team_id: String,
/// User GUID
pub user_id: String,
pub sidebar_category: Vec<crate::openapi::models::SidebarCategory>,
}
/// struct for passing parameters to the method [`update_sidebar_category_for_team_for_user`]
#[derive(Clone, Debug, Default)]
pub struct UpdateSidebarCategoryForTeamForUserParams {
/// Team GUID
pub team_id: String,
/// User GUID
pub user_id: String,
/// Category GUID
pub category_id: String,
pub sidebar_category: crate::openapi::models::SidebarCategory,
}
/// struct for passing parameters to the method [`update_sidebar_category_order_for_team_for_user`]
#[derive(Clone, Debug, Default)]
pub struct UpdateSidebarCategoryOrderForTeamForUserParams {
/// Team GUID
pub team_id: String,
/// User GUID
pub user_id: String,
pub request_body: Vec<String>,
}
/// struct for passing parameters to the method [`view_channel`]
#[derive(Clone, Debug, Default)]
pub struct ViewChannelParams {
/// User ID to perform the view action for
pub user_id: String,
/// Paremeters affecting how and which channels to view
pub view_channel_request: crate::openapi::models::ViewChannelRequest,
}
/// struct for typed errors of method [`add_channel_member`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum AddChannelMemberError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`autocomplete_channels_for_team`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum AutocompleteChannelsForTeamError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`autocomplete_channels_for_team_for_search`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum AutocompleteChannelsForTeamForSearchError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`channel_members_minus_group_members`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum ChannelMembersMinusGroupMembersError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`create_channel`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum CreateChannelError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`create_direct_channel`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum CreateDirectChannelError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`create_group_channel`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum CreateGroupChannelError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`create_sidebar_category_for_team_for_user`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum CreateSidebarCategoryForTeamForUserError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`delete_channel`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum DeleteChannelError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_all_channels`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetAllChannelsError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channel`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelError {
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channel_by_name`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelByNameError {
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channel_by_name_for_team_name`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelByNameForTeamNameError {
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channel_member`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelMemberError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channel_member_counts_by_group`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelMemberCountsByGroupError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channel_members`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelMembersError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channel_members_by_ids`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelMembersByIdsError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channel_members_for_user`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelMembersForUserError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channel_members_timezones`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelMembersTimezonesError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channel_moderations`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelModerationsError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channel_stats`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelStatsError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channel_unread`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelUnreadError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channels_for_team_for_user`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelsForTeamForUserError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_channels_for_user`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetChannelsForUserError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_deleted_channels_for_team`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetDeletedChannelsForTeamError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_pinned_posts`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetPinnedPostsError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_private_channels_for_team`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetPrivateChannelsForTeamError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_public_channels_by_ids_for_team`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetPublicChannelsByIdsForTeamError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_public_channels_for_team`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetPublicChannelsForTeamError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_sidebar_categories_for_team_for_user`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetSidebarCategoriesForTeamForUserError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_sidebar_category_for_team_for_user`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetSidebarCategoryForTeamForUserError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`get_sidebar_category_order_for_team_for_user`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum GetSidebarCategoryOrderForTeamForUserError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`move_channel`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum MoveChannelError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`patch_channel`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum PatchChannelError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`patch_channel_moderations`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum PatchChannelModerationsError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`remove_sidebar_category_for_team_for_user`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum RemoveSidebarCategoryForTeamForUserError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`remove_user_from_channel`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum RemoveUserFromChannelError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`restore_channel`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum RestoreChannelError {
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`search_all_channels`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum SearchAllChannelsError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`search_archived_channels`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum SearchArchivedChannelsError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`search_channels`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum SearchChannelsError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`search_group_channels`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum SearchGroupChannelsError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`update_channel`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum UpdateChannelError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`update_channel_member_scheme_roles`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum UpdateChannelMemberSchemeRolesError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`update_channel_notify_props`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum UpdateChannelNotifyPropsError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`update_channel_privacy`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum UpdateChannelPrivacyError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`update_channel_roles`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum UpdateChannelRolesError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`update_channel_scheme`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum UpdateChannelSchemeError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status501(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`update_sidebar_categories_for_team_for_user`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum UpdateSidebarCategoriesForTeamForUserError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`update_sidebar_category_for_team_for_user`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum UpdateSidebarCategoryForTeamForUserError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`update_sidebar_category_order_for_team_for_user`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum UpdateSidebarCategoryOrderForTeamForUserError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
Status404(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// struct for typed errors of method [`view_channel`]
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
#[serde(untagged)]
pub enum ViewChannelError {
Status400(crate::openapi::models::AppError),
Status401(crate::openapi::models::AppError),
Status403(crate::openapi::models::AppError),
UnknownValue(serde_json::Value),
}
/// Add a user to a channel by creating a channel member object.
pub async fn add_channel_member(
configuration: &configuration::Configuration,
params: AddChannelMemberParams,
) -> Result<crate::openapi::models::ChannelMember, Error<AddChannelMemberError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let add_channel_member_request = params.add_channel_member_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/members",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&add_channel_member_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<AddChannelMemberError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Autocomplete public channels on a team based on the search term provided in the request URL. __Minimum server version__: 4.7 ##### Permissions Must have the `list_team_channels` permission.
pub async fn autocomplete_channels_for_team(
configuration: &configuration::Configuration,
params: AutocompleteChannelsForTeamParams,
) -> Result<Vec<crate::openapi::models::Channel>, Error<AutocompleteChannelsForTeamError>> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let name = params.name;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/teams/{team_id}/channels/autocomplete",
local_var_configuration.base_path,
team_id = super::urlencode(team_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
local_var_req_builder = local_var_req_builder.query(&[("name", &name.to_string())]);
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<AutocompleteChannelsForTeamError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Autocomplete your channels on a team based on the search term provided in the request URL. __Minimum server version__: 5.4 ##### Permissions Must have the `list_team_channels` permission.
pub async fn autocomplete_channels_for_team_for_search(
configuration: &configuration::Configuration,
params: AutocompleteChannelsForTeamForSearchParams,
) -> Result<Vec<crate::openapi::models::Channel>, Error<AutocompleteChannelsForTeamForSearchError>>
{
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let name = params.name;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/teams/{team_id}/channels/search_autocomplete",
local_var_configuration.base_path,
team_id = super::urlencode(team_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
local_var_req_builder = local_var_req_builder.query(&[("name", &name.to_string())]);
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<AutocompleteChannelsForTeamForSearchError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get the set of users who are members of the channel minus the set of users who are members of the given groups. Each user object contains an array of group objects representing the group memberships for that user. Each user object contains the boolean fields `scheme_guest`, `scheme_user`, and `scheme_admin` representing the roles that user has for the given channel. ##### Permissions Must have `manage_system` permission. __Minimum server version__: 5.14
pub async fn channel_members_minus_group_members(
configuration: &configuration::Configuration,
params: ChannelMembersMinusGroupMembersParams,
) -> Result<(), Error<ChannelMembersMinusGroupMembersError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let group_ids = params.group_ids;
let page = params.page;
let per_page = params.per_page;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/members_minus_group_members",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
local_var_req_builder = local_var_req_builder.query(&[("group_ids", &group_ids.to_string())]);
if let Some(ref local_var_str) = page {
local_var_req_builder =
local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = per_page {
local_var_req_builder =
local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
Ok(())
} else {
let local_var_entity: Option<ChannelMembersMinusGroupMembersError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Create a new channel. ##### Permissions If creating a public channel, `create_public_channel` permission is required. If creating a private channel, `create_private_channel` permission is required.
pub async fn create_channel(
configuration: &configuration::Configuration,
params: CreateChannelParams,
) -> Result<crate::openapi::models::Channel, Error<CreateChannelError>> {
let local_var_configuration = configuration;
// unbox the parameters
let create_channel_request = params.create_channel_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!("{}/api/v4/channels", local_var_configuration.base_path);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&create_channel_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<CreateChannelError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Create a new direct message channel between two users. ##### Permissions Must be one of the two users and have `create_direct_channel` permission. Having the `manage_system` permission voids the previous requirements.
pub async fn create_direct_channel(
configuration: &configuration::Configuration,
params: CreateDirectChannelParams,
) -> Result<crate::openapi::models::Channel, Error<CreateDirectChannelError>> {
let local_var_configuration = configuration;
// unbox the parameters
let request_body = params.request_body;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/direct",
local_var_configuration.base_path
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&request_body);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<CreateDirectChannelError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Create a new group message channel to group of users. If the logged in user's id is not included in the list, it will be appended to the end. ##### Permissions Must have `create_group_channel` permission.
pub async fn create_group_channel(
configuration: &configuration::Configuration,
params: CreateGroupChannelParams,
) -> Result<crate::openapi::models::Channel, Error<CreateGroupChannelError>> {
let local_var_configuration = configuration;
// unbox the parameters
let request_body = params.request_body;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/group",
local_var_configuration.base_path
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&request_body);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<CreateGroupChannelError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Create a custom sidebar category for the user on the given team. __Minimum server version__: 5.26 ##### Permissions Must be authenticated and have the `list_team_channels` permission.
pub async fn create_sidebar_category_for_team_for_user(
configuration: &configuration::Configuration,
params: CreateSidebarCategoryForTeamForUserParams,
) -> Result<crate::openapi::models::SidebarCategory, Error<CreateSidebarCategoryForTeamForUserError>>
{
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let user_id = params.user_id;
let sidebar_category = params.sidebar_category;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/users/{user_id}/teams/{team_id}/channels/categories",
local_var_configuration.base_path,
team_id = super::urlencode(team_id),
user_id = super::urlencode(user_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&sidebar_category);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<CreateSidebarCategoryForTeamForUserError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Archives a channel. This will set the `deleteAt` to the current timestamp in the database. Soft deleted channels may not be accessible in the user interface. They can be viewed and unarchived in the **System Console > User Management > Channels** based on your license. Direct and group message channels cannot be deleted. As of server version 5.28, optionally use the `permanent=true` query parameter to permanently delete the channel for compliance reasons. To use this feature `ServiceSettings.EnableAPIChannelDeletion` must be set to `true` in the server's configuration. If you permanently delete a channel this action is not recoverable outside of a database backup. ##### Permissions `delete_public_channel` permission if the channel is public, `delete_private_channel` permission if the channel is private, or have `manage_system` permission.
pub async fn delete_channel(
configuration: &configuration::Configuration,
params: DeleteChannelParams,
) -> Result<crate::openapi::models::StatusOk, Error<DeleteChannelError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<DeleteChannelError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// ##### Permissions `manage_system`
pub async fn get_all_channels(
configuration: &configuration::Configuration,
params: GetAllChannelsParams,
) -> Result<Vec<crate::openapi::models::ChannelWithTeamData>, Error<GetAllChannelsError>> {
let local_var_configuration = configuration;
// unbox the parameters
let not_associated_to_group = params.not_associated_to_group;
let page = params.page;
let per_page = params.per_page;
let exclude_default_channels = params.exclude_default_channels;
let include_deleted = params.include_deleted;
let include_total_count = params.include_total_count;
let exclude_policy_constrained = params.exclude_policy_constrained;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!("{}/api/v4/channels", local_var_configuration.base_path);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = not_associated_to_group {
local_var_req_builder =
local_var_req_builder.query(&[("not_associated_to_group", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = page {
local_var_req_builder =
local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = per_page {
local_var_req_builder =
local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = exclude_default_channels {
local_var_req_builder = local_var_req_builder
.query(&[("exclude_default_channels", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = include_deleted {
local_var_req_builder =
local_var_req_builder.query(&[("include_deleted", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = include_total_count {
local_var_req_builder =
local_var_req_builder.query(&[("include_total_count", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = exclude_policy_constrained {
local_var_req_builder = local_var_req_builder
.query(&[("exclude_policy_constrained", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetAllChannelsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get channel from the provided channel id string. ##### Permissions `read_channel` permission for the channel.
pub async fn get_channel(
configuration: &configuration::Configuration,
params: GetChannelParams,
) -> Result<crate::openapi::models::Channel, Error<GetChannelError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Gets channel from the provided team id and channel name strings. ##### Permissions `read_channel` permission for the channel.
pub async fn get_channel_by_name(
configuration: &configuration::Configuration,
params: GetChannelByNameParams,
) -> Result<crate::openapi::models::Channel, Error<GetChannelByNameError>> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let channel_name = params.channel_name;
let include_deleted = params.include_deleted;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/teams/{team_id}/channels/name/{channel_name}",
local_var_configuration.base_path,
team_id = super::urlencode(team_id),
channel_name = super::urlencode(channel_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = include_deleted {
local_var_req_builder =
local_var_req_builder.query(&[("include_deleted", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelByNameError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Gets a channel from the provided team name and channel name strings. ##### Permissions `read_channel` permission for the channel.
pub async fn get_channel_by_name_for_team_name(
configuration: &configuration::Configuration,
params: GetChannelByNameForTeamNameParams,
) -> Result<crate::openapi::models::Channel, Error<GetChannelByNameForTeamNameError>> {
let local_var_configuration = configuration;
// unbox the parameters
let team_name = params.team_name;
let channel_name = params.channel_name;
let include_deleted = params.include_deleted;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/teams/name/{team_name}/channels/name/{channel_name}",
local_var_configuration.base_path,
team_name = super::urlencode(team_name),
channel_name = super::urlencode(channel_name)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = include_deleted {
local_var_req_builder =
local_var_req_builder.query(&[("include_deleted", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelByNameForTeamNameError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get a channel member. ##### Permissions `read_channel` permission for the channel.
pub async fn get_channel_member(
configuration: &configuration::Configuration,
params: GetChannelMemberParams,
) -> Result<crate::openapi::models::ChannelMember, Error<GetChannelMemberError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let user_id = params.user_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/members/{user_id}",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id),
user_id = super::urlencode(user_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelMemberError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Returns a set of ChannelMemberCountByGroup objects which contain a `group_id`, `channel_member_count` and a `channel_member_timezones_count`. ##### Permissions Must have `read_channel` permission for the given channel. __Minimum server version__: 5.24
pub async fn get_channel_member_counts_by_group(
configuration: &configuration::Configuration,
params: GetChannelMemberCountsByGroupParams,
) -> Result<(), Error<GetChannelMemberCountsByGroupError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let include_timezones = params.include_timezones;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/member_counts_by_group",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = include_timezones {
local_var_req_builder =
local_var_req_builder.query(&[("include_timezones", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
Ok(())
} else {
let local_var_entity: Option<GetChannelMemberCountsByGroupError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get a page of members for a channel. ##### Permissions `read_channel` permission for the channel.
pub async fn get_channel_members(
configuration: &configuration::Configuration,
params: GetChannelMembersParams,
) -> Result<Vec<crate::openapi::models::ChannelMember>, Error<GetChannelMembersError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let page = params.page;
let per_page = params.per_page;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/members",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = page {
local_var_req_builder =
local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = per_page {
local_var_req_builder =
local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelMembersError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get a list of channel members based on the provided user ids. ##### Permissions Must have the `read_channel` permission.
pub async fn get_channel_members_by_ids(
configuration: &configuration::Configuration,
params: GetChannelMembersByIdsParams,
) -> Result<Vec<crate::openapi::models::ChannelMember>, Error<GetChannelMembersByIdsError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let request_body = params.request_body;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/members/ids",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&request_body);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelMembersByIdsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get all channel memberships and associated membership roles (i.e. `channel_user`, `channel_admin`) for a user on a specific team. ##### Permissions Logged in as the user and `view_team` permission for the team. Having `manage_system` permission voids the previous requirements.
pub async fn get_channel_members_for_user(
configuration: &configuration::Configuration,
params: GetChannelMembersForUserParams,
) -> Result<Vec<crate::openapi::models::ChannelMember>, Error<GetChannelMembersForUserError>> {
let local_var_configuration = configuration;
// unbox the parameters
let user_id = params.user_id;
let team_id = params.team_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/users/{user_id}/teams/{team_id}/channels/members",
local_var_configuration.base_path,
user_id = super::urlencode(user_id),
team_id = super::urlencode(team_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelMembersForUserError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get a list of timezones for the users who are in this channel. __Minimum server version__: 5.6 ##### Permissions Must have the `read_channel` permission.
pub async fn get_channel_members_timezones(
configuration: &configuration::Configuration,
params: GetChannelMembersTimezonesParams,
) -> Result<Vec<String>, Error<GetChannelMembersTimezonesError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/timezones",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelMembersTimezonesError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// ##### Permissions Must have `manage_system` permission. __Minimum server version__: 5.22
pub async fn get_channel_moderations(
configuration: &configuration::Configuration,
params: GetChannelModerationsParams,
) -> Result<Vec<crate::openapi::models::ChannelModeration>, Error<GetChannelModerationsError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/moderations",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelModerationsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get statistics for a channel. ##### Permissions Must have the `read_channel` permission.
pub async fn get_channel_stats(
configuration: &configuration::Configuration,
params: GetChannelStatsParams,
) -> Result<crate::openapi::models::ChannelStats, Error<GetChannelStatsError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/stats",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelStatsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get the total unread messages and mentions for a channel for a user. ##### Permissions Must be logged in as user and have the `read_channel` permission, or have `edit_other_usrs` permission.
pub async fn get_channel_unread(
configuration: &configuration::Configuration,
params: GetChannelUnreadParams,
) -> Result<crate::openapi::models::ChannelUnread, Error<GetChannelUnreadError>> {
let local_var_configuration = configuration;
// unbox the parameters
let user_id = params.user_id;
let channel_id = params.channel_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/users/{user_id}/channels/{channel_id}/unread",
local_var_configuration.base_path,
user_id = super::urlencode(user_id),
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelUnreadError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get all the channels on a team for a user. ##### Permissions Logged in as the user, or have `edit_other_users` permission, and `view_team` permission for the team.
pub async fn get_channels_for_team_for_user(
configuration: &configuration::Configuration,
params: GetChannelsForTeamForUserParams,
) -> Result<Vec<crate::openapi::models::Channel>, Error<GetChannelsForTeamForUserError>> {
let local_var_configuration = configuration;
// unbox the parameters
let user_id = params.user_id;
let team_id = params.team_id;
let include_deleted = params.include_deleted;
let last_delete_at = params.last_delete_at;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/users/{user_id}/teams/{team_id}/channels",
local_var_configuration.base_path,
user_id = super::urlencode(user_id),
team_id = super::urlencode(team_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = include_deleted {
local_var_req_builder =
local_var_req_builder.query(&[("include_deleted", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = last_delete_at {
local_var_req_builder =
local_var_req_builder.query(&[("last_delete_at", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelsForTeamForUserError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get all channels from all teams that a user is a member of. __Minimum server version__: 6.1 ##### Permissions Logged in as the user, or have `edit_other_users` permission.
pub async fn get_channels_for_user(
configuration: &configuration::Configuration,
params: GetChannelsForUserParams,
) -> Result<Vec<crate::openapi::models::Channel>, Error<GetChannelsForUserError>> {
let local_var_configuration = configuration;
// unbox the parameters
let user_id = params.user_id;
let last_delete_at = params.last_delete_at;
let include_deleted = params.include_deleted;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/users/{user_id}/channels",
local_var_configuration.base_path,
user_id = super::urlencode(user_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = last_delete_at {
local_var_req_builder =
local_var_req_builder.query(&[("last_delete_at", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = include_deleted {
local_var_req_builder =
local_var_req_builder.query(&[("include_deleted", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetChannelsForUserError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get a page of deleted channels on a team based on query string parameters - team_id, page and per_page. __Minimum server version__: 3.10
pub async fn get_deleted_channels_for_team(
configuration: &configuration::Configuration,
params: GetDeletedChannelsForTeamParams,
) -> Result<Vec<crate::openapi::models::Channel>, Error<GetDeletedChannelsForTeamError>> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let page = params.page;
let per_page = params.per_page;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/teams/{team_id}/channels/deleted",
local_var_configuration.base_path,
team_id = super::urlencode(team_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = page {
local_var_req_builder =
local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = per_page {
local_var_req_builder =
local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetDeletedChannelsForTeamError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get a list of pinned posts for channel.
pub async fn get_pinned_posts(
configuration: &configuration::Configuration,
params: GetPinnedPostsParams,
) -> Result<crate::openapi::models::PostList, Error<GetPinnedPostsError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/pinned",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetPinnedPostsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get a page of private channels on a team based on query string parameters - team_id, page and per_page. __Minimum server version__: 5.26 ##### Permissions Must have `manage_system` permission.
pub async fn get_private_channels_for_team(
configuration: &configuration::Configuration,
params: GetPrivateChannelsForTeamParams,
) -> Result<Vec<crate::openapi::models::Channel>, Error<GetPrivateChannelsForTeamError>> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let page = params.page;
let per_page = params.per_page;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/teams/{team_id}/channels/private",
local_var_configuration.base_path,
team_id = super::urlencode(team_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = page {
local_var_req_builder =
local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = per_page {
local_var_req_builder =
local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetPrivateChannelsForTeamError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get a list of public channels on a team by id. ##### Permissions `view_team` for the team the channels are on.
pub async fn get_public_channels_by_ids_for_team(
configuration: &configuration::Configuration,
params: GetPublicChannelsByIdsForTeamParams,
) -> Result<Vec<crate::openapi::models::Channel>, Error<GetPublicChannelsByIdsForTeamError>> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let request_body = params.request_body;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/teams/{team_id}/channels/ids",
local_var_configuration.base_path,
team_id = super::urlencode(team_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&request_body);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetPublicChannelsByIdsForTeamError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get a page of public channels on a team based on query string parameters - page and per_page. ##### Permissions Must be authenticated and have the `list_team_channels` permission.
pub async fn get_public_channels_for_team(
configuration: &configuration::Configuration,
params: GetPublicChannelsForTeamParams,
) -> Result<Vec<crate::openapi::models::Channel>, Error<GetPublicChannelsForTeamError>> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let page = params.page;
let per_page = params.per_page;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/teams/{team_id}/channels",
local_var_configuration.base_path,
team_id = super::urlencode(team_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_str) = page {
local_var_req_builder =
local_var_req_builder.query(&[("page", &local_var_str.to_string())]);
}
if let Some(ref local_var_str) = per_page {
local_var_req_builder =
local_var_req_builder.query(&[("per_page", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetPublicChannelsForTeamError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get a list of sidebar categories that will appear in the user's sidebar on the given team, including a list of channel IDs in each category. __Minimum server version__: 5.26 ##### Permissions Must be authenticated and have the `list_team_channels` permission.
pub async fn get_sidebar_categories_for_team_for_user(
configuration: &configuration::Configuration,
params: GetSidebarCategoriesForTeamForUserParams,
) -> Result<
Vec<crate::openapi::models::OrderedSidebarCategories>,
Error<GetSidebarCategoriesForTeamForUserError>,
> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let user_id = params.user_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/users/{user_id}/teams/{team_id}/channels/categories",
local_var_configuration.base_path,
team_id = super::urlencode(team_id),
user_id = super::urlencode(user_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetSidebarCategoriesForTeamForUserError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Returns a single sidebar category for the user on the given team. __Minimum server version__: 5.26 ##### Permissions Must be authenticated and have the `list_team_channels` permission.
pub async fn get_sidebar_category_for_team_for_user(
configuration: &configuration::Configuration,
params: GetSidebarCategoryForTeamForUserParams,
) -> Result<crate::openapi::models::SidebarCategory, Error<GetSidebarCategoryForTeamForUserError>> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let user_id = params.user_id;
let category_id = params.category_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/users/{user_id}/teams/{team_id}/channels/categories/{category_id}",
local_var_configuration.base_path,
team_id = super::urlencode(team_id),
user_id = super::urlencode(user_id),
category_id = super::urlencode(category_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetSidebarCategoryForTeamForUserError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Returns the order of the sidebar categories for a user on the given team as an array of IDs. __Minimum server version__: 5.26 ##### Permissions Must be authenticated and have the `list_team_channels` permission.
pub async fn get_sidebar_category_order_for_team_for_user(
configuration: &configuration::Configuration,
params: GetSidebarCategoryOrderForTeamForUserParams,
) -> Result<Vec<String>, Error<GetSidebarCategoryOrderForTeamForUserError>> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let user_id = params.user_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/users/{user_id}/teams/{team_id}/channels/categories/order",
local_var_configuration.base_path,
team_id = super::urlencode(team_id),
user_id = super::urlencode(user_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::GET, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<GetSidebarCategoryOrderForTeamForUserError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Move a channel to another team. __Minimum server version__: 5.26 ##### Permissions Must have `manage_system` permission.
pub async fn move_channel(
configuration: &configuration::Configuration,
params: MoveChannelParams,
) -> Result<crate::openapi::models::Channel, Error<MoveChannelError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let move_channel_request = params.move_channel_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/move",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&move_channel_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<MoveChannelError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Partially update a channel by providing only the fields you want to update. Omitted fields will not be updated. The fields that can be updated are defined in the request body, all other provided fields will be ignored. ##### Permissions If updating a public channel, `manage_public_channel_members` permission is required. If updating a private channel, `manage_private_channel_members` permission is required.
pub async fn patch_channel(
configuration: &configuration::Configuration,
params: PatchChannelParams,
) -> Result<crate::openapi::models::Channel, Error<PatchChannelError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let patch_channel_request = params.patch_channel_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/patch",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&patch_channel_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<PatchChannelError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// ##### Permissions Must have `manage_system` permission. __Minimum server version__: 5.22
pub async fn patch_channel_moderations(
configuration: &configuration::Configuration,
params: PatchChannelModerationsParams,
) -> Result<Vec<crate::openapi::models::ChannelModeration>, Error<PatchChannelModerationsError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let channel_moderation_patch = params.channel_moderation_patch;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/moderations/patch",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&channel_moderation_patch);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<PatchChannelModerationsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Deletes a single sidebar category for the user on the given team. Only custom categories can be deleted. __Minimum server version__: 5.26 ##### Permissions Must be authenticated and have the `list_team_channels` permission.
pub async fn remove_sidebar_category_for_team_for_user(
configuration: &configuration::Configuration,
params: RemoveSidebarCategoryForTeamForUserParams,
) -> Result<crate::openapi::models::SidebarCategory, Error<RemoveSidebarCategoryForTeamForUserError>>
{
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let user_id = params.user_id;
let category_id = params.category_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/users/{user_id}/teams/{team_id}/channels/categories/{category_id}",
local_var_configuration.base_path,
team_id = super::urlencode(team_id),
user_id = super::urlencode(user_id),
category_id = super::urlencode(category_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<RemoveSidebarCategoryForTeamForUserError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Delete a channel member, effectively removing them from a channel. In server version 5.3 and later, channel members can only be deleted from public or private channels. ##### Permissions `manage_public_channel_members` permission if the channel is public. `manage_private_channel_members` permission if the channel is private.
pub async fn remove_user_from_channel(
configuration: &configuration::Configuration,
params: RemoveUserFromChannelParams,
) -> Result<crate::openapi::models::StatusOk, Error<RemoveUserFromChannelError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let user_id = params.user_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/members/{user_id}",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id),
user_id = super::urlencode(user_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::DELETE, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<RemoveUserFromChannelError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Restore channel from the provided channel id string. __Minimum server version__: 3.10 ##### Permissions `manage_team` permission for the team of the channel.
pub async fn restore_channel(
configuration: &configuration::Configuration,
params: RestoreChannelParams,
) -> Result<crate::openapi::models::Channel, Error<RestoreChannelError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/restore",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<RestoreChannelError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Returns all private and open type channels where 'term' matches on the name, display name, or purpose of the channel. Configured 'default' channels (ex Town Square and Off-Topic) can be excluded from the results with the `exclude_default_channels` boolean parameter. Channels that are associated (via GroupChannel records) to a given group can be excluded from the results with the `not_associated_to_group` parameter and a group id string.
pub async fn search_all_channels(
configuration: &configuration::Configuration,
params: SearchAllChannelsParams,
) -> Result<crate::openapi::models::SearchAllChannels200Response, Error<SearchAllChannelsError>> {
let local_var_configuration = configuration;
// unbox the parameters
let search_all_channels_request = params.search_all_channels_request;
let system_console = params.system_console;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/search",
local_var_configuration.base_path
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_str) = system_console {
local_var_req_builder =
local_var_req_builder.query(&[("system_console", &local_var_str.to_string())]);
}
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&search_all_channels_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<SearchAllChannelsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Search archived channels on a team based on the search term provided in the request body. __Minimum server version__: 5.18 ##### Permissions Must have the `list_team_channels` permission. In server version 5.18 and later, a user without the `list_team_channels` permission will be able to use this endpoint, with the search results limited to the channels that the user is a member of.
pub async fn search_archived_channels(
configuration: &configuration::Configuration,
params: SearchArchivedChannelsParams,
) -> Result<Vec<crate::openapi::models::Channel>, Error<SearchArchivedChannelsError>> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let search_archived_channels_request = params.search_archived_channels_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/teams/{team_id}/channels/search_archived",
local_var_configuration.base_path,
team_id = super::urlencode(team_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&search_archived_channels_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<SearchArchivedChannelsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Search public channels on a team based on the search term provided in the request body. ##### Permissions Must have the `list_team_channels` permission. In server version 5.16 and later, a user without the `list_team_channels` permission will be able to use this endpoint, with the search results limited to the channels that the user is a member of.
pub async fn search_channels(
configuration: &configuration::Configuration,
params: SearchChannelsParams,
) -> Result<Vec<crate::openapi::models::Channel>, Error<SearchChannelsError>> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let search_channels_request = params.search_channels_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/teams/{team_id}/channels/search",
local_var_configuration.base_path,
team_id = super::urlencode(team_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&search_channels_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<SearchChannelsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Get a list of group channels for a user which members' usernames match the search term. __Minimum server version__: 5.14
pub async fn search_group_channels(
configuration: &configuration::Configuration,
params: SearchGroupChannelsParams,
) -> Result<Vec<crate::openapi::models::Channel>, Error<SearchGroupChannelsError>> {
let local_var_configuration = configuration;
// unbox the parameters
let search_group_channels_request = params.search_group_channels_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/group/search",
local_var_configuration.base_path
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&search_group_channels_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<SearchGroupChannelsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Update a channel. The fields that can be updated are listed as parameters. Omitted fields will be treated as blanks. ##### Permissions If updating a public channel, `manage_public_channel_members` permission is required. If updating a private channel, `manage_private_channel_members` permission is required.
pub async fn update_channel(
configuration: &configuration::Configuration,
params: UpdateChannelParams,
) -> Result<crate::openapi::models::Channel, Error<UpdateChannelError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let update_channel_request = params.update_channel_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&update_channel_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<UpdateChannelError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Update a channel member's scheme_admin/scheme_user properties. Typically this should either be `scheme_admin=false, scheme_user=true` for ordinary channel member, or `scheme_admin=true, scheme_user=true` for a channel admin. __Minimum server version__: 5.0 ##### Permissions Must be authenticated and have the `manage_channel_roles` permission.
pub async fn update_channel_member_scheme_roles(
configuration: &configuration::Configuration,
params: UpdateChannelMemberSchemeRolesParams,
) -> Result<crate::openapi::models::StatusOk, Error<UpdateChannelMemberSchemeRolesError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let user_id = params.user_id;
let update_team_member_scheme_roles_request = params.update_team_member_scheme_roles_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/members/{user_id}/schemeRoles",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id),
user_id = super::urlencode(user_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&update_team_member_scheme_roles_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<UpdateChannelMemberSchemeRolesError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Update a user's notification properties for a channel. Only the provided fields are updated. ##### Permissions Must be logged in as the user or have `edit_other_users` permission.
pub async fn update_channel_notify_props(
configuration: &configuration::Configuration,
params: UpdateChannelNotifyPropsParams,
) -> Result<crate::openapi::models::StatusOk, Error<UpdateChannelNotifyPropsError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let user_id = params.user_id;
let channel_notify_props = params.channel_notify_props;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/members/{user_id}/notify_props",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id),
user_id = super::urlencode(user_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&channel_notify_props);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<UpdateChannelNotifyPropsError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Updates channel's privacy allowing changing a channel from Public to Private and back. __Minimum server version__: 5.16 ##### Permissions `manage_team` permission for the channels team on version < 5.28. `convert_public_channel_to_private` permission for the channel if updating privacy to 'P' on version >= 5.28. `convert_private_channel_to_public` permission for the channel if updating privacy to 'O' on version >= 5.28.
pub async fn update_channel_privacy(
configuration: &configuration::Configuration,
params: UpdateChannelPrivacyParams,
) -> Result<crate::openapi::models::Channel, Error<UpdateChannelPrivacyError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let update_channel_privacy_request = params.update_channel_privacy_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/privacy",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&update_channel_privacy_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<UpdateChannelPrivacyError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Update a user's roles for a channel. ##### Permissions Must have `manage_channel_roles` permission for the channel.
pub async fn update_channel_roles(
configuration: &configuration::Configuration,
params: UpdateChannelRolesParams,
) -> Result<crate::openapi::models::StatusOk, Error<UpdateChannelRolesError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let user_id = params.user_id;
let update_user_roles_request = params.update_user_roles_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/members/{user_id}/roles",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id),
user_id = super::urlencode(user_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&update_user_roles_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<UpdateChannelRolesError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Set a channel's scheme, more specifically sets the scheme_id value of a channel record. ##### Permissions Must have `manage_system` permission. __Minimum server version__: 4.10
pub async fn update_channel_scheme(
configuration: &configuration::Configuration,
params: UpdateChannelSchemeParams,
) -> Result<crate::openapi::models::StatusOk, Error<UpdateChannelSchemeError>> {
let local_var_configuration = configuration;
// unbox the parameters
let channel_id = params.channel_id;
let update_team_scheme_request = params.update_team_scheme_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/{channel_id}/scheme",
local_var_configuration.base_path,
channel_id = super::urlencode(channel_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&update_team_scheme_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<UpdateChannelSchemeError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Update any number of sidebar categories for the user on the given team. This can be used to reorder the channels in these categories. __Minimum server version__: 5.26 ##### Permissions Must be authenticated and have the `list_team_channels` permission.
pub async fn update_sidebar_categories_for_team_for_user(
configuration: &configuration::Configuration,
params: UpdateSidebarCategoriesForTeamForUserParams,
) -> Result<
crate::openapi::models::SidebarCategory,
Error<UpdateSidebarCategoriesForTeamForUserError>,
> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let user_id = params.user_id;
let sidebar_category = params.sidebar_category;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/users/{user_id}/teams/{team_id}/channels/categories",
local_var_configuration.base_path,
team_id = super::urlencode(team_id),
user_id = super::urlencode(user_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&sidebar_category);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<UpdateSidebarCategoriesForTeamForUserError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Updates a single sidebar category for the user on the given team. __Minimum server version__: 5.26 ##### Permissions Must be authenticated and have the `list_team_channels` permission.
pub async fn update_sidebar_category_for_team_for_user(
configuration: &configuration::Configuration,
params: UpdateSidebarCategoryForTeamForUserParams,
) -> Result<crate::openapi::models::SidebarCategory, Error<UpdateSidebarCategoryForTeamForUserError>>
{
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let user_id = params.user_id;
let category_id = params.category_id;
let sidebar_category = params.sidebar_category;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/users/{user_id}/teams/{team_id}/channels/categories/{category_id}",
local_var_configuration.base_path,
team_id = super::urlencode(team_id),
user_id = super::urlencode(user_id),
category_id = super::urlencode(category_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&sidebar_category);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<UpdateSidebarCategoryForTeamForUserError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Updates the order of the sidebar categories for a user on the given team. The provided array must include the IDs of all categories on the team. __Minimum server version__: 5.26 ##### Permissions Must be authenticated and have the `list_team_channels` permission.
pub async fn update_sidebar_category_order_for_team_for_user(
configuration: &configuration::Configuration,
params: UpdateSidebarCategoryOrderForTeamForUserParams,
) -> Result<Vec<String>, Error<UpdateSidebarCategoryOrderForTeamForUserError>> {
let local_var_configuration = configuration;
// unbox the parameters
let team_id = params.team_id;
let user_id = params.user_id;
let request_body = params.request_body;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/users/{user_id}/teams/{team_id}/channels/categories/order",
local_var_configuration.base_path,
team_id = super::urlencode(team_id),
user_id = super::urlencode(user_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::PUT, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&request_body);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<UpdateSidebarCategoryOrderForTeamForUserError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}
/// Perform all the actions involved in viewing a channel. This includes marking channels as read, clearing push notifications, and updating the active channel. ##### Permissions Must be logged in as user or have `edit_other_users` permission. __Response only includes `last_viewed_at_times` in Mattermost server 4.3 and newer.__
pub async fn view_channel(
configuration: &configuration::Configuration,
params: ViewChannelParams,
) -> Result<crate::openapi::models::ViewChannel200Response, Error<ViewChannelError>> {
let local_var_configuration = configuration;
// unbox the parameters
let user_id = params.user_id;
let view_channel_request = params.view_channel_request;
let local_var_client = &local_var_configuration.client;
let local_var_uri_str = format!(
"{}/api/v4/channels/members/{user_id}/view",
local_var_configuration.base_path,
user_id = super::urlencode(user_id)
);
let mut local_var_req_builder =
local_var_client.request(reqwest::Method::POST, local_var_uri_str.as_str());
if let Some(ref local_var_user_agent) = local_var_configuration.user_agent {
local_var_req_builder =
local_var_req_builder.header(reqwest::header::USER_AGENT, local_var_user_agent.clone());
}
if let Some(ref local_var_token) = local_var_configuration.bearer_access_token {
local_var_req_builder = local_var_req_builder.bearer_auth(local_var_token.to_owned());
};
local_var_req_builder = local_var_req_builder.json(&view_channel_request);
let local_var_req = local_var_req_builder.build()?;
let local_var_resp = local_var_client.execute(local_var_req).await?;
let local_var_status = local_var_resp.status();
let local_var_content = local_var_resp.text().await?;
if !local_var_status.is_client_error() && !local_var_status.is_server_error() {
serde_json::from_str(&local_var_content).map_err(Error::from)
} else {
let local_var_entity: Option<ViewChannelError> =
serde_json::from_str(&local_var_content).ok();
let local_var_error = ResponseContent {
status: local_var_status,
content: local_var_content,
entity: local_var_entity,
};
Err(Error::ResponseError(local_var_error))
}
}