1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
use anyhow::Result;
use crate::Client;
pub struct AdminUsergroups {
pub client: Client,
}
impl AdminUsergroups {
#[doc(hidden)]
pub fn new(client: Client) -> Self {
AdminUsergroups { client }
}
/**
* This function performs a `POST` to the `/admin.usergroups.addChannels` endpoint.
*
* Add one or more default channels to an IDP group.
*
* FROM: <https://api.slack.com/methods/admin.usergroups.addChannels>
*
* **Parameters:**
*
* * `token: &str` -- Authentication token. Requires scope: `admin.usergroups:write`.
*/
pub async fn add_channels(&self) -> Result<crate::types::DndEndSchema> {
let url = "/admin.usergroups.addChannels".to_string();
self.client.post(&url, None).await
}
/**
* This function performs a `POST` to the `/admin.usergroups.addTeams` endpoint.
*
* Associate one or more default workspaces with an organization-wide IDP group.
*
* FROM: <https://api.slack.com/methods/admin.usergroups.addTeams>
*
* **Parameters:**
*
* * `token: &str` -- Authentication token. Requires scope: `admin.teams:write`.
*/
pub async fn add_teams(&self) -> Result<crate::types::DndEndSchema> {
let url = "/admin.usergroups.addTeams".to_string();
self.client.post(&url, None).await
}
/**
* This function performs a `GET` to the `/admin.usergroups.listChannels` endpoint.
*
* List the channels linked to an org-level IDP group (user group).
*
* FROM: <https://api.slack.com/methods/admin.usergroups.listChannels>
*
* **Parameters:**
*
* * `token: &str` -- Authentication token. Requires scope: `admin.usergroups:read`.
* * `usergroup_id: &str` -- ID of the IDP group to list default channels for.
* * `team_id: &str` -- ID of the the workspace.
* * `include_num_members: bool` -- Flag to include or exclude the count of members per channel.
*/
pub async fn list_channel(
&self,
usergroup_id: &str,
team_id: &str,
include_num_members: bool,
) -> Result<crate::types::DndEndSchema> {
let mut query_args: Vec<(String, String)> = Default::default();
if include_num_members {
query_args.push((
"include_num_members".to_string(),
include_num_members.to_string(),
));
}
if !team_id.is_empty() {
query_args.push(("team_id".to_string(), team_id.to_string()));
}
if !usergroup_id.is_empty() {
query_args.push(("usergroup_id".to_string(), usergroup_id.to_string()));
}
let query_ = serde_urlencoded::to_string(&query_args).unwrap();
let url = format!("/admin.usergroups.listChannels?{}", query_);
self.client.get(&url, None).await
}
/**
* This function performs a `POST` to the `/admin.usergroups.removeChannels` endpoint.
*
* Remove one or more default channels from an org-level IDP group (user group).
*
* FROM: <https://api.slack.com/methods/admin.usergroups.removeChannels>
*
* **Parameters:**
*
* * `token: &str` -- Authentication token. Requires scope: `admin.usergroups:write`.
*/
pub async fn remove_channels(&self) -> Result<crate::types::DndEndSchema> {
let url = "/admin.usergroups.removeChannels".to_string();
self.client.post(&url, None).await
}
}