Skip to main content

slack_web_api/api/
admin_invite_requests.rs

1// このファイルは codegen/generate.py が生成する。手で編集しない
2
3#![allow(unused_imports)]
4
5use crate::objects::*;
6use crate::{
7    CursorPaginated, NextCursor, ResponseMetadata, SlackApiMethod, SlackClient, SlackError,
8};
9use serde::{Deserialize, Serialize};
10
11/// Arguments for the Slack Web API method [`admin.inviteRequests.approve`](https://docs.slack.dev/reference/methods/admin.inviteRequests.approve): Approve a workspace invite request.
12///
13/// Send it with [`SlackClient::admin_invite_requests_approve`].
14#[doc(alias = "admin.inviteRequests.approve")]
15#[derive(Debug, Clone, PartialEq, Serialize)]
16#[non_exhaustive]
17pub struct AdminInviteRequestsApproveRequest {
18    /// ID of the request to invite.
19    pub invite_request_id: String,
20    /// ID for the workspace where the invite request was made.
21    #[serde(skip_serializing_if = "Option::is_none")]
22    pub team_id: Option<String>,
23}
24
25impl AdminInviteRequestsApproveRequest {
26    pub fn new(invite_request_id: impl Into<String>) -> Self {
27        Self {
28            invite_request_id: invite_request_id.into(),
29            team_id: None,
30        }
31    }
32
33    pub fn team_id(mut self, team_id: impl Into<String>) -> Self {
34        self.team_id = Some(team_id.into());
35        self
36    }
37}
38
39impl SlackApiMethod for AdminInviteRequestsApproveRequest {
40    const METHOD: &'static str = "admin.inviteRequests.approve";
41    type Response = AdminInviteRequestsApproveResponse;
42}
43
44/// Successful response of the Slack Web API method [`admin.inviteRequests.approve`](https://docs.slack.dev/reference/methods/admin.inviteRequests.approve).
45#[doc(alias = "admin.inviteRequests.approve")]
46#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
47pub struct AdminInviteRequestsApproveResponse {
48    /// Fields returned by Slack. This method has no documented response example.
49    #[serde(flatten)]
50    pub extra: serde_json::Map<String, serde_json::Value>,
51    #[serde(
52        default,
53        deserialize_with = "crate::de::opt_object",
54        skip_serializing_if = "Option::is_none"
55    )]
56    pub response_metadata: Option<ResponseMetadata>,
57    #[serde(
58        default,
59        deserialize_with = "crate::de::opt_string",
60        skip_serializing_if = "Option::is_none"
61    )]
62    pub warning: Option<String>,
63}
64
65/// Arguments for the Slack Web API method [`admin.inviteRequests.approved.list`](https://docs.slack.dev/reference/methods/admin.inviteRequests.approved.list): List all approved workspace invite requests.
66///
67/// Send it with [`SlackClient::admin_invite_requests_approved_list`].
68#[doc(alias = "admin.inviteRequests.approved.list")]
69#[derive(Debug, Clone, PartialEq, Serialize, Default)]
70#[non_exhaustive]
71pub struct AdminInviteRequestsApprovedListRequest {
72    /// ID for the workspace where the invite requests were made.
73    #[serde(skip_serializing_if = "Option::is_none")]
74    pub team_id: Option<String>,
75    /// Value of the `next_cursor` field sent as part of the previous API response
76    #[serde(skip_serializing_if = "Option::is_none")]
77    pub cursor: Option<String>,
78    /// The number of results that will be returned by the API on each invocation. Must be between 1 - 1000, both inclusive
79    #[serde(skip_serializing_if = "Option::is_none")]
80    pub limit: Option<i64>,
81}
82
83impl AdminInviteRequestsApprovedListRequest {
84    pub fn new() -> Self {
85        Self {
86            team_id: None,
87            cursor: None,
88            limit: None,
89        }
90    }
91
92    pub fn team_id(mut self, team_id: impl Into<String>) -> Self {
93        self.team_id = Some(team_id.into());
94        self
95    }
96
97    pub fn cursor(mut self, cursor: impl Into<String>) -> Self {
98        self.cursor = Some(cursor.into());
99        self
100    }
101
102    pub fn limit(mut self, limit: i64) -> Self {
103        self.limit = Some(limit);
104        self
105    }
106}
107
108impl SlackApiMethod for AdminInviteRequestsApprovedListRequest {
109    const METHOD: &'static str = "admin.inviteRequests.approved.list";
110    type Response = AdminInviteRequestsApprovedListResponse;
111}
112
113impl CursorPaginated for AdminInviteRequestsApprovedListRequest {
114    fn set_cursor(&mut self, cursor: String) {
115        self.cursor = Some(cursor);
116    }
117}
118
119impl NextCursor for AdminInviteRequestsApprovedListResponse {
120    fn next_cursor(&self) -> Option<&str> {
121        self.response_metadata.as_ref()?.next_cursor.as_deref()
122    }
123}
124
125/// Successful response of the Slack Web API method [`admin.inviteRequests.approved.list`](https://docs.slack.dev/reference/methods/admin.inviteRequests.approved.list).
126#[doc(alias = "admin.inviteRequests.approved.list")]
127#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
128pub struct AdminInviteRequestsApprovedListResponse {
129    /// Fields returned by Slack. This method has no documented response example.
130    #[serde(flatten)]
131    pub extra: serde_json::Map<String, serde_json::Value>,
132    #[serde(
133        default,
134        deserialize_with = "crate::de::opt_object",
135        skip_serializing_if = "Option::is_none"
136    )]
137    pub response_metadata: Option<ResponseMetadata>,
138    #[serde(
139        default,
140        deserialize_with = "crate::de::opt_string",
141        skip_serializing_if = "Option::is_none"
142    )]
143    pub warning: Option<String>,
144}
145
146/// Arguments for the Slack Web API method [`admin.inviteRequests.denied.list`](https://docs.slack.dev/reference/methods/admin.inviteRequests.denied.list): List all denied workspace invite requests.
147///
148/// Send it with [`SlackClient::admin_invite_requests_denied_list`].
149#[doc(alias = "admin.inviteRequests.denied.list")]
150#[derive(Debug, Clone, PartialEq, Serialize, Default)]
151#[non_exhaustive]
152pub struct AdminInviteRequestsDeniedListRequest {
153    /// ID for the workspace where the invite requests were made
154    #[serde(skip_serializing_if = "Option::is_none")]
155    pub team_id: Option<String>,
156    /// Value of the `next_cursor` field sent as part of the previous api response
157    #[serde(skip_serializing_if = "Option::is_none")]
158    pub cursor: Option<String>,
159    /// The number of results that will be returned by the API on each invocation. Must be between 1 - 1000 both inclusive
160    #[serde(skip_serializing_if = "Option::is_none")]
161    pub limit: Option<i64>,
162}
163
164impl AdminInviteRequestsDeniedListRequest {
165    pub fn new() -> Self {
166        Self {
167            team_id: None,
168            cursor: None,
169            limit: None,
170        }
171    }
172
173    pub fn team_id(mut self, team_id: impl Into<String>) -> Self {
174        self.team_id = Some(team_id.into());
175        self
176    }
177
178    pub fn cursor(mut self, cursor: impl Into<String>) -> Self {
179        self.cursor = Some(cursor.into());
180        self
181    }
182
183    pub fn limit(mut self, limit: i64) -> Self {
184        self.limit = Some(limit);
185        self
186    }
187}
188
189impl SlackApiMethod for AdminInviteRequestsDeniedListRequest {
190    const METHOD: &'static str = "admin.inviteRequests.denied.list";
191    type Response = AdminInviteRequestsDeniedListResponse;
192}
193
194impl CursorPaginated for AdminInviteRequestsDeniedListRequest {
195    fn set_cursor(&mut self, cursor: String) {
196        self.cursor = Some(cursor);
197    }
198}
199
200impl NextCursor for AdminInviteRequestsDeniedListResponse {
201    fn next_cursor(&self) -> Option<&str> {
202        self.response_metadata.as_ref()?.next_cursor.as_deref()
203    }
204}
205
206/// Successful response of the Slack Web API method [`admin.inviteRequests.denied.list`](https://docs.slack.dev/reference/methods/admin.inviteRequests.denied.list).
207#[doc(alias = "admin.inviteRequests.denied.list")]
208#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
209pub struct AdminInviteRequestsDeniedListResponse {
210    #[serde(
211        default,
212        deserialize_with = "crate::de::vec",
213        skip_serializing_if = "Vec::is_empty"
214    )]
215    pub denied_requests: Vec<AdminInviteRequestsDeniedListResponseDeniedRequests>,
216    #[serde(
217        default,
218        deserialize_with = "crate::de::opt_object",
219        skip_serializing_if = "Option::is_none"
220    )]
221    pub response_metadata: Option<ResponseMetadata>,
222    #[serde(
223        default,
224        deserialize_with = "crate::de::opt_string",
225        skip_serializing_if = "Option::is_none"
226    )]
227    pub warning: Option<String>,
228}
229
230#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
231pub struct AdminInviteRequestsDeniedListResponseDeniedRequests {
232    #[serde(
233        default,
234        deserialize_with = "crate::de::opt_object",
235        skip_serializing_if = "Option::is_none"
236    )]
237    pub invite_request: Option<AdminInviteRequestsDeniedListResponseDeniedRequestsInviteRequest>,
238    #[serde(
239        default,
240        deserialize_with = "crate::de::opt_object",
241        skip_serializing_if = "Option::is_none"
242    )]
243    pub denied_by: Option<AdminInviteRequestsDeniedListResponseDeniedRequestsDeniedBy>,
244}
245
246#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
247pub struct AdminInviteRequestsDeniedListResponseDeniedRequestsInviteRequest {
248    #[serde(
249        default,
250        deserialize_with = "crate::de::opt_string",
251        skip_serializing_if = "Option::is_none"
252    )]
253    pub id: Option<String>,
254    #[serde(
255        default,
256        deserialize_with = "crate::de::opt_string",
257        skip_serializing_if = "Option::is_none"
258    )]
259    pub email: Option<String>,
260    #[serde(
261        default,
262        deserialize_with = "crate::de::opt_i64",
263        skip_serializing_if = "Option::is_none"
264    )]
265    pub date_created: Option<i64>,
266    #[serde(
267        default,
268        deserialize_with = "crate::de::vec",
269        skip_serializing_if = "Vec::is_empty"
270    )]
271    pub requester_ids: Vec<String>,
272    #[serde(
273        default,
274        deserialize_with = "crate::de::vec",
275        skip_serializing_if = "Vec::is_empty"
276    )]
277    pub channel_ids: Vec<String>,
278    #[serde(
279        default,
280        deserialize_with = "crate::de::opt_bool",
281        skip_serializing_if = "Option::is_none"
282    )]
283    pub is_restricted: Option<bool>,
284    #[serde(
285        default,
286        deserialize_with = "crate::de::opt_bool",
287        skip_serializing_if = "Option::is_none"
288    )]
289    pub is_ultra_restricted: Option<bool>,
290    #[serde(
291        default,
292        deserialize_with = "crate::de::opt_string",
293        skip_serializing_if = "Option::is_none"
294    )]
295    pub real_name: Option<String>,
296    #[serde(default, skip_serializing_if = "Option::is_none")]
297    pub date_expire: Option<serde_json::Value>,
298    #[serde(default, skip_serializing_if = "Option::is_none")]
299    pub request_reason: Option<serde_json::Value>,
300}
301
302#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
303pub struct AdminInviteRequestsDeniedListResponseDeniedRequestsDeniedBy {
304    #[serde(
305        default,
306        deserialize_with = "crate::de::opt_string",
307        skip_serializing_if = "Option::is_none"
308    )]
309    pub actor_type: Option<String>,
310    #[serde(
311        default,
312        deserialize_with = "crate::de::opt_string",
313        skip_serializing_if = "Option::is_none"
314    )]
315    pub actor_id: Option<String>,
316}
317
318/// Arguments for the Slack Web API method [`admin.inviteRequests.deny`](https://docs.slack.dev/reference/methods/admin.inviteRequests.deny): Deny a workspace invite request.
319///
320/// Send it with [`SlackClient::admin_invite_requests_deny`].
321#[doc(alias = "admin.inviteRequests.deny")]
322#[derive(Debug, Clone, PartialEq, Serialize)]
323#[non_exhaustive]
324pub struct AdminInviteRequestsDenyRequest {
325    /// ID of the request to invite.
326    pub invite_request_id: String,
327    /// ID for the workspace where the invite request was made.
328    #[serde(skip_serializing_if = "Option::is_none")]
329    pub team_id: Option<String>,
330}
331
332impl AdminInviteRequestsDenyRequest {
333    pub fn new(invite_request_id: impl Into<String>) -> Self {
334        Self {
335            invite_request_id: invite_request_id.into(),
336            team_id: None,
337        }
338    }
339
340    pub fn team_id(mut self, team_id: impl Into<String>) -> Self {
341        self.team_id = Some(team_id.into());
342        self
343    }
344}
345
346impl SlackApiMethod for AdminInviteRequestsDenyRequest {
347    const METHOD: &'static str = "admin.inviteRequests.deny";
348    type Response = AdminInviteRequestsDenyResponse;
349}
350
351/// Successful response of the Slack Web API method [`admin.inviteRequests.deny`](https://docs.slack.dev/reference/methods/admin.inviteRequests.deny).
352#[doc(alias = "admin.inviteRequests.deny")]
353#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
354pub struct AdminInviteRequestsDenyResponse {
355    /// Fields returned by Slack. This method has no documented response example.
356    #[serde(flatten)]
357    pub extra: serde_json::Map<String, serde_json::Value>,
358    #[serde(
359        default,
360        deserialize_with = "crate::de::opt_object",
361        skip_serializing_if = "Option::is_none"
362    )]
363    pub response_metadata: Option<ResponseMetadata>,
364    #[serde(
365        default,
366        deserialize_with = "crate::de::opt_string",
367        skip_serializing_if = "Option::is_none"
368    )]
369    pub warning: Option<String>,
370}
371
372/// Arguments for the Slack Web API method [`admin.inviteRequests.list`](https://docs.slack.dev/reference/methods/admin.inviteRequests.list): List all pending workspace invite requests.
373///
374/// Send it with [`SlackClient::admin_invite_requests_list`].
375#[doc(alias = "admin.inviteRequests.list")]
376#[derive(Debug, Clone, PartialEq, Serialize, Default)]
377#[non_exhaustive]
378pub struct AdminInviteRequestsListRequest {
379    /// ID for the workspace where the invite requests were made.
380    #[serde(skip_serializing_if = "Option::is_none")]
381    pub team_id: Option<String>,
382    /// Value of the `next_cursor` field sent as part of the previous API response
383    #[serde(skip_serializing_if = "Option::is_none")]
384    pub cursor: Option<String>,
385    /// The number of results that will be returned by the API on each invocation. Must be between 1 - 1000, both inclusive
386    #[serde(skip_serializing_if = "Option::is_none")]
387    pub limit: Option<i64>,
388}
389
390impl AdminInviteRequestsListRequest {
391    pub fn new() -> Self {
392        Self {
393            team_id: None,
394            cursor: None,
395            limit: None,
396        }
397    }
398
399    pub fn team_id(mut self, team_id: impl Into<String>) -> Self {
400        self.team_id = Some(team_id.into());
401        self
402    }
403
404    pub fn cursor(mut self, cursor: impl Into<String>) -> Self {
405        self.cursor = Some(cursor.into());
406        self
407    }
408
409    pub fn limit(mut self, limit: i64) -> Self {
410        self.limit = Some(limit);
411        self
412    }
413}
414
415impl SlackApiMethod for AdminInviteRequestsListRequest {
416    const METHOD: &'static str = "admin.inviteRequests.list";
417    type Response = AdminInviteRequestsListResponse;
418}
419
420impl CursorPaginated for AdminInviteRequestsListRequest {
421    fn set_cursor(&mut self, cursor: String) {
422        self.cursor = Some(cursor);
423    }
424}
425
426impl NextCursor for AdminInviteRequestsListResponse {
427    fn next_cursor(&self) -> Option<&str> {
428        self.response_metadata.as_ref()?.next_cursor.as_deref()
429    }
430}
431
432/// Successful response of the Slack Web API method [`admin.inviteRequests.list`](https://docs.slack.dev/reference/methods/admin.inviteRequests.list).
433#[doc(alias = "admin.inviteRequests.list")]
434#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
435pub struct AdminInviteRequestsListResponse {
436    #[serde(
437        default,
438        deserialize_with = "crate::de::vec",
439        skip_serializing_if = "Vec::is_empty"
440    )]
441    pub invite_requests: Vec<AdminInviteRequestsListResponseInviteRequests>,
442    #[serde(
443        default,
444        deserialize_with = "crate::de::opt_object",
445        skip_serializing_if = "Option::is_none"
446    )]
447    pub response_metadata: Option<ResponseMetadata>,
448    #[serde(
449        default,
450        deserialize_with = "crate::de::opt_string",
451        skip_serializing_if = "Option::is_none"
452    )]
453    pub warning: Option<String>,
454}
455
456#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
457pub struct AdminInviteRequestsListResponseInviteRequests {
458    #[serde(
459        default,
460        deserialize_with = "crate::de::opt_string",
461        skip_serializing_if = "Option::is_none"
462    )]
463    pub id: Option<String>,
464    #[serde(
465        default,
466        deserialize_with = "crate::de::opt_string",
467        skip_serializing_if = "Option::is_none"
468    )]
469    pub email: Option<String>,
470    #[serde(
471        default,
472        deserialize_with = "crate::de::opt_i64",
473        skip_serializing_if = "Option::is_none"
474    )]
475    pub date_created: Option<i64>,
476    #[serde(
477        default,
478        deserialize_with = "crate::de::vec",
479        skip_serializing_if = "Vec::is_empty"
480    )]
481    pub requester_ids: Vec<String>,
482    #[serde(
483        default,
484        deserialize_with = "crate::de::vec",
485        skip_serializing_if = "Vec::is_empty"
486    )]
487    pub channel_ids: Vec<String>,
488    #[serde(
489        default,
490        deserialize_with = "crate::de::opt_string",
491        skip_serializing_if = "Option::is_none"
492    )]
493    pub invite_type: Option<String>,
494    #[serde(default, skip_serializing_if = "Option::is_none")]
495    pub real_name: Option<serde_json::Value>,
496    #[serde(default, skip_serializing_if = "Option::is_none")]
497    pub date_expire: Option<serde_json::Value>,
498    #[serde(default, skip_serializing_if = "Option::is_none")]
499    pub request_reason: Option<serde_json::Value>,
500}
501
502impl SlackClient {
503    /// Calls the Slack Web API method [`admin.inviteRequests.approve`](https://docs.slack.dev/reference/methods/admin.inviteRequests.approve): Approve a workspace invite request.
504    ///
505    /// Required scopes:
506    ///
507    /// - user token: `admin.invites:write`
508    ///
509    /// Rate limit: Tier 2 (<https://docs.slack.dev/apis/web-api/rate-limits>).
510    ///
511    /// # Errors
512    ///
513    /// Returns [`SlackError::Api`] when Slack answers `"ok": false`; see [`SlackClient::call`] for the other cases.
514    #[doc(alias = "admin.inviteRequests.approve")]
515    pub async fn admin_invite_requests_approve(
516        &self,
517        request: &AdminInviteRequestsApproveRequest,
518    ) -> Result<AdminInviteRequestsApproveResponse, SlackError> {
519        self.call(request).await
520    }
521
522    /// Calls the Slack Web API method [`admin.inviteRequests.approved.list`](https://docs.slack.dev/reference/methods/admin.inviteRequests.approved.list): List all approved workspace invite requests.
523    ///
524    /// Required scopes:
525    ///
526    /// - user token: `admin.invites:read`
527    ///
528    /// Rate limit: Tier 2 (<https://docs.slack.dev/apis/web-api/rate-limits>).
529    ///
530    /// # Errors
531    ///
532    /// Returns [`SlackError::Api`] when Slack answers `"ok": false`; see [`SlackClient::call`] for the other cases.
533    #[doc(alias = "admin.inviteRequests.approved.list")]
534    pub async fn admin_invite_requests_approved_list(
535        &self,
536        request: &AdminInviteRequestsApprovedListRequest,
537    ) -> Result<AdminInviteRequestsApprovedListResponse, SlackError> {
538        self.call(request).await
539    }
540
541    /// Calls the Slack Web API method [`admin.inviteRequests.denied.list`](https://docs.slack.dev/reference/methods/admin.inviteRequests.denied.list): List all denied workspace invite requests.
542    ///
543    /// Required scopes:
544    ///
545    /// - user token: `admin.invites:read`
546    ///
547    /// Rate limit: Tier 2 (<https://docs.slack.dev/apis/web-api/rate-limits>).
548    ///
549    /// # Errors
550    ///
551    /// Returns [`SlackError::Api`] when Slack answers `"ok": false`; see [`SlackClient::call`] for the other cases.
552    #[doc(alias = "admin.inviteRequests.denied.list")]
553    pub async fn admin_invite_requests_denied_list(
554        &self,
555        request: &AdminInviteRequestsDeniedListRequest,
556    ) -> Result<AdminInviteRequestsDeniedListResponse, SlackError> {
557        self.call(request).await
558    }
559
560    /// Calls the Slack Web API method [`admin.inviteRequests.deny`](https://docs.slack.dev/reference/methods/admin.inviteRequests.deny): Deny a workspace invite request.
561    ///
562    /// Required scopes:
563    ///
564    /// - user token: `admin.invites:write`
565    ///
566    /// Rate limit: Tier 2 (<https://docs.slack.dev/apis/web-api/rate-limits>).
567    ///
568    /// # Errors
569    ///
570    /// Returns [`SlackError::Api`] when Slack answers `"ok": false`; see [`SlackClient::call`] for the other cases.
571    #[doc(alias = "admin.inviteRequests.deny")]
572    pub async fn admin_invite_requests_deny(
573        &self,
574        request: &AdminInviteRequestsDenyRequest,
575    ) -> Result<AdminInviteRequestsDenyResponse, SlackError> {
576        self.call(request).await
577    }
578
579    /// Calls the Slack Web API method [`admin.inviteRequests.list`](https://docs.slack.dev/reference/methods/admin.inviteRequests.list): List all pending workspace invite requests.
580    ///
581    /// Required scopes:
582    ///
583    /// - user token: `admin.invites:read`
584    ///
585    /// Rate limit: Tier 2 (<https://docs.slack.dev/apis/web-api/rate-limits>).
586    ///
587    /// # Errors
588    ///
589    /// Returns [`SlackError::Api`] when Slack answers `"ok": false`; see [`SlackClient::call`] for the other cases.
590    #[doc(alias = "admin.inviteRequests.list")]
591    pub async fn admin_invite_requests_list(
592        &self,
593        request: &AdminInviteRequestsListRequest,
594    ) -> Result<AdminInviteRequestsListResponse, SlackError> {
595        self.call(request).await
596    }
597}