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 = "functions.completeError")]
15#[derive(Debug, Clone, PartialEq, Serialize)]
16#[non_exhaustive]
17pub struct FunctionsCompleteErrorRequest {
18 pub function_execution_id: String,
20 pub error: String,
22}
23
24impl FunctionsCompleteErrorRequest {
25 pub fn new(function_execution_id: impl Into<String>, error: impl Into<String>) -> Self {
26 Self {
27 function_execution_id: function_execution_id.into(),
28 error: error.into(),
29 }
30 }
31}
32
33impl SlackApiMethod for FunctionsCompleteErrorRequest {
34 const METHOD: &'static str = "functions.completeError";
35 type Response = FunctionsCompleteErrorResponse;
36}
37
38#[doc(alias = "functions.completeError")]
40#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
41pub struct FunctionsCompleteErrorResponse {
42 #[serde(flatten)]
44 pub extra: serde_json::Map<String, serde_json::Value>,
45 #[serde(
46 default,
47 deserialize_with = "crate::de::opt_object",
48 skip_serializing_if = "Option::is_none"
49 )]
50 pub response_metadata: Option<ResponseMetadata>,
51 #[serde(
52 default,
53 deserialize_with = "crate::de::opt_string",
54 skip_serializing_if = "Option::is_none"
55 )]
56 pub warning: Option<String>,
57}
58
59#[doc(alias = "functions.completeSuccess")]
63#[derive(Debug, Clone, PartialEq, Serialize)]
64#[non_exhaustive]
65pub struct FunctionsCompleteSuccessRequest {
66 pub function_execution_id: String,
68 pub outputs: serde_json::Value,
70}
71
72impl FunctionsCompleteSuccessRequest {
73 pub fn new(function_execution_id: impl Into<String>, outputs: serde_json::Value) -> Self {
74 Self {
75 function_execution_id: function_execution_id.into(),
76 outputs,
77 }
78 }
79}
80
81impl SlackApiMethod for FunctionsCompleteSuccessRequest {
82 const METHOD: &'static str = "functions.completeSuccess";
83 type Response = FunctionsCompleteSuccessResponse;
84}
85
86#[doc(alias = "functions.completeSuccess")]
88#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
89pub struct FunctionsCompleteSuccessResponse {
90 #[serde(flatten)]
92 pub extra: serde_json::Map<String, serde_json::Value>,
93 #[serde(
94 default,
95 deserialize_with = "crate::de::opt_object",
96 skip_serializing_if = "Option::is_none"
97 )]
98 pub response_metadata: Option<ResponseMetadata>,
99 #[serde(
100 default,
101 deserialize_with = "crate::de::opt_string",
102 skip_serializing_if = "Option::is_none"
103 )]
104 pub warning: Option<String>,
105}
106
107#[doc(alias = "functions.distributions.permissions.add")]
111#[derive(Debug, Clone, PartialEq, Serialize, Default)]
112#[non_exhaustive]
113pub struct FunctionsDistributionsPermissionsAddRequest {
114 #[serde(skip_serializing_if = "Option::is_none")]
116 pub function_id: Option<String>,
117 #[serde(skip_serializing_if = "Option::is_none")]
119 pub function_callback_id: Option<String>,
120 #[serde(skip_serializing_if = "Option::is_none")]
122 pub function_app_id: Option<String>,
123 #[serde(skip_serializing_if = "Option::is_none")]
125 pub user_ids: Option<Vec<String>>,
126}
127
128impl FunctionsDistributionsPermissionsAddRequest {
129 pub fn new() -> Self {
130 Self {
131 function_id: None,
132 function_callback_id: None,
133 function_app_id: None,
134 user_ids: None,
135 }
136 }
137
138 pub fn function_id(mut self, function_id: impl Into<String>) -> Self {
139 self.function_id = Some(function_id.into());
140 self
141 }
142
143 pub fn function_callback_id(mut self, function_callback_id: impl Into<String>) -> Self {
144 self.function_callback_id = Some(function_callback_id.into());
145 self
146 }
147
148 pub fn function_app_id(mut self, function_app_id: impl Into<String>) -> Self {
149 self.function_app_id = Some(function_app_id.into());
150 self
151 }
152
153 pub fn user_ids(mut self, user_ids: Vec<String>) -> Self {
154 self.user_ids = Some(user_ids);
155 self
156 }
157}
158
159impl SlackApiMethod for FunctionsDistributionsPermissionsAddRequest {
160 const METHOD: &'static str = "functions.distributions.permissions.add";
161 type Response = FunctionsDistributionsPermissionsAddResponse;
162}
163
164#[doc(alias = "functions.distributions.permissions.add")]
166#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
167pub struct FunctionsDistributionsPermissionsAddResponse {
168 #[serde(
169 default,
170 deserialize_with = "crate::de::opt_string",
171 skip_serializing_if = "Option::is_none"
172 )]
173 pub permission_type: Option<String>,
174 #[serde(
175 default,
176 deserialize_with = "crate::de::vec",
177 skip_serializing_if = "Vec::is_empty"
178 )]
179 pub users: Vec<FunctionsDistributionsPermissionsAddResponseUsers>,
180 #[serde(
181 default,
182 deserialize_with = "crate::de::opt_object",
183 skip_serializing_if = "Option::is_none"
184 )]
185 pub response_metadata: Option<ResponseMetadata>,
186 #[serde(
187 default,
188 deserialize_with = "crate::de::opt_string",
189 skip_serializing_if = "Option::is_none"
190 )]
191 pub warning: Option<String>,
192}
193
194#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
195pub struct FunctionsDistributionsPermissionsAddResponseUsers {
196 #[serde(
197 default,
198 deserialize_with = "crate::de::opt_string",
199 skip_serializing_if = "Option::is_none"
200 )]
201 pub user_id: Option<String>,
202 #[serde(
203 default,
204 deserialize_with = "crate::de::opt_string",
205 skip_serializing_if = "Option::is_none"
206 )]
207 pub username: Option<String>,
208 #[serde(
209 default,
210 deserialize_with = "crate::de::opt_string",
211 skip_serializing_if = "Option::is_none"
212 )]
213 pub email: Option<String>,
214}
215
216#[doc(alias = "functions.distributions.permissions.list")]
220#[derive(Debug, Clone, PartialEq, Serialize, Default)]
221#[non_exhaustive]
222pub struct FunctionsDistributionsPermissionsListRequest {
223 #[serde(skip_serializing_if = "Option::is_none")]
225 pub function_id: Option<String>,
226 #[serde(skip_serializing_if = "Option::is_none")]
228 pub function_callback_id: Option<String>,
229 #[serde(skip_serializing_if = "Option::is_none")]
231 pub function_app_id: Option<String>,
232}
233
234impl FunctionsDistributionsPermissionsListRequest {
235 pub fn new() -> Self {
236 Self {
237 function_id: None,
238 function_callback_id: None,
239 function_app_id: None,
240 }
241 }
242
243 pub fn function_id(mut self, function_id: impl Into<String>) -> Self {
244 self.function_id = Some(function_id.into());
245 self
246 }
247
248 pub fn function_callback_id(mut self, function_callback_id: impl Into<String>) -> Self {
249 self.function_callback_id = Some(function_callback_id.into());
250 self
251 }
252
253 pub fn function_app_id(mut self, function_app_id: impl Into<String>) -> Self {
254 self.function_app_id = Some(function_app_id.into());
255 self
256 }
257}
258
259impl SlackApiMethod for FunctionsDistributionsPermissionsListRequest {
260 const METHOD: &'static str = "functions.distributions.permissions.list";
261 type Response = FunctionsDistributionsPermissionsListResponse;
262}
263
264#[doc(alias = "functions.distributions.permissions.list")]
266#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
267pub struct FunctionsDistributionsPermissionsListResponse {
268 #[serde(
269 default,
270 deserialize_with = "crate::de::opt_string",
271 skip_serializing_if = "Option::is_none"
272 )]
273 pub permission_type: Option<String>,
274 #[serde(
275 default,
276 deserialize_with = "crate::de::vec",
277 skip_serializing_if = "Vec::is_empty"
278 )]
279 pub users: Vec<FunctionsDistributionsPermissionsListResponseUsers>,
280 #[serde(
281 default,
282 deserialize_with = "crate::de::opt_object",
283 skip_serializing_if = "Option::is_none"
284 )]
285 pub response_metadata: Option<ResponseMetadata>,
286 #[serde(
287 default,
288 deserialize_with = "crate::de::opt_string",
289 skip_serializing_if = "Option::is_none"
290 )]
291 pub warning: Option<String>,
292}
293
294#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
295pub struct FunctionsDistributionsPermissionsListResponseUsers {
296 #[serde(
297 default,
298 deserialize_with = "crate::de::opt_string",
299 skip_serializing_if = "Option::is_none"
300 )]
301 pub user_id: Option<String>,
302 #[serde(
303 default,
304 deserialize_with = "crate::de::opt_string",
305 skip_serializing_if = "Option::is_none"
306 )]
307 pub username: Option<String>,
308 #[serde(
309 default,
310 deserialize_with = "crate::de::opt_string",
311 skip_serializing_if = "Option::is_none"
312 )]
313 pub email: Option<String>,
314}
315
316#[doc(alias = "functions.distributions.permissions.remove")]
320#[derive(Debug, Clone, PartialEq, Serialize, Default)]
321#[non_exhaustive]
322pub struct FunctionsDistributionsPermissionsRemoveRequest {
323 #[serde(skip_serializing_if = "Option::is_none")]
325 pub function_id: Option<String>,
326 #[serde(skip_serializing_if = "Option::is_none")]
328 pub function_callback_id: Option<String>,
329 #[serde(skip_serializing_if = "Option::is_none")]
331 pub function_app_id: Option<String>,
332 #[serde(skip_serializing_if = "Option::is_none")]
334 pub user_ids: Option<Vec<String>>,
335}
336
337impl FunctionsDistributionsPermissionsRemoveRequest {
338 pub fn new() -> Self {
339 Self {
340 function_id: None,
341 function_callback_id: None,
342 function_app_id: None,
343 user_ids: None,
344 }
345 }
346
347 pub fn function_id(mut self, function_id: impl Into<String>) -> Self {
348 self.function_id = Some(function_id.into());
349 self
350 }
351
352 pub fn function_callback_id(mut self, function_callback_id: impl Into<String>) -> Self {
353 self.function_callback_id = Some(function_callback_id.into());
354 self
355 }
356
357 pub fn function_app_id(mut self, function_app_id: impl Into<String>) -> Self {
358 self.function_app_id = Some(function_app_id.into());
359 self
360 }
361
362 pub fn user_ids(mut self, user_ids: Vec<String>) -> Self {
363 self.user_ids = Some(user_ids);
364 self
365 }
366}
367
368impl SlackApiMethod for FunctionsDistributionsPermissionsRemoveRequest {
369 const METHOD: &'static str = "functions.distributions.permissions.remove";
370 type Response = FunctionsDistributionsPermissionsRemoveResponse;
371}
372
373#[doc(alias = "functions.distributions.permissions.remove")]
375#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
376pub struct FunctionsDistributionsPermissionsRemoveResponse {
377 #[serde(
378 default,
379 deserialize_with = "crate::de::opt_string",
380 skip_serializing_if = "Option::is_none"
381 )]
382 pub permission_type: Option<String>,
383 #[serde(
384 default,
385 deserialize_with = "crate::de::vec",
386 skip_serializing_if = "Vec::is_empty"
387 )]
388 pub users: Vec<FunctionsDistributionsPermissionsRemoveResponseUsers>,
389 #[serde(
390 default,
391 deserialize_with = "crate::de::opt_object",
392 skip_serializing_if = "Option::is_none"
393 )]
394 pub response_metadata: Option<ResponseMetadata>,
395 #[serde(
396 default,
397 deserialize_with = "crate::de::opt_string",
398 skip_serializing_if = "Option::is_none"
399 )]
400 pub warning: Option<String>,
401}
402
403#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
404pub struct FunctionsDistributionsPermissionsRemoveResponseUsers {
405 #[serde(
406 default,
407 deserialize_with = "crate::de::opt_string",
408 skip_serializing_if = "Option::is_none"
409 )]
410 pub user_id: Option<String>,
411 #[serde(
412 default,
413 deserialize_with = "crate::de::opt_string",
414 skip_serializing_if = "Option::is_none"
415 )]
416 pub username: Option<String>,
417 #[serde(
418 default,
419 deserialize_with = "crate::de::opt_string",
420 skip_serializing_if = "Option::is_none"
421 )]
422 pub email: Option<String>,
423}
424
425#[doc(alias = "functions.distributions.permissions.set")]
429#[derive(Debug, Clone, PartialEq, Serialize, Default)]
430#[non_exhaustive]
431pub struct FunctionsDistributionsPermissionsSetRequest {
432 #[serde(skip_serializing_if = "Option::is_none")]
434 pub function_id: Option<String>,
435 #[serde(skip_serializing_if = "Option::is_none")]
437 pub function_callback_id: Option<String>,
438 #[serde(skip_serializing_if = "Option::is_none")]
440 pub function_app_id: Option<String>,
441 #[serde(skip_serializing_if = "Option::is_none")]
443 pub permission_type: Option<String>,
444 #[serde(skip_serializing_if = "Option::is_none")]
446 pub user_ids: Option<Vec<String>>,
447 #[serde(skip_serializing_if = "Option::is_none")]
449 pub team_ids: Option<Vec<String>>,
450 #[serde(skip_serializing_if = "Option::is_none")]
452 pub org_ids: Option<Vec<String>>,
453}
454
455impl FunctionsDistributionsPermissionsSetRequest {
456 pub fn new() -> Self {
457 Self {
458 function_id: None,
459 function_callback_id: None,
460 function_app_id: None,
461 permission_type: None,
462 user_ids: None,
463 team_ids: None,
464 org_ids: None,
465 }
466 }
467
468 pub fn function_id(mut self, function_id: impl Into<String>) -> Self {
469 self.function_id = Some(function_id.into());
470 self
471 }
472
473 pub fn function_callback_id(mut self, function_callback_id: impl Into<String>) -> Self {
474 self.function_callback_id = Some(function_callback_id.into());
475 self
476 }
477
478 pub fn function_app_id(mut self, function_app_id: impl Into<String>) -> Self {
479 self.function_app_id = Some(function_app_id.into());
480 self
481 }
482
483 pub fn permission_type(mut self, permission_type: impl Into<String>) -> Self {
484 self.permission_type = Some(permission_type.into());
485 self
486 }
487
488 pub fn user_ids(mut self, user_ids: Vec<String>) -> Self {
489 self.user_ids = Some(user_ids);
490 self
491 }
492
493 pub fn team_ids(mut self, team_ids: Vec<String>) -> Self {
494 self.team_ids = Some(team_ids);
495 self
496 }
497
498 pub fn org_ids(mut self, org_ids: Vec<String>) -> Self {
499 self.org_ids = Some(org_ids);
500 self
501 }
502}
503
504impl SlackApiMethod for FunctionsDistributionsPermissionsSetRequest {
505 const METHOD: &'static str = "functions.distributions.permissions.set";
506 type Response = FunctionsDistributionsPermissionsSetResponse;
507}
508
509#[doc(alias = "functions.distributions.permissions.set")]
511#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
512pub struct FunctionsDistributionsPermissionsSetResponse {
513 #[serde(
514 default,
515 deserialize_with = "crate::de::opt_string",
516 skip_serializing_if = "Option::is_none"
517 )]
518 pub permission_type: Option<String>,
519 #[serde(
520 default,
521 deserialize_with = "crate::de::vec",
522 skip_serializing_if = "Vec::is_empty"
523 )]
524 pub users: Vec<FunctionsDistributionsPermissionsSetResponseUsers>,
525 #[serde(
526 default,
527 deserialize_with = "crate::de::opt_object",
528 skip_serializing_if = "Option::is_none"
529 )]
530 pub response_metadata: Option<ResponseMetadata>,
531 #[serde(
532 default,
533 deserialize_with = "crate::de::opt_string",
534 skip_serializing_if = "Option::is_none"
535 )]
536 pub warning: Option<String>,
537}
538
539#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
540pub struct FunctionsDistributionsPermissionsSetResponseUsers {
541 #[serde(
542 default,
543 deserialize_with = "crate::de::opt_string",
544 skip_serializing_if = "Option::is_none"
545 )]
546 pub user_id: Option<String>,
547 #[serde(
548 default,
549 deserialize_with = "crate::de::opt_string",
550 skip_serializing_if = "Option::is_none"
551 )]
552 pub username: Option<String>,
553 #[serde(
554 default,
555 deserialize_with = "crate::de::opt_string",
556 skip_serializing_if = "Option::is_none"
557 )]
558 pub email: Option<String>,
559}
560
561#[doc(alias = "functions.workflows.steps.list")]
565#[derive(Debug, Clone, PartialEq, Serialize)]
566#[non_exhaustive]
567pub struct FunctionsWorkflowsStepsListRequest {
568 pub function_id: String,
570 #[serde(skip_serializing_if = "Option::is_none")]
572 pub workflow_id: Option<String>,
573 #[serde(skip_serializing_if = "Option::is_none")]
575 pub workflow: Option<String>,
576 #[serde(skip_serializing_if = "Option::is_none")]
578 pub workflow_app_id: Option<String>,
579}
580
581impl FunctionsWorkflowsStepsListRequest {
582 pub fn new(function_id: impl Into<String>) -> Self {
583 Self {
584 function_id: function_id.into(),
585 workflow_id: None,
586 workflow: None,
587 workflow_app_id: None,
588 }
589 }
590
591 pub fn workflow_id(mut self, workflow_id: impl Into<String>) -> Self {
592 self.workflow_id = Some(workflow_id.into());
593 self
594 }
595
596 pub fn workflow(mut self, workflow: impl Into<String>) -> Self {
597 self.workflow = Some(workflow.into());
598 self
599 }
600
601 pub fn workflow_app_id(mut self, workflow_app_id: impl Into<String>) -> Self {
602 self.workflow_app_id = Some(workflow_app_id.into());
603 self
604 }
605}
606
607impl SlackApiMethod for FunctionsWorkflowsStepsListRequest {
608 const METHOD: &'static str = "functions.workflows.steps.list";
609 type Response = FunctionsWorkflowsStepsListResponse;
610}
611
612#[doc(alias = "functions.workflows.steps.list")]
614#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
615pub struct FunctionsWorkflowsStepsListResponse {
616 #[serde(
617 default,
618 deserialize_with = "crate::de::vec",
619 skip_serializing_if = "Vec::is_empty"
620 )]
621 pub steps_versions: Vec<FunctionsWorkflowsStepsListResponseStepsVersions>,
622 #[serde(
623 default,
624 deserialize_with = "crate::de::opt_object",
625 skip_serializing_if = "Option::is_none"
626 )]
627 pub response_metadata: Option<ResponseMetadata>,
628 #[serde(
629 default,
630 deserialize_with = "crate::de::opt_string",
631 skip_serializing_if = "Option::is_none"
632 )]
633 pub warning: Option<String>,
634}
635
636#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
637pub struct FunctionsWorkflowsStepsListResponseStepsVersions {
638 #[serde(
639 default,
640 deserialize_with = "crate::de::opt_string",
641 skip_serializing_if = "Option::is_none"
642 )]
643 pub title: Option<String>,
644 #[serde(
645 default,
646 deserialize_with = "crate::de::opt_string",
647 skip_serializing_if = "Option::is_none"
648 )]
649 pub workflow_id: Option<String>,
650 #[serde(
651 default,
652 deserialize_with = "crate::de::opt_string",
653 skip_serializing_if = "Option::is_none"
654 )]
655 pub step_id: Option<String>,
656 #[serde(
657 default,
658 deserialize_with = "crate::de::opt_bool",
659 skip_serializing_if = "Option::is_none"
660 )]
661 pub is_deleted: Option<bool>,
662 #[serde(
663 default,
664 deserialize_with = "crate::de::opt_string",
665 skip_serializing_if = "Option::is_none"
666 )]
667 pub workflow_version_created: Option<String>,
668}
669
670#[doc(alias = "functions.workflows.steps.responses.export")]
674#[derive(Debug, Clone, PartialEq, Serialize)]
675#[non_exhaustive]
676pub struct FunctionsWorkflowsStepsResponsesExportRequest {
677 pub step_id: String,
679 #[serde(skip_serializing_if = "Option::is_none")]
681 pub workflow_id: Option<String>,
682 #[serde(skip_serializing_if = "Option::is_none")]
684 pub workflow: Option<String>,
685 #[serde(skip_serializing_if = "Option::is_none")]
687 pub workflow_app_id: Option<String>,
688}
689
690impl FunctionsWorkflowsStepsResponsesExportRequest {
691 pub fn new(step_id: impl Into<String>) -> Self {
692 Self {
693 step_id: step_id.into(),
694 workflow_id: None,
695 workflow: None,
696 workflow_app_id: None,
697 }
698 }
699
700 pub fn workflow_id(mut self, workflow_id: impl Into<String>) -> Self {
701 self.workflow_id = Some(workflow_id.into());
702 self
703 }
704
705 pub fn workflow(mut self, workflow: impl Into<String>) -> Self {
706 self.workflow = Some(workflow.into());
707 self
708 }
709
710 pub fn workflow_app_id(mut self, workflow_app_id: impl Into<String>) -> Self {
711 self.workflow_app_id = Some(workflow_app_id.into());
712 self
713 }
714}
715
716impl SlackApiMethod for FunctionsWorkflowsStepsResponsesExportRequest {
717 const METHOD: &'static str = "functions.workflows.steps.responses.export";
718 type Response = FunctionsWorkflowsStepsResponsesExportResponse;
719}
720
721#[doc(alias = "functions.workflows.steps.responses.export")]
723#[derive(Debug, Clone, Default, PartialEq, Serialize, Deserialize)]
724pub struct FunctionsWorkflowsStepsResponsesExportResponse {
725 #[serde(flatten)]
727 pub extra: serde_json::Map<String, serde_json::Value>,
728 #[serde(
729 default,
730 deserialize_with = "crate::de::opt_object",
731 skip_serializing_if = "Option::is_none"
732 )]
733 pub response_metadata: Option<ResponseMetadata>,
734 #[serde(
735 default,
736 deserialize_with = "crate::de::opt_string",
737 skip_serializing_if = "Option::is_none"
738 )]
739 pub warning: Option<String>,
740}
741
742impl SlackClient {
743 #[doc(alias = "functions.completeError")]
751 pub async fn functions_complete_error(
752 &self,
753 request: &FunctionsCompleteErrorRequest,
754 ) -> Result<FunctionsCompleteErrorResponse, SlackError> {
755 self.call(request).await
756 }
757
758 #[doc(alias = "functions.completeSuccess")]
766 pub async fn functions_complete_success(
767 &self,
768 request: &FunctionsCompleteSuccessRequest,
769 ) -> Result<FunctionsCompleteSuccessResponse, SlackError> {
770 self.call(request).await
771 }
772
773 #[doc(alias = "functions.distributions.permissions.add")]
781 pub async fn functions_distributions_permissions_add(
782 &self,
783 request: &FunctionsDistributionsPermissionsAddRequest,
784 ) -> Result<FunctionsDistributionsPermissionsAddResponse, SlackError> {
785 self.call(request).await
786 }
787
788 #[doc(alias = "functions.distributions.permissions.list")]
796 pub async fn functions_distributions_permissions_list(
797 &self,
798 request: &FunctionsDistributionsPermissionsListRequest,
799 ) -> Result<FunctionsDistributionsPermissionsListResponse, SlackError> {
800 self.call(request).await
801 }
802
803 #[doc(alias = "functions.distributions.permissions.remove")]
811 pub async fn functions_distributions_permissions_remove(
812 &self,
813 request: &FunctionsDistributionsPermissionsRemoveRequest,
814 ) -> Result<FunctionsDistributionsPermissionsRemoveResponse, SlackError> {
815 self.call(request).await
816 }
817
818 #[doc(alias = "functions.distributions.permissions.set")]
826 pub async fn functions_distributions_permissions_set(
827 &self,
828 request: &FunctionsDistributionsPermissionsSetRequest,
829 ) -> Result<FunctionsDistributionsPermissionsSetResponse, SlackError> {
830 self.call(request).await
831 }
832
833 #[doc(alias = "functions.workflows.steps.list")]
841 pub async fn functions_workflows_steps_list(
842 &self,
843 request: &FunctionsWorkflowsStepsListRequest,
844 ) -> Result<FunctionsWorkflowsStepsListResponse, SlackError> {
845 self.call(request).await
846 }
847
848 #[doc(alias = "functions.workflows.steps.responses.export")]
856 pub async fn functions_workflows_steps_responses_export(
857 &self,
858 request: &FunctionsWorkflowsStepsResponsesExportRequest,
859 ) -> Result<FunctionsWorkflowsStepsResponsesExportResponse, SlackError> {
860 self.call(request).await
861 }
862}