1#![allow(unused_imports)]
4
5use crate::objects::*;
6use crate::{
7 CursorPaginated, NextCursor, ResponseMetadata, SlackApiMethod, SlackClient, SlackError,
8};
9use serde::{Deserialize, Serialize};
10
11#[doc(alias = "admin.inviteRequests.approve")]
15#[derive(Debug, Clone, PartialEq, Serialize)]
16#[non_exhaustive]
17pub struct AdminInviteRequestsApproveRequest {
18 pub invite_request_id: String,
20 #[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#[doc(alias = "admin.inviteRequests.approve")]
46#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
47pub struct AdminInviteRequestsApproveResponse {
48 #[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#[doc(alias = "admin.inviteRequests.approved.list")]
69#[derive(Debug, Clone, PartialEq, Serialize, Default)]
70#[non_exhaustive]
71pub struct AdminInviteRequestsApprovedListRequest {
72 #[serde(skip_serializing_if = "Option::is_none")]
74 pub team_id: Option<String>,
75 #[serde(skip_serializing_if = "Option::is_none")]
77 pub cursor: Option<String>,
78 #[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#[doc(alias = "admin.inviteRequests.approved.list")]
127#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
128pub struct AdminInviteRequestsApprovedListResponse {
129 #[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#[doc(alias = "admin.inviteRequests.denied.list")]
150#[derive(Debug, Clone, PartialEq, Serialize, Default)]
151#[non_exhaustive]
152pub struct AdminInviteRequestsDeniedListRequest {
153 #[serde(skip_serializing_if = "Option::is_none")]
155 pub team_id: Option<String>,
156 #[serde(skip_serializing_if = "Option::is_none")]
158 pub cursor: Option<String>,
159 #[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#[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#[doc(alias = "admin.inviteRequests.deny")]
322#[derive(Debug, Clone, PartialEq, Serialize)]
323#[non_exhaustive]
324pub struct AdminInviteRequestsDenyRequest {
325 pub invite_request_id: String,
327 #[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#[doc(alias = "admin.inviteRequests.deny")]
353#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
354pub struct AdminInviteRequestsDenyResponse {
355 #[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#[doc(alias = "admin.inviteRequests.list")]
376#[derive(Debug, Clone, PartialEq, Serialize, Default)]
377#[non_exhaustive]
378pub struct AdminInviteRequestsListRequest {
379 #[serde(skip_serializing_if = "Option::is_none")]
381 pub team_id: Option<String>,
382 #[serde(skip_serializing_if = "Option::is_none")]
384 pub cursor: Option<String>,
385 #[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#[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 #[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 #[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 #[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 #[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 #[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}