#![allow(unused_imports)]
use crate::objects::*;
use crate::{
CursorPaginated, NextCursor, ResponseMetadata, SlackApiMethod, SlackClient, SlackError,
};
use serde::{Deserialize, Serialize};
#[doc(alias = "admin.users.assign")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersAssignRequest {
pub team_id: String,
pub user_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_restricted: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_ultra_restricted: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub channel_ids: Option<String>,
}
impl AdminUsersAssignRequest {
pub fn new(team_id: impl Into<String>, user_id: impl Into<String>) -> Self {
Self {
team_id: team_id.into(),
user_id: user_id.into(),
is_restricted: None,
is_ultra_restricted: None,
channel_ids: None,
}
}
pub fn is_restricted(mut self, is_restricted: bool) -> Self {
self.is_restricted = Some(is_restricted);
self
}
pub fn is_ultra_restricted(mut self, is_ultra_restricted: bool) -> Self {
self.is_ultra_restricted = Some(is_ultra_restricted);
self
}
pub fn channel_ids(mut self, channel_ids: impl Into<String>) -> Self {
self.channel_ids = Some(channel_ids.into());
self
}
}
impl SlackApiMethod for AdminUsersAssignRequest {
const METHOD: &'static str = "admin.users.assign";
type Response = AdminUsersAssignResponse;
}
#[doc(alias = "admin.users.assign")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersAssignResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.getExpiration")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersGetExpirationRequest {
pub user_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub target_team: Option<String>,
}
impl AdminUsersGetExpirationRequest {
pub fn new(user_id: impl Into<String>) -> Self {
Self {
user_id: user_id.into(),
target_team: None,
}
}
pub fn target_team(mut self, target_team: impl Into<String>) -> Self {
self.target_team = Some(target_team.into());
self
}
}
impl SlackApiMethod for AdminUsersGetExpirationRequest {
const METHOD: &'static str = "admin.users.getExpiration";
type Response = AdminUsersGetExpirationResponse;
}
#[doc(alias = "admin.users.getExpiration")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersGetExpirationResponse {
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub user: Option<AdminUsersGetExpirationResponseUser>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersGetExpirationResponseUser {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub email: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_bool",
skip_serializing_if = "Option::is_none"
)]
pub is_restricted: Option<bool>,
#[serde(
default,
deserialize_with = "crate::de::opt_bool",
skip_serializing_if = "Option::is_none"
)]
pub is_ultra_restricted: Option<bool>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub expiration_ts: Option<i64>,
}
#[doc(alias = "admin.users.invite")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersInviteRequest {
pub team_id: String,
pub email: String,
pub channel_ids: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub custom_message: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub real_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub resend: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_restricted: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_ultra_restricted: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub guest_expiration_ts: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub email_password_policy_enabled: Option<bool>,
}
impl AdminUsersInviteRequest {
pub fn new(
team_id: impl Into<String>,
email: impl Into<String>,
channel_ids: impl Into<String>,
) -> Self {
Self {
team_id: team_id.into(),
email: email.into(),
channel_ids: channel_ids.into(),
custom_message: None,
real_name: None,
resend: None,
is_restricted: None,
is_ultra_restricted: None,
guest_expiration_ts: None,
email_password_policy_enabled: None,
}
}
pub fn custom_message(mut self, custom_message: impl Into<String>) -> Self {
self.custom_message = Some(custom_message.into());
self
}
pub fn real_name(mut self, real_name: impl Into<String>) -> Self {
self.real_name = Some(real_name.into());
self
}
pub fn resend(mut self, resend: bool) -> Self {
self.resend = Some(resend);
self
}
pub fn is_restricted(mut self, is_restricted: bool) -> Self {
self.is_restricted = Some(is_restricted);
self
}
pub fn is_ultra_restricted(mut self, is_ultra_restricted: bool) -> Self {
self.is_ultra_restricted = Some(is_ultra_restricted);
self
}
pub fn guest_expiration_ts(mut self, guest_expiration_ts: impl Into<String>) -> Self {
self.guest_expiration_ts = Some(guest_expiration_ts.into());
self
}
pub fn email_password_policy_enabled(mut self, email_password_policy_enabled: bool) -> Self {
self.email_password_policy_enabled = Some(email_password_policy_enabled);
self
}
}
impl SlackApiMethod for AdminUsersInviteRequest {
const METHOD: &'static str = "admin.users.invite";
type Response = AdminUsersInviteResponse;
}
#[doc(alias = "admin.users.invite")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersInviteResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.list")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct AdminUsersListRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_deactivated_user_workspaces: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub only_guests: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_admins: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub include_owners: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
}
impl AdminUsersListRequest {
pub fn new() -> Self {
Self {
team_id: None,
cursor: None,
is_active: None,
include_deactivated_user_workspaces: None,
only_guests: None,
include_admins: None,
include_owners: None,
limit: None,
}
}
pub fn team_id(mut self, team_id: impl Into<String>) -> Self {
self.team_id = Some(team_id.into());
self
}
pub fn cursor(mut self, cursor: impl Into<String>) -> Self {
self.cursor = Some(cursor.into());
self
}
pub fn is_active(mut self, is_active: bool) -> Self {
self.is_active = Some(is_active);
self
}
pub fn include_deactivated_user_workspaces(
mut self,
include_deactivated_user_workspaces: bool,
) -> Self {
self.include_deactivated_user_workspaces = Some(include_deactivated_user_workspaces);
self
}
pub fn only_guests(mut self, only_guests: bool) -> Self {
self.only_guests = Some(only_guests);
self
}
pub fn include_admins(mut self, include_admins: bool) -> Self {
self.include_admins = Some(include_admins);
self
}
pub fn include_owners(mut self, include_owners: bool) -> Self {
self.include_owners = Some(include_owners);
self
}
pub fn limit(mut self, limit: i64) -> Self {
self.limit = Some(limit);
self
}
}
impl SlackApiMethod for AdminUsersListRequest {
const METHOD: &'static str = "admin.users.list";
type Response = AdminUsersListResponse;
}
impl CursorPaginated for AdminUsersListRequest {
fn set_cursor(&mut self, cursor: String) {
self.cursor = Some(cursor);
}
}
impl NextCursor for AdminUsersListResponse {
fn next_cursor(&self) -> Option<&str> {
self.response_metadata.as_ref()?.next_cursor.as_deref()
}
}
#[doc(alias = "admin.users.list")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersListResponse {
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub users: Vec<User>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.remove")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersRemoveRequest {
pub team_id: String,
pub user_id: String,
}
impl AdminUsersRemoveRequest {
pub fn new(team_id: impl Into<String>, user_id: impl Into<String>) -> Self {
Self {
team_id: team_id.into(),
user_id: user_id.into(),
}
}
}
impl SlackApiMethod for AdminUsersRemoveRequest {
const METHOD: &'static str = "admin.users.remove";
type Response = AdminUsersRemoveResponse;
}
#[doc(alias = "admin.users.remove")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersRemoveResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.session.clearSettings")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersSessionClearSettingsRequest {
#[serde(serialize_with = "crate::form::as_json")]
pub user_ids: Vec<String>,
}
impl AdminUsersSessionClearSettingsRequest {
pub fn new(user_ids: Vec<String>) -> Self {
Self { user_ids }
}
}
impl SlackApiMethod for AdminUsersSessionClearSettingsRequest {
const METHOD: &'static str = "admin.users.session.clearSettings";
type Response = AdminUsersSessionClearSettingsResponse;
}
#[doc(alias = "admin.users.session.clearSettings")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSessionClearSettingsResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.session.getSettings")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersSessionGetSettingsRequest {
#[serde(serialize_with = "crate::form::as_json")]
pub user_ids: Vec<String>,
}
impl AdminUsersSessionGetSettingsRequest {
pub fn new(user_ids: Vec<String>) -> Self {
Self { user_ids }
}
}
impl SlackApiMethod for AdminUsersSessionGetSettingsRequest {
const METHOD: &'static str = "admin.users.session.getSettings";
type Response = AdminUsersSessionGetSettingsResponse;
}
#[doc(alias = "admin.users.session.getSettings")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSessionGetSettingsResponse {
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub session_settings: Vec<AdminUsersSessionGetSettingsResponseSessionSettings>,
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub no_settings_applied: Vec<serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSessionGetSettingsResponseSessionSettings {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub user_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_bool",
skip_serializing_if = "Option::is_none"
)]
pub desktop_app_browser_quit: Option<bool>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub duration: Option<i64>,
}
#[doc(alias = "admin.users.session.invalidate")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersSessionInvalidateRequest {
pub user_id: String,
pub session_id: i64,
}
impl AdminUsersSessionInvalidateRequest {
pub fn new(user_id: impl Into<String>, session_id: i64) -> Self {
Self {
user_id: user_id.into(),
session_id,
}
}
}
impl SlackApiMethod for AdminUsersSessionInvalidateRequest {
const METHOD: &'static str = "admin.users.session.invalidate";
type Response = AdminUsersSessionInvalidateResponse;
}
#[doc(alias = "admin.users.session.invalidate")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSessionInvalidateResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.session.list")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct AdminUsersSessionListRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
}
impl AdminUsersSessionListRequest {
pub fn new() -> Self {
Self {
team_id: None,
user_id: None,
limit: None,
cursor: None,
}
}
pub fn team_id(mut self, team_id: impl Into<String>) -> Self {
self.team_id = Some(team_id.into());
self
}
pub fn user_id(mut self, user_id: impl Into<String>) -> Self {
self.user_id = Some(user_id.into());
self
}
pub fn limit(mut self, limit: i64) -> Self {
self.limit = Some(limit);
self
}
pub fn cursor(mut self, cursor: impl Into<String>) -> Self {
self.cursor = Some(cursor.into());
self
}
}
impl SlackApiMethod for AdminUsersSessionListRequest {
const METHOD: &'static str = "admin.users.session.list";
type Response = AdminUsersSessionListResponse;
}
impl CursorPaginated for AdminUsersSessionListRequest {
fn set_cursor(&mut self, cursor: String) {
self.cursor = Some(cursor);
}
}
impl NextCursor for AdminUsersSessionListResponse {
fn next_cursor(&self) -> Option<&str> {
self.response_metadata.as_ref()?.next_cursor.as_deref()
}
}
#[doc(alias = "admin.users.session.list")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSessionListResponse {
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub active_sessions: Vec<AdminUsersSessionListResponseActiveSessions>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSessionListResponseActiveSessions {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub user_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub team_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub session_id: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub recent: Option<AdminUsersSessionListResponseActiveSessionsRecent>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub created: Option<AdminUsersSessionListResponseActiveSessionsCreated>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSessionListResponseActiveSessionsRecent {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub device_hardware: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub os: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub os_version: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub slack_client_version: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub ip: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSessionListResponseActiveSessionsCreated {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub device_hardware: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub os: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub os_version: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub slack_client_version: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub ip: Option<String>,
}
#[doc(alias = "admin.users.session.reset")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersSessionResetRequest {
pub user_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub mobile_only: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub web_only: Option<bool>,
}
impl AdminUsersSessionResetRequest {
pub fn new(user_id: impl Into<String>) -> Self {
Self {
user_id: user_id.into(),
mobile_only: None,
web_only: None,
}
}
pub fn mobile_only(mut self, mobile_only: bool) -> Self {
self.mobile_only = Some(mobile_only);
self
}
pub fn web_only(mut self, web_only: bool) -> Self {
self.web_only = Some(web_only);
self
}
}
impl SlackApiMethod for AdminUsersSessionResetRequest {
const METHOD: &'static str = "admin.users.session.reset";
type Response = AdminUsersSessionResetResponse;
}
#[doc(alias = "admin.users.session.reset")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSessionResetResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.session.resetBulk")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersSessionResetBulkRequest {
#[serde(serialize_with = "crate::form::as_json")]
pub user_ids: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub mobile_only: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub web_only: Option<bool>,
}
impl AdminUsersSessionResetBulkRequest {
pub fn new(user_ids: Vec<String>) -> Self {
Self {
user_ids,
mobile_only: None,
web_only: None,
}
}
pub fn mobile_only(mut self, mobile_only: bool) -> Self {
self.mobile_only = Some(mobile_only);
self
}
pub fn web_only(mut self, web_only: bool) -> Self {
self.web_only = Some(web_only);
self
}
}
impl SlackApiMethod for AdminUsersSessionResetBulkRequest {
const METHOD: &'static str = "admin.users.session.resetBulk";
type Response = AdminUsersSessionResetBulkResponse;
}
#[doc(alias = "admin.users.session.resetBulk")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSessionResetBulkResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.session.setSettings")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersSessionSetSettingsRequest {
#[serde(serialize_with = "crate::form::as_json")]
pub user_ids: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub duration: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub desktop_app_browser_quit: Option<bool>,
}
impl AdminUsersSessionSetSettingsRequest {
pub fn new(user_ids: Vec<String>) -> Self {
Self {
user_ids,
duration: None,
desktop_app_browser_quit: None,
}
}
pub fn duration(mut self, duration: i64) -> Self {
self.duration = Some(duration);
self
}
pub fn desktop_app_browser_quit(mut self, desktop_app_browser_quit: bool) -> Self {
self.desktop_app_browser_quit = Some(desktop_app_browser_quit);
self
}
}
impl SlackApiMethod for AdminUsersSessionSetSettingsRequest {
const METHOD: &'static str = "admin.users.session.setSettings";
type Response = AdminUsersSessionSetSettingsResponse;
}
#[doc(alias = "admin.users.session.setSettings")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSessionSetSettingsResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.setAdmin")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersSetAdminRequest {
pub team_id: String,
pub user_id: String,
}
impl AdminUsersSetAdminRequest {
pub fn new(team_id: impl Into<String>, user_id: impl Into<String>) -> Self {
Self {
team_id: team_id.into(),
user_id: user_id.into(),
}
}
}
impl SlackApiMethod for AdminUsersSetAdminRequest {
const METHOD: &'static str = "admin.users.setAdmin";
type Response = AdminUsersSetAdminResponse;
}
#[doc(alias = "admin.users.setAdmin")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSetAdminResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.setExpiration")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersSetExpirationRequest {
pub user_id: String,
pub expiration_ts: i64,
#[serde(skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
}
impl AdminUsersSetExpirationRequest {
pub fn new(user_id: impl Into<String>, expiration_ts: i64) -> Self {
Self {
user_id: user_id.into(),
expiration_ts,
team_id: None,
}
}
pub fn team_id(mut self, team_id: impl Into<String>) -> Self {
self.team_id = Some(team_id.into());
self
}
}
impl SlackApiMethod for AdminUsersSetExpirationRequest {
const METHOD: &'static str = "admin.users.setExpiration";
type Response = AdminUsersSetExpirationResponse;
}
#[doc(alias = "admin.users.setExpiration")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSetExpirationResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.setOwner")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersSetOwnerRequest {
pub team_id: String,
pub user_id: String,
}
impl AdminUsersSetOwnerRequest {
pub fn new(team_id: impl Into<String>, user_id: impl Into<String>) -> Self {
Self {
team_id: team_id.into(),
user_id: user_id.into(),
}
}
}
impl SlackApiMethod for AdminUsersSetOwnerRequest {
const METHOD: &'static str = "admin.users.setOwner";
type Response = AdminUsersSetOwnerResponse;
}
#[doc(alias = "admin.users.setOwner")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSetOwnerResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.setRegular")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct AdminUsersSetRegularRequest {
pub team_id: String,
pub user_id: String,
}
impl AdminUsersSetRegularRequest {
pub fn new(team_id: impl Into<String>, user_id: impl Into<String>) -> Self {
Self {
team_id: team_id.into(),
user_id: user_id.into(),
}
}
}
impl SlackApiMethod for AdminUsersSetRegularRequest {
const METHOD: &'static str = "admin.users.setRegular";
type Response = AdminUsersSetRegularResponse;
}
#[doc(alias = "admin.users.setRegular")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersSetRegularResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
#[doc(alias = "admin.users.unsupportedVersions.export")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct AdminUsersUnsupportedVersionsExportRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub date_sessions_started: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub date_end_of_support: Option<i64>,
}
impl AdminUsersUnsupportedVersionsExportRequest {
pub fn new() -> Self {
Self {
date_sessions_started: None,
date_end_of_support: None,
}
}
pub fn date_sessions_started(mut self, date_sessions_started: i64) -> Self {
self.date_sessions_started = Some(date_sessions_started);
self
}
pub fn date_end_of_support(mut self, date_end_of_support: i64) -> Self {
self.date_end_of_support = Some(date_end_of_support);
self
}
}
impl SlackApiMethod for AdminUsersUnsupportedVersionsExportRequest {
const METHOD: &'static str = "admin.users.unsupportedVersions.export";
type Response = AdminUsersUnsupportedVersionsExportResponse;
}
#[doc(alias = "admin.users.unsupportedVersions.export")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct AdminUsersUnsupportedVersionsExportResponse {
#[serde(flatten)]
pub extra: serde_json::Map<String, serde_json::Value>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub response_metadata: Option<ResponseMetadata>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub warning: Option<String>,
}
impl SlackClient {
#[doc(alias = "admin.users.assign")]
pub async fn admin_users_assign(
&self,
request: &AdminUsersAssignRequest,
) -> Result<AdminUsersAssignResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.getExpiration")]
pub async fn admin_users_get_expiration(
&self,
request: &AdminUsersGetExpirationRequest,
) -> Result<AdminUsersGetExpirationResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.invite")]
pub async fn admin_users_invite(
&self,
request: &AdminUsersInviteRequest,
) -> Result<AdminUsersInviteResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.list")]
pub async fn admin_users_list(
&self,
request: &AdminUsersListRequest,
) -> Result<AdminUsersListResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.remove")]
pub async fn admin_users_remove(
&self,
request: &AdminUsersRemoveRequest,
) -> Result<AdminUsersRemoveResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.session.clearSettings")]
pub async fn admin_users_session_clear_settings(
&self,
request: &AdminUsersSessionClearSettingsRequest,
) -> Result<AdminUsersSessionClearSettingsResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.session.getSettings")]
pub async fn admin_users_session_get_settings(
&self,
request: &AdminUsersSessionGetSettingsRequest,
) -> Result<AdminUsersSessionGetSettingsResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.session.invalidate")]
pub async fn admin_users_session_invalidate(
&self,
request: &AdminUsersSessionInvalidateRequest,
) -> Result<AdminUsersSessionInvalidateResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.session.list")]
pub async fn admin_users_session_list(
&self,
request: &AdminUsersSessionListRequest,
) -> Result<AdminUsersSessionListResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.session.reset")]
pub async fn admin_users_session_reset(
&self,
request: &AdminUsersSessionResetRequest,
) -> Result<AdminUsersSessionResetResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.session.resetBulk")]
pub async fn admin_users_session_reset_bulk(
&self,
request: &AdminUsersSessionResetBulkRequest,
) -> Result<AdminUsersSessionResetBulkResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.session.setSettings")]
pub async fn admin_users_session_set_settings(
&self,
request: &AdminUsersSessionSetSettingsRequest,
) -> Result<AdminUsersSessionSetSettingsResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.setAdmin")]
pub async fn admin_users_set_admin(
&self,
request: &AdminUsersSetAdminRequest,
) -> Result<AdminUsersSetAdminResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.setExpiration")]
pub async fn admin_users_set_expiration(
&self,
request: &AdminUsersSetExpirationRequest,
) -> Result<AdminUsersSetExpirationResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.setOwner")]
pub async fn admin_users_set_owner(
&self,
request: &AdminUsersSetOwnerRequest,
) -> Result<AdminUsersSetOwnerResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.setRegular")]
pub async fn admin_users_set_regular(
&self,
request: &AdminUsersSetRegularRequest,
) -> Result<AdminUsersSetRegularResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "admin.users.unsupportedVersions.export")]
pub async fn admin_users_unsupported_versions_export(
&self,
request: &AdminUsersUnsupportedVersionsExportRequest,
) -> Result<AdminUsersUnsupportedVersionsExportResponse, SlackError> {
self.call(request).await
}
}