#![allow(unused_imports)]
use crate::objects::*;
use crate::{
CursorPaginated, NextCursor, ResponseMetadata, SlackApiMethod, SlackClient, SlackError,
};
use serde::{Deserialize, Serialize};
#[doc(alias = "team.accessLogs")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct TeamAccessLogsRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub before: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub count: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
}
impl TeamAccessLogsRequest {
pub fn new() -> Self {
Self {
before: None,
count: None,
page: None,
cursor: None,
limit: None,
team_id: None,
}
}
pub fn before(mut self, before: impl Into<String>) -> Self {
self.before = Some(before.into());
self
}
pub fn count(mut self, count: impl Into<String>) -> Self {
self.count = Some(count.into());
self
}
pub fn page(mut self, page: impl Into<String>) -> Self {
self.page = Some(page.into());
self
}
pub fn cursor(mut self, cursor: impl Into<String>) -> Self {
self.cursor = Some(cursor.into());
self
}
pub fn limit(mut self, limit: i64) -> Self {
self.limit = Some(limit);
self
}
pub fn team_id(mut self, team_id: impl Into<String>) -> Self {
self.team_id = Some(team_id.into());
self
}
}
impl SlackApiMethod for TeamAccessLogsRequest {
const METHOD: &'static str = "team.accessLogs";
type Response = TeamAccessLogsResponse;
}
impl CursorPaginated for TeamAccessLogsRequest {
fn set_cursor(&mut self, cursor: String) {
self.cursor = Some(cursor);
}
}
impl NextCursor for TeamAccessLogsResponse {
fn next_cursor(&self) -> Option<&str> {
self.response_metadata.as_ref()?.next_cursor.as_deref()
}
}
#[doc(alias = "team.accessLogs")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamAccessLogsResponse {
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub logins: Vec<TeamAccessLogsResponseLogins>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub paging: Option<TeamAccessLogsResponsePaging>,
#[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 TeamAccessLogsResponseLogins {
#[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 username: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub date_first: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub date_last: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub count: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub ip: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub user_agent: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub isp: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub country: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub region: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamAccessLogsResponsePaging {
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub count: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub total: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub page: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub pages: Option<i64>,
}
#[doc(alias = "team.billableInfo")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct TeamBillableInfoRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
}
impl TeamBillableInfoRequest {
pub fn new() -> Self {
Self {
cursor: None,
limit: None,
user: None,
team_id: None,
}
}
pub fn cursor(mut self, cursor: impl Into<String>) -> Self {
self.cursor = Some(cursor.into());
self
}
pub fn limit(mut self, limit: i64) -> Self {
self.limit = Some(limit);
self
}
pub fn user(mut self, user: impl Into<String>) -> Self {
self.user = Some(user.into());
self
}
pub fn team_id(mut self, team_id: impl Into<String>) -> Self {
self.team_id = Some(team_id.into());
self
}
}
impl SlackApiMethod for TeamBillableInfoRequest {
const METHOD: &'static str = "team.billableInfo";
type Response = TeamBillableInfoResponse;
}
impl CursorPaginated for TeamBillableInfoRequest {
fn set_cursor(&mut self, cursor: String) {
self.cursor = Some(cursor);
}
}
impl NextCursor for TeamBillableInfoResponse {
fn next_cursor(&self) -> Option<&str> {
self.response_metadata.as_ref()?.next_cursor.as_deref()
}
}
#[doc(alias = "team.billableInfo")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamBillableInfoResponse {
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub billable_info:
Option<std::collections::HashMap<String, TeamBillableInfoResponseBillableInfoValue>>,
#[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 TeamBillableInfoResponseBillableInfoValue {
#[serde(
default,
deserialize_with = "crate::de::opt_bool",
skip_serializing_if = "Option::is_none"
)]
pub billing_active: Option<bool>,
}
#[doc(alias = "team.billing.info")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct TeamBillingInfoRequest {}
impl TeamBillingInfoRequest {
pub fn new() -> Self {
Self {}
}
}
impl SlackApiMethod for TeamBillingInfoRequest {
const METHOD: &'static str = "team.billing.info";
type Response = TeamBillingInfoResponse;
}
#[doc(alias = "team.billing.info")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamBillingInfoResponse {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub plan: Option<String>,
#[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 = "team.externalTeams.disconnect")]
#[derive(Debug, Clone, PartialEq, Serialize)]
#[non_exhaustive]
pub struct TeamExternalTeamsDisconnectRequest {
pub target_team: String,
}
impl TeamExternalTeamsDisconnectRequest {
pub fn new(target_team: impl Into<String>) -> Self {
Self {
target_team: target_team.into(),
}
}
}
impl SlackApiMethod for TeamExternalTeamsDisconnectRequest {
const METHOD: &'static str = "team.externalTeams.disconnect";
type Response = TeamExternalTeamsDisconnectResponse;
}
#[doc(alias = "team.externalTeams.disconnect")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamExternalTeamsDisconnectResponse {
#[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 = "team.externalTeams.list")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct TeamExternalTeamsListRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cursor: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sort_field: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sort_direction: Option<String>,
#[serde(
skip_serializing_if = "Option::is_none",
serialize_with = "crate::form::as_json"
)]
pub slack_connect_pref_filter: Option<Vec<serde_json::Value>>,
#[serde(
skip_serializing_if = "Option::is_none",
serialize_with = "crate::form::as_json"
)]
pub workspace_filter: Option<Vec<serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub connection_status_filter: Option<String>,
}
impl TeamExternalTeamsListRequest {
pub fn new() -> Self {
Self {
limit: None,
cursor: None,
sort_field: None,
sort_direction: None,
slack_connect_pref_filter: None,
workspace_filter: None,
connection_status_filter: None,
}
}
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
}
pub fn sort_field(mut self, sort_field: impl Into<String>) -> Self {
self.sort_field = Some(sort_field.into());
self
}
pub fn sort_direction(mut self, sort_direction: impl Into<String>) -> Self {
self.sort_direction = Some(sort_direction.into());
self
}
pub fn slack_connect_pref_filter(
mut self,
slack_connect_pref_filter: Vec<serde_json::Value>,
) -> Self {
self.slack_connect_pref_filter = Some(slack_connect_pref_filter);
self
}
pub fn workspace_filter(mut self, workspace_filter: Vec<serde_json::Value>) -> Self {
self.workspace_filter = Some(workspace_filter);
self
}
pub fn connection_status_filter(mut self, connection_status_filter: impl Into<String>) -> Self {
self.connection_status_filter = Some(connection_status_filter.into());
self
}
}
impl SlackApiMethod for TeamExternalTeamsListRequest {
const METHOD: &'static str = "team.externalTeams.list";
type Response = TeamExternalTeamsListResponse;
}
impl CursorPaginated for TeamExternalTeamsListRequest {
fn set_cursor(&mut self, cursor: String) {
self.cursor = Some(cursor);
}
}
impl NextCursor for TeamExternalTeamsListResponse {
fn next_cursor(&self) -> Option<&str> {
self.response_metadata.as_ref()?.next_cursor.as_deref()
}
}
#[doc(alias = "team.externalTeams.list")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamExternalTeamsListResponse {
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub organizations: Vec<TeamExternalTeamsListResponseOrganizations>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub total_count: Option<i64>,
#[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 TeamExternalTeamsListResponseOrganizations {
#[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_string",
skip_serializing_if = "Option::is_none"
)]
pub team_name: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub team_domain: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub public_channel_count: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub private_channel_count: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub im_channel_count: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub mpim_channel_count: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub connected_workspaces: Option<TeamExternalTeamsListResponseOrganizationsConnectedWorkspaces>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub slack_connect_prefs: Option<serde_json::Map<String, serde_json::Value>>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub connection_status: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub last_active_timestamp: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_bool",
skip_serializing_if = "Option::is_none"
)]
pub is_sponsored: Option<bool>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub canvas: Option<TeamExternalTeamsListResponseOrganizationsCanvas>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub lists: Option<TeamExternalTeamsListResponseOrganizationsLists>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamExternalTeamsListResponseOrganizationsConnectedWorkspaces {
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub workspace_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub workspace_name: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamExternalTeamsListResponseOrganizationsCanvas {
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub total_count: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub ownership_details: Vec<TeamExternalTeamsListResponseOrganizationsCanvasOwnershipDetails>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamExternalTeamsListResponseOrganizationsCanvasOwnershipDetails {
#[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 count: Option<i64>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamExternalTeamsListResponseOrganizationsLists {
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub total_count: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub ownership_details: Vec<TeamExternalTeamsListResponseOrganizationsListsOwnershipDetails>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamExternalTeamsListResponseOrganizationsListsOwnershipDetails {
#[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 count: Option<i64>,
}
#[doc(alias = "team.info")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct TeamInfoRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub domain: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub team: Option<String>,
}
impl TeamInfoRequest {
pub fn new() -> Self {
Self {
domain: None,
team: None,
}
}
pub fn domain(mut self, domain: impl Into<String>) -> Self {
self.domain = Some(domain.into());
self
}
pub fn team(mut self, team: impl Into<String>) -> Self {
self.team = Some(team.into());
self
}
}
impl SlackApiMethod for TeamInfoRequest {
const METHOD: &'static str = "team.info";
type Response = TeamInfoResponse;
}
#[doc(alias = "team.info")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamInfoResponse {
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub team: Option<Team>,
#[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 = "team.integrationLogs")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct TeamIntegrationLogsRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub app_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub change_type: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub count: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub service_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub team_id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub user: Option<String>,
}
impl TeamIntegrationLogsRequest {
pub fn new() -> Self {
Self {
app_id: None,
change_type: None,
count: None,
page: None,
service_id: None,
team_id: None,
user: None,
}
}
pub fn app_id(mut self, app_id: impl Into<String>) -> Self {
self.app_id = Some(app_id.into());
self
}
pub fn change_type(mut self, change_type: impl Into<String>) -> Self {
self.change_type = Some(change_type.into());
self
}
pub fn count(mut self, count: impl Into<String>) -> Self {
self.count = Some(count.into());
self
}
pub fn page(mut self, page: impl Into<String>) -> Self {
self.page = Some(page.into());
self
}
pub fn service_id(mut self, service_id: impl Into<String>) -> Self {
self.service_id = Some(service_id.into());
self
}
pub fn team_id(mut self, team_id: impl Into<String>) -> Self {
self.team_id = Some(team_id.into());
self
}
pub fn user(mut self, user: impl Into<String>) -> Self {
self.user = Some(user.into());
self
}
}
impl SlackApiMethod for TeamIntegrationLogsRequest {
const METHOD: &'static str = "team.integrationLogs";
type Response = TeamIntegrationLogsResponse;
}
#[doc(alias = "team.integrationLogs")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamIntegrationLogsResponse {
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub logs: Vec<TeamIntegrationLogsResponseLogs>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub paging: Option<TeamIntegrationLogsResponsePaging>,
#[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 TeamIntegrationLogsResponseLogs {
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub service_id: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub service_type: Option<String>,
#[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 user_name: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub channel: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub date: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub change_type: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub scope: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub app_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub app_type: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub reason: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamIntegrationLogsResponsePaging {
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub count: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub total: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub page: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub pages: Option<i64>,
}
#[doc(alias = "team.preferences.list")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct TeamPreferencesListRequest {}
impl TeamPreferencesListRequest {
pub fn new() -> Self {
Self {}
}
}
impl SlackApiMethod for TeamPreferencesListRequest {
const METHOD: &'static str = "team.preferences.list";
type Response = TeamPreferencesListResponse;
}
#[doc(alias = "team.preferences.list")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamPreferencesListResponse {
#[serde(
default,
deserialize_with = "crate::de::opt_bool",
skip_serializing_if = "Option::is_none"
)]
pub display_real_names: Option<bool>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub disable_file_uploads: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub msg_edit_window_mins: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub who_can_post_general: Option<String>,
#[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 = "team.profile.get")]
#[derive(Debug, Clone, PartialEq, Serialize, Default)]
#[non_exhaustive]
pub struct TeamProfileGetRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub visibility: Option<String>,
}
impl TeamProfileGetRequest {
pub fn new() -> Self {
Self { visibility: None }
}
pub fn visibility(mut self, visibility: impl Into<String>) -> Self {
self.visibility = Some(visibility.into());
self
}
}
impl SlackApiMethod for TeamProfileGetRequest {
const METHOD: &'static str = "team.profile.get";
type Response = TeamProfileGetResponse;
}
#[doc(alias = "team.profile.get")]
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamProfileGetResponse {
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub profile: Option<TeamProfileGetResponseProfile>,
#[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 TeamProfileGetResponseProfile {
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub fields: Vec<TeamProfileGetResponseProfileFields>,
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub sections: Vec<TeamProfileGetResponseProfileSections>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamProfileGetResponseProfileFields {
#[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_i64",
skip_serializing_if = "Option::is_none"
)]
pub ordering: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub label: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub hint: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub r#type: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::vec",
skip_serializing_if = "Vec::is_empty"
)]
pub possible_values: Vec<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_object",
skip_serializing_if = "Option::is_none"
)]
pub options: Option<TeamProfileGetResponseProfileFieldsOptions>,
#[serde(
default,
deserialize_with = "crate::de::opt_bool",
skip_serializing_if = "Option::is_none"
)]
pub is_hidden: Option<bool>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub section_id: Option<String>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamProfileGetResponseProfileFieldsOptions {
#[serde(
default,
deserialize_with = "crate::de::opt_bool",
skip_serializing_if = "Option::is_none"
)]
pub is_scim: Option<bool>,
#[serde(
default,
deserialize_with = "crate::de::opt_bool",
skip_serializing_if = "Option::is_none"
)]
pub is_protected: Option<bool>,
}
#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
pub struct TeamProfileGetResponseProfileSections {
#[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 team_id: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub section_type: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_string",
skip_serializing_if = "Option::is_none"
)]
pub label: Option<String>,
#[serde(
default,
deserialize_with = "crate::de::opt_i64",
skip_serializing_if = "Option::is_none"
)]
pub order: Option<i64>,
#[serde(
default,
deserialize_with = "crate::de::opt_bool",
skip_serializing_if = "Option::is_none"
)]
pub is_hidden: Option<bool>,
}
impl SlackClient {
#[doc(alias = "team.accessLogs")]
pub async fn team_access_logs(
&self,
request: &TeamAccessLogsRequest,
) -> Result<TeamAccessLogsResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "team.billableInfo")]
pub async fn team_billable_info(
&self,
request: &TeamBillableInfoRequest,
) -> Result<TeamBillableInfoResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "team.billing.info")]
pub async fn team_billing_info(
&self,
request: &TeamBillingInfoRequest,
) -> Result<TeamBillingInfoResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "team.externalTeams.disconnect")]
pub async fn team_external_teams_disconnect(
&self,
request: &TeamExternalTeamsDisconnectRequest,
) -> Result<TeamExternalTeamsDisconnectResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "team.externalTeams.list")]
pub async fn team_external_teams_list(
&self,
request: &TeamExternalTeamsListRequest,
) -> Result<TeamExternalTeamsListResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "team.info")]
pub async fn team_info(
&self,
request: &TeamInfoRequest,
) -> Result<TeamInfoResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "team.integrationLogs")]
pub async fn team_integration_logs(
&self,
request: &TeamIntegrationLogsRequest,
) -> Result<TeamIntegrationLogsResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "team.preferences.list")]
pub async fn team_preferences_list(
&self,
request: &TeamPreferencesListRequest,
) -> Result<TeamPreferencesListResponse, SlackError> {
self.call(request).await
}
#[doc(alias = "team.profile.get")]
pub async fn team_profile_get(
&self,
request: &TeamProfileGetRequest,
) -> Result<TeamProfileGetResponse, SlackError> {
self.call(request).await
}
}