asterisk_ari/apis/bridges/
params.rs

1use crate::apis::bridges::models;
2use crate::apis::params::{IfExists, TerminateOn};
3use derive_new::new;
4use derive_setters::Setters;
5use serde::Serialize;
6
7#[derive(Clone, Default, Debug, PartialEq, Serialize, new, Setters)]
8#[setters(prefix = "with_")]
9#[setters(into, strip_option)]
10pub struct CreateRequest {
11    /// Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single, sdp_label).
12    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
13    #[setters(rename = "with_type")]
14    #[new(default)]
15    r#type: Option<models::BridgeType>,
16
17    /// Unique ID to give to the bridge being created.
18    #[serde(rename = "bridgeId", skip_serializing_if = "Option::is_none")]
19    #[new(default)]
20    bridge_id: Option<String>,
21
22    /// Name to give to the bridge being created.
23    #[serde(rename = "bridgeId", skip_serializing_if = "Option::is_none")]
24    #[new(default)]
25    name: Option<String>,
26}
27
28#[derive(Clone, Default, Debug, PartialEq, Serialize, new, Setters)]
29#[setters(prefix = "with_")]
30#[setters(into, strip_option)]
31pub struct CreateWithIdRequest {
32    /// Unique ID to give to the bridge being created.
33    #[serde(skip_serializing)]
34    #[setters(skip)]
35    #[new(into)]
36    pub(crate) bridge_id: String,
37
38    /// Comma separated list of bridge type attributes (mixing, holding, dtmf_events, proxy_media, video_sfu, video_single, sdp_label).
39    #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
40    #[setters(rename = "with_type")]
41    #[new(default)]
42    r#type: Option<models::BridgeType>,
43
44    /// Name to give to the bridge being created.
45    #[serde(rename = "bridgeId", skip_serializing_if = "Option::is_none")]
46    #[new(default)]
47    name: Option<String>,
48}
49
50#[derive(Clone, Default, Debug, PartialEq, Serialize, new, Setters)]
51#[setters(prefix = "with_")]
52#[setters(into, strip_option)]
53pub struct AddChannelRequest {
54    /// Unique ID to give to the bridge being created.
55    #[serde(skip_serializing)]
56    #[setters(skip)]
57    #[new(into)]
58    pub(crate) bridge_id: String,
59
60    /// Ids of channels to add to bridge.
61    #[setters(skip)]
62    #[new(into)]
63    pub(crate) channel: String,
64
65    /// Channel's role in the bridge
66    #[serde(rename = "role", skip_serializing_if = "Option::is_none")]
67    #[new(default)]
68    role: Option<String>,
69
70    /// Absorb DTMF coming from this channel, preventing it to pass through to the bridge
71    #[serde(rename = "absorbDTMF", skip_serializing_if = "Option::is_none")]
72    #[new(default)]
73    absorb_dtmf: Option<bool>,
74
75    /// Mute audio from this channel, preventing it to pass through to the bridge.
76    #[serde(rename = "mute", skip_serializing_if = "Option::is_none")]
77    #[new(default)]
78    mute: Option<bool>,
79
80    /// Do not present the identity of the newly connected channel to other bridge members.
81    #[serde(
82        rename = "inhibitConnectedLineUpdates",
83        skip_serializing_if = "Option::is_none"
84    )]
85    #[new(default)]
86    inhibit_connected_line_updates: Option<bool>,
87}
88
89#[derive(Clone, Debug, Serialize, new, Setters)]
90#[setters(prefix = "with_")]
91#[setters(into, strip_option)]
92pub struct MohRequest {
93    /// Bridge's id
94    #[serde(skip_serializing)]
95    #[setters(skip)]
96    #[new(into)]
97    pub(crate) bridge_id: String,
98
99    /// Music on hold class to use.
100    #[serde(rename = "mohClass", skip_serializing_if = "Option::is_none")]
101    #[new(default)]
102    moh_class: Option<String>,
103}
104
105#[derive(Clone, Debug, Serialize, new, Setters)]
106#[setters(prefix = "with_")]
107#[setters(into, strip_option)]
108pub struct PlayRequest {
109    /// Bridge's id.
110    #[serde(skip_serializing)]
111    #[setters(skip)]
112    #[new(into)]
113    pub(crate) bridge_id: String,
114
115    /// Media URIs to play.
116    #[setters(skip)]
117    #[new(into)]
118    media: String,
119
120    /// For sounds, selects language for sound.
121    #[serde(rename = "lang", skip_serializing_if = "Option::is_none")]
122    #[new(default)]
123    lang: Option<String>,
124
125    /// Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.
126    #[serde(rename = "offsetms", skip_serializing_if = "Option::is_none")]
127    #[new(default)]
128    offset_ms: Option<u32>,
129
130    /// Number of milliseconds to skip for forward/reverse operations.
131    #[serde(rename = "skipms", skip_serializing_if = "Option::is_none")]
132    #[new(default)]
133    skip_ms: Option<u32>,
134}
135
136#[derive(Clone, Debug, Serialize, new, Setters)]
137#[setters(prefix = "with_")]
138#[setters(into, strip_option)]
139pub struct PlayWithIdRequest {
140    /// Bridge's id.
141    #[serde(skip_serializing)]
142    #[setters(skip)]
143    #[new(into)]
144    pub(crate) bridge_id: String,
145
146    /// Playback ID.
147    #[serde(skip_serializing)]
148    #[setters(skip)]
149    #[new(into)]
150    pub(crate) playback_id: String,
151
152    /// Media URIs to play.
153    #[setters(skip)]
154    #[new(into)]
155    pub(crate) media: String,
156
157    /// For sounds, selects language for sound.
158    #[serde(rename = "lang", skip_serializing_if = "Option::is_none")]
159    #[new(default)]
160    lang: Option<String>,
161
162    /// Number of milliseconds to skip before playing. Only applies to the first URI if multiple media URIs are specified.
163    #[serde(rename = "offsetms", skip_serializing_if = "Option::is_none")]
164    #[new(default)]
165    offset_ms: Option<u32>,
166
167    /// Number of milliseconds to skip for forward/reverse operations.
168    #[serde(rename = "skipms", skip_serializing_if = "Option::is_none")]
169    #[new(default)]
170    skip_ms: Option<u32>,
171}
172
173#[derive(Clone, Debug, Serialize, new, Setters)]
174#[setters(prefix = "with_")]
175#[setters(into, strip_option)]
176pub struct RecordRequest {
177    /// Bridge's id.
178    #[serde(skip_serializing)]
179    #[setters(skip)]
180    #[new(into)]
181    pub(crate) bridge_id: String,
182
183    /// Recording's filename
184    #[setters(skip)]
185    #[new(into)]
186    pub(crate) name: String,
187
188    /// Format to encode audio in
189    #[setters(skip)]
190    #[new(into)]
191    pub(crate) format: String,
192
193    /// Maximum duration of the recording, in seconds. 0 for no limit.
194    #[serde(rename = "maxDurationSeconds", skip_serializing_if = "Option::is_none")]
195    #[new(default)]
196    max_duration_seconds: Option<u32>,
197
198    /// Maximum duration of silence, in seconds. 0 for no limit.
199    #[serde(rename = "maxSilenceSeconds", skip_serializing_if = "Option::is_none")]
200    #[new(default)]
201    max_silence_seconds: Option<u32>,
202
203    /// Action to take if a recording with the same name already exists.
204    #[serde(rename = "ifExists", skip_serializing_if = "Option::is_none")]
205    #[new(default)]
206    if_exists: Option<IfExists>,
207
208    /// Play beep when recording begins.
209    #[serde(rename = "beep", skip_serializing_if = "Option::is_none")]
210    #[new(default)]
211    beep: Option<bool>,
212
213    /// DTMF input to terminate recording.
214    #[serde(rename = "terminateOn", skip_serializing_if = "Option::is_none")]
215    #[new(default)]
216    terminate_on: Option<TerminateOn>,
217}