Skip to main content

onesignal_rust_api/apis/
default_api.rs

1/*
2 * OneSignal
3 *
4 * A powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com
5 *
6 * Contact: devrel@onesignal.com
7 * Generated by: https://openapi-generator.tech
8 */
9
10
11use reqwest;
12
13use crate::apis::ResponseContent;
14use super::{Error, configuration};
15
16
17/// struct for typed errors of method [`cancel_notification`]
18#[derive(Debug, Clone, Serialize, Deserialize)]
19#[serde(untagged)]
20pub enum CancelNotificationError {
21    Status400(crate::models::GenericError),
22    Status404(crate::models::GenericError),
23    Status429(crate::models::RateLimitError),
24    DefaultResponse(crate::models::GenericError),
25    UnknownValue(serde_json::Value),
26}
27
28/// struct for typed errors of method [`copy_template_to_app`]
29#[derive(Debug, Clone, Serialize, Deserialize)]
30#[serde(untagged)]
31pub enum CopyTemplateToAppError {
32    Status400(crate::models::GenericError),
33    DefaultResponse(crate::models::GenericError),
34    UnknownValue(serde_json::Value),
35}
36
37/// struct for typed errors of method [`create_alias`]
38#[derive(Debug, Clone, Serialize, Deserialize)]
39#[serde(untagged)]
40pub enum CreateAliasError {
41    Status400(crate::models::GenericError),
42    Status404(crate::models::GenericError),
43    Status409(crate::models::GenericError),
44    Status429(crate::models::RateLimitError),
45    DefaultResponse(crate::models::GenericError),
46    UnknownValue(serde_json::Value),
47}
48
49/// struct for typed errors of method [`create_alias_by_subscription`]
50#[derive(Debug, Clone, Serialize, Deserialize)]
51#[serde(untagged)]
52pub enum CreateAliasBySubscriptionError {
53    Status400(crate::models::GenericError),
54    Status404(crate::models::GenericError),
55    Status409(crate::models::GenericError),
56    Status429(crate::models::RateLimitError),
57    DefaultResponse(crate::models::GenericError),
58    UnknownValue(serde_json::Value),
59}
60
61/// struct for typed errors of method [`create_api_key`]
62#[derive(Debug, Clone, Serialize, Deserialize)]
63#[serde(untagged)]
64pub enum CreateApiKeyError {
65    Status400(crate::models::GenericError),
66    DefaultResponse(crate::models::GenericError),
67    UnknownValue(serde_json::Value),
68}
69
70/// struct for typed errors of method [`create_app`]
71#[derive(Debug, Clone, Serialize, Deserialize)]
72#[serde(untagged)]
73pub enum CreateAppError {
74    Status400(crate::models::GenericError),
75    Status429(crate::models::RateLimitError),
76    DefaultResponse(crate::models::GenericError),
77    UnknownValue(serde_json::Value),
78}
79
80/// struct for typed errors of method [`create_custom_events`]
81#[derive(Debug, Clone, Serialize, Deserialize)]
82#[serde(untagged)]
83pub enum CreateCustomEventsError {
84    Status400(crate::models::GenericError),
85    Status401(crate::models::GenericError),
86    Status429(crate::models::RateLimitError),
87    DefaultResponse(crate::models::GenericError),
88    UnknownValue(serde_json::Value),
89}
90
91/// struct for typed errors of method [`create_notification`]
92#[derive(Debug, Clone, Serialize, Deserialize)]
93#[serde(untagged)]
94pub enum CreateNotificationError {
95    Status400(crate::models::GenericError),
96    Status429(crate::models::RateLimitError),
97    DefaultResponse(crate::models::GenericError),
98    UnknownValue(serde_json::Value),
99}
100
101/// struct for typed errors of method [`create_segment`]
102#[derive(Debug, Clone, Serialize, Deserialize)]
103#[serde(untagged)]
104pub enum CreateSegmentError {
105    Status400(crate::models::GenericError),
106    Status409(crate::models::CreateSegmentConflictResponse),
107    Status429(crate::models::RateLimitError),
108    DefaultResponse(crate::models::GenericError),
109    UnknownValue(serde_json::Value),
110}
111
112/// struct for typed errors of method [`create_subscription`]
113#[derive(Debug, Clone, Serialize, Deserialize)]
114#[serde(untagged)]
115pub enum CreateSubscriptionError {
116    Status400(crate::models::GenericError),
117    Status404(crate::models::GenericError),
118    Status409(crate::models::GenericError),
119    Status429(crate::models::RateLimitError),
120    DefaultResponse(crate::models::GenericError),
121    UnknownValue(serde_json::Value),
122}
123
124/// struct for typed errors of method [`create_template`]
125#[derive(Debug, Clone, Serialize, Deserialize)]
126#[serde(untagged)]
127pub enum CreateTemplateError {
128    Status400(crate::models::GenericError),
129    Status422(crate::models::GenericError),
130    DefaultResponse(crate::models::GenericError),
131    UnknownValue(serde_json::Value),
132}
133
134/// struct for typed errors of method [`create_user`]
135#[derive(Debug, Clone, Serialize, Deserialize)]
136#[serde(untagged)]
137pub enum CreateUserError {
138    Status400(crate::models::GenericError),
139    Status409(crate::models::CreateUserConflictResponse),
140    Status429(crate::models::RateLimitError),
141    DefaultResponse(crate::models::GenericError),
142    UnknownValue(serde_json::Value),
143}
144
145/// struct for typed errors of method [`delete_alias`]
146#[derive(Debug, Clone, Serialize, Deserialize)]
147#[serde(untagged)]
148pub enum DeleteAliasError {
149    Status400(crate::models::GenericError),
150    Status404(crate::models::GenericError),
151    Status409(crate::models::GenericError),
152    Status429(crate::models::RateLimitError),
153    DefaultResponse(crate::models::GenericError),
154    UnknownValue(serde_json::Value),
155}
156
157/// struct for typed errors of method [`delete_api_key`]
158#[derive(Debug, Clone, Serialize, Deserialize)]
159#[serde(untagged)]
160pub enum DeleteApiKeyError {
161    Status400(crate::models::GenericError),
162    DefaultResponse(crate::models::GenericError),
163    UnknownValue(serde_json::Value),
164}
165
166/// struct for typed errors of method [`delete_segment`]
167#[derive(Debug, Clone, Serialize, Deserialize)]
168#[serde(untagged)]
169pub enum DeleteSegmentError {
170    Status400(crate::models::GenericError),
171    Status404(crate::models::GenericSuccessBoolResponse),
172    Status429(crate::models::RateLimitError),
173    DefaultResponse(crate::models::GenericError),
174    UnknownValue(serde_json::Value),
175}
176
177/// struct for typed errors of method [`delete_subscription`]
178#[derive(Debug, Clone, Serialize, Deserialize)]
179#[serde(untagged)]
180pub enum DeleteSubscriptionError {
181    Status400(crate::models::GenericError),
182    Status404(crate::models::GenericError),
183    Status409(crate::models::GenericError),
184    Status429(crate::models::RateLimitError),
185    DefaultResponse(crate::models::GenericError),
186    UnknownValue(serde_json::Value),
187}
188
189/// struct for typed errors of method [`delete_template`]
190#[derive(Debug, Clone, Serialize, Deserialize)]
191#[serde(untagged)]
192pub enum DeleteTemplateError {
193    Status400(crate::models::GenericError),
194    Status404(crate::models::GenericError),
195    DefaultResponse(crate::models::GenericError),
196    UnknownValue(serde_json::Value),
197}
198
199/// struct for typed errors of method [`delete_user`]
200#[derive(Debug, Clone, Serialize, Deserialize)]
201#[serde(untagged)]
202pub enum DeleteUserError {
203    Status400(crate::models::GenericError),
204    Status409(crate::models::GenericError),
205    Status429(crate::models::RateLimitError),
206    DefaultResponse(crate::models::GenericError),
207    UnknownValue(serde_json::Value),
208}
209
210/// struct for typed errors of method [`export_events`]
211#[derive(Debug, Clone, Serialize, Deserialize)]
212#[serde(untagged)]
213pub enum ExportEventsError {
214    Status400(crate::models::GenericError),
215    Status404(crate::models::GenericError),
216    Status429(crate::models::RateLimitError),
217    DefaultResponse(crate::models::GenericError),
218    UnknownValue(serde_json::Value),
219}
220
221/// struct for typed errors of method [`export_subscriptions`]
222#[derive(Debug, Clone, Serialize, Deserialize)]
223#[serde(untagged)]
224pub enum ExportSubscriptionsError {
225    Status400(crate::models::GenericError),
226    Status429(crate::models::RateLimitError),
227    DefaultResponse(crate::models::GenericError),
228    UnknownValue(serde_json::Value),
229}
230
231/// struct for typed errors of method [`get_aliases`]
232#[derive(Debug, Clone, Serialize, Deserialize)]
233#[serde(untagged)]
234pub enum GetAliasesError {
235    Status400(crate::models::GenericError),
236    Status404(crate::models::GenericError),
237    Status429(crate::models::RateLimitError),
238    DefaultResponse(crate::models::GenericError),
239    UnknownValue(serde_json::Value),
240}
241
242/// struct for typed errors of method [`get_aliases_by_subscription`]
243#[derive(Debug, Clone, Serialize, Deserialize)]
244#[serde(untagged)]
245pub enum GetAliasesBySubscriptionError {
246    Status400(crate::models::GenericError),
247    Status404(crate::models::GenericError),
248    DefaultResponse(crate::models::GenericError),
249    UnknownValue(serde_json::Value),
250}
251
252/// struct for typed errors of method [`get_app`]
253#[derive(Debug, Clone, Serialize, Deserialize)]
254#[serde(untagged)]
255pub enum GetAppError {
256    Status400(crate::models::GenericError),
257    Status429(crate::models::RateLimitError),
258    DefaultResponse(crate::models::GenericError),
259    UnknownValue(serde_json::Value),
260}
261
262/// struct for typed errors of method [`get_apps`]
263#[derive(Debug, Clone, Serialize, Deserialize)]
264#[serde(untagged)]
265pub enum GetAppsError {
266    Status400(crate::models::GenericError),
267    Status429(crate::models::RateLimitError),
268    DefaultResponse(crate::models::GenericError),
269    UnknownValue(serde_json::Value),
270}
271
272/// struct for typed errors of method [`get_notification`]
273#[derive(Debug, Clone, Serialize, Deserialize)]
274#[serde(untagged)]
275pub enum GetNotificationError {
276    Status400(crate::models::GenericError),
277    Status404(crate::models::GenericError),
278    Status429(crate::models::RateLimitError),
279    DefaultResponse(crate::models::GenericError),
280    UnknownValue(serde_json::Value),
281}
282
283/// struct for typed errors of method [`get_notification_history`]
284#[derive(Debug, Clone, Serialize, Deserialize)]
285#[serde(untagged)]
286pub enum GetNotificationHistoryError {
287    Status400(crate::models::GenericError),
288    Status404(crate::models::GenericError),
289    Status429(crate::models::RateLimitError),
290    DefaultResponse(crate::models::GenericError),
291    UnknownValue(serde_json::Value),
292}
293
294/// struct for typed errors of method [`get_notifications`]
295#[derive(Debug, Clone, Serialize, Deserialize)]
296#[serde(untagged)]
297pub enum GetNotificationsError {
298    Status400(crate::models::GenericError),
299    Status429(crate::models::RateLimitError),
300    DefaultResponse(crate::models::GenericError),
301    UnknownValue(serde_json::Value),
302}
303
304/// struct for typed errors of method [`get_outcomes`]
305#[derive(Debug, Clone, Serialize, Deserialize)]
306#[serde(untagged)]
307pub enum GetOutcomesError {
308    Status400(crate::models::GenericError),
309    Status429(crate::models::RateLimitError),
310    DefaultResponse(crate::models::GenericError),
311    UnknownValue(serde_json::Value),
312}
313
314/// struct for typed errors of method [`get_segment`]
315#[derive(Debug, Clone, Serialize, Deserialize)]
316#[serde(untagged)]
317pub enum GetSegmentError {
318    Status400(crate::models::GenericError),
319    Status404(crate::models::GenericError),
320    Status429(crate::models::RateLimitError),
321    DefaultResponse(crate::models::GenericError),
322    UnknownValue(serde_json::Value),
323}
324
325/// struct for typed errors of method [`get_segments`]
326#[derive(Debug, Clone, Serialize, Deserialize)]
327#[serde(untagged)]
328pub enum GetSegmentsError {
329    Status400(crate::models::GenericError),
330    Status429(crate::models::RateLimitError),
331    DefaultResponse(crate::models::GenericError),
332    UnknownValue(serde_json::Value),
333}
334
335/// struct for typed errors of method [`get_user`]
336#[derive(Debug, Clone, Serialize, Deserialize)]
337#[serde(untagged)]
338pub enum GetUserError {
339    Status400(crate::models::GenericError),
340    Status404(crate::models::GenericError),
341    Status429(crate::models::RateLimitError),
342    DefaultResponse(crate::models::GenericError),
343    UnknownValue(serde_json::Value),
344}
345
346/// struct for typed errors of method [`list_audit_logs`]
347#[derive(Debug, Clone, Serialize, Deserialize)]
348#[serde(untagged)]
349pub enum ListAuditLogsError {
350    Status400(crate::models::GenericError),
351    Status403(crate::models::GenericError),
352    Status404(crate::models::GenericError),
353    Status429(crate::models::RateLimitError),
354    DefaultResponse(crate::models::GenericError),
355    UnknownValue(serde_json::Value),
356}
357
358/// struct for typed errors of method [`rotate_api_key`]
359#[derive(Debug, Clone, Serialize, Deserialize)]
360#[serde(untagged)]
361pub enum RotateApiKeyError {
362    Status400(crate::models::GenericError),
363    DefaultResponse(crate::models::GenericError),
364    UnknownValue(serde_json::Value),
365}
366
367/// struct for typed errors of method [`start_live_activity`]
368#[derive(Debug, Clone, Serialize, Deserialize)]
369#[serde(untagged)]
370pub enum StartLiveActivityError {
371    Status400(crate::models::GenericError),
372    Status429(crate::models::RateLimitError),
373    DefaultResponse(crate::models::GenericError),
374    UnknownValue(serde_json::Value),
375}
376
377/// struct for typed errors of method [`transfer_subscription`]
378#[derive(Debug, Clone, Serialize, Deserialize)]
379#[serde(untagged)]
380pub enum TransferSubscriptionError {
381    Status400(crate::models::GenericError),
382    Status404(crate::models::GenericError),
383    Status409(crate::models::GenericError),
384    Status429(crate::models::RateLimitError),
385    DefaultResponse(crate::models::GenericError),
386    UnknownValue(serde_json::Value),
387}
388
389/// struct for typed errors of method [`unsubscribe_email_with_token`]
390#[derive(Debug, Clone, Serialize, Deserialize)]
391#[serde(untagged)]
392pub enum UnsubscribeEmailWithTokenError {
393    Status400(crate::models::GenericError),
394    Status429(crate::models::RateLimitError),
395    DefaultResponse(crate::models::GenericError),
396    UnknownValue(serde_json::Value),
397}
398
399/// struct for typed errors of method [`update_api_key`]
400#[derive(Debug, Clone, Serialize, Deserialize)]
401#[serde(untagged)]
402pub enum UpdateApiKeyError {
403    Status400(crate::models::GenericError),
404    DefaultResponse(crate::models::GenericError),
405    UnknownValue(serde_json::Value),
406}
407
408/// struct for typed errors of method [`update_app`]
409#[derive(Debug, Clone, Serialize, Deserialize)]
410#[serde(untagged)]
411pub enum UpdateAppError {
412    Status400(crate::models::GenericError),
413    Status429(crate::models::RateLimitError),
414    DefaultResponse(crate::models::GenericError),
415    UnknownValue(serde_json::Value),
416}
417
418/// struct for typed errors of method [`update_live_activity`]
419#[derive(Debug, Clone, Serialize, Deserialize)]
420#[serde(untagged)]
421pub enum UpdateLiveActivityError {
422    Status400(crate::models::GenericError),
423    Status429(crate::models::RateLimitError),
424    DefaultResponse(crate::models::GenericError),
425    UnknownValue(serde_json::Value),
426}
427
428/// struct for typed errors of method [`update_segment`]
429#[derive(Debug, Clone, Serialize, Deserialize)]
430#[serde(untagged)]
431pub enum UpdateSegmentError {
432    Status400(crate::models::GenericError),
433    Status403(crate::models::GenericError),
434    Status404(crate::models::GenericError),
435    Status429(crate::models::RateLimitError),
436    DefaultResponse(crate::models::GenericError),
437    UnknownValue(serde_json::Value),
438}
439
440/// struct for typed errors of method [`update_subscription`]
441#[derive(Debug, Clone, Serialize, Deserialize)]
442#[serde(untagged)]
443pub enum UpdateSubscriptionError {
444    Status400(crate::models::GenericError),
445    Status404(crate::models::GenericError),
446    Status409(crate::models::GenericError),
447    Status429(crate::models::RateLimitError),
448    DefaultResponse(crate::models::GenericError),
449    UnknownValue(serde_json::Value),
450}
451
452/// struct for typed errors of method [`update_subscription_by_token`]
453#[derive(Debug, Clone, Serialize, Deserialize)]
454#[serde(untagged)]
455pub enum UpdateSubscriptionByTokenError {
456    Status400(crate::models::GenericError),
457    Status404(crate::models::GenericError),
458    DefaultResponse(crate::models::GenericError),
459    UnknownValue(serde_json::Value),
460}
461
462/// struct for typed errors of method [`update_template`]
463#[derive(Debug, Clone, Serialize, Deserialize)]
464#[serde(untagged)]
465pub enum UpdateTemplateError {
466    Status400(crate::models::GenericError),
467    DefaultResponse(crate::models::GenericError),
468    UnknownValue(serde_json::Value),
469}
470
471/// struct for typed errors of method [`update_user`]
472#[derive(Debug, Clone, Serialize, Deserialize)]
473#[serde(untagged)]
474pub enum UpdateUserError {
475    Status400(crate::models::GenericError),
476    Status409(crate::models::GenericError),
477    Status429(crate::models::RateLimitError),
478    DefaultResponse(crate::models::GenericError),
479    UnknownValue(serde_json::Value),
480}
481
482/// struct for typed errors of method [`view_api_keys`]
483#[derive(Debug, Clone, Serialize, Deserialize)]
484#[serde(untagged)]
485pub enum ViewApiKeysError {
486    Status400(crate::models::GenericError),
487    DefaultResponse(crate::models::GenericError),
488    UnknownValue(serde_json::Value),
489}
490
491/// struct for typed errors of method [`view_template`]
492#[derive(Debug, Clone, Serialize, Deserialize)]
493#[serde(untagged)]
494pub enum ViewTemplateError {
495    Status400(crate::models::GenericError),
496    Status404(crate::models::GenericError),
497    DefaultResponse(crate::models::GenericError),
498    UnknownValue(serde_json::Value),
499}
500
501/// struct for typed errors of method [`view_templates`]
502#[derive(Debug, Clone, Serialize, Deserialize)]
503#[serde(untagged)]
504pub enum ViewTemplatesError {
505    Status400(crate::models::GenericError),
506    Status429(crate::models::RateLimitError),
507    DefaultResponse(crate::models::GenericError),
508    UnknownValue(serde_json::Value),
509}
510
511
512/// Used to stop a scheduled or currently outgoing notification
513pub async fn cancel_notification(configuration: &configuration::Configuration, app_id: &str, notification_id: &str) -> Result<crate::models::GenericSuccessBoolResponse, Error<CancelNotificationError>> {
514    let configuration = configuration;
515
516    let client = &configuration.client;
517
518    let uri_str = format!("{}/notifications/{notification_id}", configuration.base_path, notification_id=crate::apis::urlencode(notification_id));
519    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
520
521    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
522    if let Some(ref user_agent) = configuration.user_agent {
523        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
524    }
525
526    // Adds a telemetry header
527    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
528
529    if let Some(ref token) = configuration.rest_api_key_token {
530        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
531    }
532
533    let req = req_builder.build()?;
534    let resp = client.execute(req).await?;
535
536    let status = resp.status();
537    let content = resp.text().await?;
538
539    if !status.is_client_error() && !status.is_server_error() {
540        serde_json::from_str(&content).map_err(Error::from)
541    } else {
542        let entity: Option<CancelNotificationError> = serde_json::from_str(&content).ok();
543        let error = ResponseContent { status: status, content: content, entity: entity };
544        Err(Error::ResponseError(error))
545    }
546}
547
548/// Copy a template to a destination app.
549pub async fn copy_template_to_app(configuration: &configuration::Configuration, template_id: &str, app_id: &str, copy_template_request: crate::models::CopyTemplateRequest) -> Result<crate::models::TemplateResource, Error<CopyTemplateToAppError>> {
550    let configuration = configuration;
551
552    let client = &configuration.client;
553
554    let uri_str = format!("{}/templates/{template_id}/copy_to_app", configuration.base_path, template_id=crate::apis::urlencode(template_id));
555    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
556
557    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
558    if let Some(ref user_agent) = configuration.user_agent {
559        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
560    }
561
562    // Adds a telemetry header
563    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
564
565    if let Some(ref token) = configuration.organization_api_key_token {
566        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
567    }
568    req_builder = req_builder.json(&copy_template_request);
569
570    let req = req_builder.build()?;
571    let resp = client.execute(req).await?;
572
573    let status = resp.status();
574    let content = resp.text().await?;
575
576    if !status.is_client_error() && !status.is_server_error() {
577        serde_json::from_str(&content).map_err(Error::from)
578    } else {
579        let entity: Option<CopyTemplateToAppError> = serde_json::from_str(&content).ok();
580        let error = ResponseContent { status: status, content: content, entity: entity };
581        Err(Error::ResponseError(error))
582    }
583}
584
585/// Upserts one or more Aliases to an existing User identified by (:alias_label, :alias_id).
586pub async fn create_alias(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str, user_identity_body: crate::models::UserIdentityBody) -> Result<crate::models::UserIdentityBody, Error<CreateAliasError>> {
587    let configuration = configuration;
588
589    let client = &configuration.client;
590
591    let uri_str = format!("{}/apps/{app_id}/users/by/{alias_label}/{alias_id}/identity", configuration.base_path, app_id=crate::apis::urlencode(app_id), alias_label=crate::apis::urlencode(alias_label), alias_id=crate::apis::urlencode(alias_id));
592    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
593
594    if let Some(ref user_agent) = configuration.user_agent {
595        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
596    }
597
598    // Adds a telemetry header
599    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
600
601    if let Some(ref token) = configuration.rest_api_key_token {
602        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
603    }
604    req_builder = req_builder.json(&user_identity_body);
605
606    let req = req_builder.build()?;
607    let resp = client.execute(req).await?;
608
609    let status = resp.status();
610    let content = resp.text().await?;
611
612    if !status.is_client_error() && !status.is_server_error() {
613        serde_json::from_str(&content).map_err(Error::from)
614    } else {
615        let entity: Option<CreateAliasError> = serde_json::from_str(&content).ok();
616        let error = ResponseContent { status: status, content: content, entity: entity };
617        Err(Error::ResponseError(error))
618    }
619}
620
621/// Upserts one or more Aliases for the User identified by :subscription_id.
622pub async fn create_alias_by_subscription(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str, user_identity_body: crate::models::UserIdentityBody) -> Result<crate::models::UserIdentityBody, Error<CreateAliasBySubscriptionError>> {
623    let configuration = configuration;
624
625    let client = &configuration.client;
626
627    let uri_str = format!("{}/apps/{app_id}/subscriptions/{subscription_id}/user/identity", configuration.base_path, app_id=crate::apis::urlencode(app_id), subscription_id=crate::apis::urlencode(subscription_id));
628    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
629
630    if let Some(ref user_agent) = configuration.user_agent {
631        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
632    }
633
634    // Adds a telemetry header
635    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
636
637    if let Some(ref token) = configuration.rest_api_key_token {
638        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
639    }
640    req_builder = req_builder.json(&user_identity_body);
641
642    let req = req_builder.build()?;
643    let resp = client.execute(req).await?;
644
645    let status = resp.status();
646    let content = resp.text().await?;
647
648    if !status.is_client_error() && !status.is_server_error() {
649        serde_json::from_str(&content).map_err(Error::from)
650    } else {
651        let entity: Option<CreateAliasBySubscriptionError> = serde_json::from_str(&content).ok();
652        let error = ResponseContent { status: status, content: content, entity: entity };
653        Err(Error::ResponseError(error))
654    }
655}
656
657/// Use this API to create a new App API Key (also called a Rich Authentication Token) for a specific OneSignal app. These keys are used to authenticate API requests at the app level and offer enhanced security features, including optional IP allowlisting.
658pub async fn create_api_key(configuration: &configuration::Configuration, app_id: &str, create_api_key_request: crate::models::CreateApiKeyRequest) -> Result<crate::models::CreateApiKeyResponse, Error<CreateApiKeyError>> {
659    let configuration = configuration;
660
661    let client = &configuration.client;
662
663    let uri_str = format!("{}/apps/{app_id}/auth/tokens", configuration.base_path, app_id=crate::apis::urlencode(app_id));
664    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
665
666    if let Some(ref user_agent) = configuration.user_agent {
667        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
668    }
669
670    // Adds a telemetry header
671    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
672
673    if let Some(ref token) = configuration.organization_api_key_token {
674        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
675    }
676    req_builder = req_builder.json(&create_api_key_request);
677
678    let req = req_builder.build()?;
679    let resp = client.execute(req).await?;
680
681    let status = resp.status();
682    let content = resp.text().await?;
683
684    if !status.is_client_error() && !status.is_server_error() {
685        serde_json::from_str(&content).map_err(Error::from)
686    } else {
687        let entity: Option<CreateApiKeyError> = serde_json::from_str(&content).ok();
688        let error = ResponseContent { status: status, content: content, entity: entity };
689        Err(Error::ResponseError(error))
690    }
691}
692
693/// Creates a new OneSignal app
694pub async fn create_app(configuration: &configuration::Configuration, app: crate::models::App) -> Result<crate::models::App, Error<CreateAppError>> {
695    let configuration = configuration;
696
697    let client = &configuration.client;
698
699    let uri_str = format!("{}/apps", configuration.base_path);
700    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
701
702    if let Some(ref user_agent) = configuration.user_agent {
703        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
704    }
705
706    // Adds a telemetry header
707    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
708
709    if let Some(ref token) = configuration.organization_api_key_token {
710        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
711    }
712    req_builder = req_builder.json(&app);
713
714    let req = req_builder.build()?;
715    let resp = client.execute(req).await?;
716
717    let status = resp.status();
718    let content = resp.text().await?;
719
720    if !status.is_client_error() && !status.is_server_error() {
721        serde_json::from_str(&content).map_err(Error::from)
722    } else {
723        let entity: Option<CreateAppError> = serde_json::from_str(&content).ok();
724        let error = ResponseContent { status: status, content: content, entity: entity };
725        Err(Error::ResponseError(error))
726    }
727}
728
729/// The Custom Events API allows you to record user events. Custom events can represent any action users take in your application, such as completing a purchase, viewing content, or achieving milestones.
730pub async fn create_custom_events(configuration: &configuration::Configuration, app_id: &str, custom_events_request: crate::models::CustomEventsRequest) -> Result<serde_json::Value, Error<CreateCustomEventsError>> {
731    let configuration = configuration;
732
733    let client = &configuration.client;
734
735    let uri_str = format!("{}/apps/{app_id}/custom_events", configuration.base_path, app_id=crate::apis::urlencode(app_id));
736    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
737
738    if let Some(ref user_agent) = configuration.user_agent {
739        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
740    }
741
742    // Adds a telemetry header
743    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
744
745    if let Some(ref token) = configuration.rest_api_key_token {
746        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
747    }
748    req_builder = req_builder.json(&custom_events_request);
749
750    let req = req_builder.build()?;
751    let resp = client.execute(req).await?;
752
753    let status = resp.status();
754    let content = resp.text().await?;
755
756    if !status.is_client_error() && !status.is_server_error() {
757        serde_json::from_str(&content).map_err(Error::from)
758    } else {
759        let entity: Option<CreateCustomEventsError> = serde_json::from_str(&content).ok();
760        let error = ResponseContent { status: status, content: content, entity: entity };
761        Err(Error::ResponseError(error))
762    }
763}
764
765/// Sends notifications to your users.  **Target by External ID (push example):** set `include_aliases` to `{ \"external_id\": [\"your-user-id\"] }` and set `target_channel` to `push` (or `email` / `sms` for those channels). Alias object keys must match API labels exactly (for example `external_id`, not camelCase).  **Do not confuse** the notification-level `external_id` field with External ID targeting: top-level `external_id` / `idempotency_key` are for idempotent notification requests only, not for selecting recipients.  **Targeting compatibility:** `include_aliases` must not be combined with other targeting modes (segments, filters, subscription IDs, legacy player IDs, etc.). Clients should send only one targeting strategy per request. 
766pub async fn create_notification(configuration: &configuration::Configuration, notification: crate::models::Notification) -> Result<crate::models::CreateNotificationSuccessResponse, Error<CreateNotificationError>> {
767    let configuration = configuration;
768
769    let client = &configuration.client;
770
771    let uri_str = format!("{}/notifications", configuration.base_path);
772    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
773
774    if let Some(ref user_agent) = configuration.user_agent {
775        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
776    }
777
778    // Adds a telemetry header
779    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
780
781    if let Some(ref token) = configuration.rest_api_key_token {
782        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
783    }
784    req_builder = req_builder.json(&notification);
785
786    let req = req_builder.build()?;
787    let resp = client.execute(req).await?;
788
789    let status = resp.status();
790    let content = resp.text().await?;
791
792    if !status.is_client_error() && !status.is_server_error() {
793        serde_json::from_str(&content).map_err(Error::from)
794    } else {
795        let entity: Option<CreateNotificationError> = serde_json::from_str(&content).ok();
796        let error = ResponseContent { status: status, content: content, entity: entity };
797        Err(Error::ResponseError(error))
798    }
799}
800
801/// Create a segment visible and usable in the dashboard and API - Required: OneSignal Paid Plan The Create Segment method is used when you want your server to programmatically create a segment instead of using the OneSignal Dashboard UI. Just like creating Segments from the dashboard you can pass in filters with multiple \"AND\" or \"OR\" operator's. &#x1F6A7; Does Not Update Segments This endpoint will only create segments, it does not edit or update currently created Segments. You will need to use the Delete Segment endpoint and re-create it with this endpoint to edit. 
802pub async fn create_segment(configuration: &configuration::Configuration, app_id: &str, segment: Option<crate::models::Segment>) -> Result<crate::models::CreateSegmentSuccessResponse, Error<CreateSegmentError>> {
803    let configuration = configuration;
804
805    let client = &configuration.client;
806
807    let uri_str = format!("{}/apps/{app_id}/segments", configuration.base_path, app_id=crate::apis::urlencode(app_id));
808    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
809
810    if let Some(ref user_agent) = configuration.user_agent {
811        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
812    }
813
814    // Adds a telemetry header
815    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
816
817    if let Some(ref token) = configuration.rest_api_key_token {
818        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
819    }
820    req_builder = req_builder.json(&segment);
821
822    let req = req_builder.build()?;
823    let resp = client.execute(req).await?;
824
825    let status = resp.status();
826    let content = resp.text().await?;
827
828    if !status.is_client_error() && !status.is_server_error() {
829        serde_json::from_str(&content).map_err(Error::from)
830    } else {
831        let entity: Option<CreateSegmentError> = serde_json::from_str(&content).ok();
832        let error = ResponseContent { status: status, content: content, entity: entity };
833        Err(Error::ResponseError(error))
834    }
835}
836
837/// Creates a new Subscription under the User provided. Useful to add email addresses and SMS numbers to the User.
838pub async fn create_subscription(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str, subscription_body: crate::models::SubscriptionBody) -> Result<crate::models::SubscriptionBody, Error<CreateSubscriptionError>> {
839    let configuration = configuration;
840
841    let client = &configuration.client;
842
843    let uri_str = format!("{}/apps/{app_id}/users/by/{alias_label}/{alias_id}/subscriptions", configuration.base_path, app_id=crate::apis::urlencode(app_id), alias_label=crate::apis::urlencode(alias_label), alias_id=crate::apis::urlencode(alias_id));
844    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
845
846    if let Some(ref user_agent) = configuration.user_agent {
847        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
848    }
849
850    // Adds a telemetry header
851    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
852
853    if let Some(ref token) = configuration.rest_api_key_token {
854        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
855    }
856    req_builder = req_builder.json(&subscription_body);
857
858    let req = req_builder.build()?;
859    let resp = client.execute(req).await?;
860
861    let status = resp.status();
862    let content = resp.text().await?;
863
864    if !status.is_client_error() && !status.is_server_error() {
865        serde_json::from_str(&content).map_err(Error::from)
866    } else {
867        let entity: Option<CreateSubscriptionError> = serde_json::from_str(&content).ok();
868        let error = ResponseContent { status: status, content: content, entity: entity };
869        Err(Error::ResponseError(error))
870    }
871}
872
873/// Create reusable message templates for push, email, and SMS channels.
874pub async fn create_template(configuration: &configuration::Configuration, create_template_request: crate::models::CreateTemplateRequest) -> Result<crate::models::TemplateResource, Error<CreateTemplateError>> {
875    let configuration = configuration;
876
877    let client = &configuration.client;
878
879    let uri_str = format!("{}/templates", configuration.base_path);
880    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
881
882    if let Some(ref user_agent) = configuration.user_agent {
883        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
884    }
885
886    // Adds a telemetry header
887    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
888
889    if let Some(ref token) = configuration.rest_api_key_token {
890        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
891    }
892    req_builder = req_builder.json(&create_template_request);
893
894    let req = req_builder.build()?;
895    let resp = client.execute(req).await?;
896
897    let status = resp.status();
898    let content = resp.text().await?;
899
900    if !status.is_client_error() && !status.is_server_error() {
901        serde_json::from_str(&content).map_err(Error::from)
902    } else {
903        let entity: Option<CreateTemplateError> = serde_json::from_str(&content).ok();
904        let error = ResponseContent { status: status, content: content, entity: entity };
905        Err(Error::ResponseError(error))
906    }
907}
908
909/// Creates a User, optionally Subscriptions owned by the User as well as Aliases. Aliases provided in the payload will be used to look up an existing User.
910pub async fn create_user(configuration: &configuration::Configuration, app_id: &str, user: crate::models::User) -> Result<crate::models::User, Error<CreateUserError>> {
911    let configuration = configuration;
912
913    let client = &configuration.client;
914
915    let uri_str = format!("{}/apps/{app_id}/users", configuration.base_path, app_id=crate::apis::urlencode(app_id));
916    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
917
918    if let Some(ref user_agent) = configuration.user_agent {
919        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
920    }
921
922    // Adds a telemetry header
923    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
924
925    if let Some(ref token) = configuration.rest_api_key_token {
926        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
927    }
928    req_builder = req_builder.json(&user);
929
930    let req = req_builder.build()?;
931    let resp = client.execute(req).await?;
932
933    let status = resp.status();
934    let content = resp.text().await?;
935
936    if !status.is_client_error() && !status.is_server_error() {
937        serde_json::from_str(&content).map_err(Error::from)
938    } else {
939        let entity: Option<CreateUserError> = serde_json::from_str(&content).ok();
940        let error = ResponseContent { status: status, content: content, entity: entity };
941        Err(Error::ResponseError(error))
942    }
943}
944
945/// Deletes an alias by alias label
946pub async fn delete_alias(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str, alias_label_to_delete: &str) -> Result<crate::models::UserIdentityBody, Error<DeleteAliasError>> {
947    let configuration = configuration;
948
949    let client = &configuration.client;
950
951    let uri_str = format!("{}/apps/{app_id}/users/by/{alias_label}/{alias_id}/identity/{alias_label_to_delete}", configuration.base_path, app_id=crate::apis::urlencode(app_id), alias_label=crate::apis::urlencode(alias_label), alias_id=crate::apis::urlencode(alias_id), alias_label_to_delete=crate::apis::urlencode(alias_label_to_delete));
952    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
953
954    if let Some(ref user_agent) = configuration.user_agent {
955        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
956    }
957
958    // Adds a telemetry header
959    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
960
961    if let Some(ref token) = configuration.rest_api_key_token {
962        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
963    }
964
965    let req = req_builder.build()?;
966    let resp = client.execute(req).await?;
967
968    let status = resp.status();
969    let content = resp.text().await?;
970
971    if !status.is_client_error() && !status.is_server_error() {
972        serde_json::from_str(&content).map_err(Error::from)
973    } else {
974        let entity: Option<DeleteAliasError> = serde_json::from_str(&content).ok();
975        let error = ResponseContent { status: status, content: content, entity: entity };
976        Err(Error::ResponseError(error))
977    }
978}
979
980/// Delete a specific Rich Authentication Token (App API Key) for a OneSignal app. Requires your Organization API Key and the token’s unique ID, not the token value itself.
981pub async fn delete_api_key(configuration: &configuration::Configuration, app_id: &str, token_id: &str) -> Result<serde_json::Value, Error<DeleteApiKeyError>> {
982    let configuration = configuration;
983
984    let client = &configuration.client;
985
986    let uri_str = format!("{}/apps/{app_id}/auth/tokens/{token_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id), token_id=crate::apis::urlencode(token_id));
987    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
988
989    if let Some(ref user_agent) = configuration.user_agent {
990        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
991    }
992
993    // Adds a telemetry header
994    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
995
996    if let Some(ref token) = configuration.organization_api_key_token {
997        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
998    }
999
1000    let req = req_builder.build()?;
1001    let resp = client.execute(req).await?;
1002
1003    let status = resp.status();
1004    let content = resp.text().await?;
1005
1006    if !status.is_client_error() && !status.is_server_error() {
1007        serde_json::from_str(&content).map_err(Error::from)
1008    } else {
1009        let entity: Option<DeleteApiKeyError> = serde_json::from_str(&content).ok();
1010        let error = ResponseContent { status: status, content: content, entity: entity };
1011        Err(Error::ResponseError(error))
1012    }
1013}
1014
1015/// Delete a segment (not user devices) - Required: OneSignal Paid Plan You can delete a segment under your app by calling this API. You must provide an API key in the Authorization header that has admin access on the app. The segment_id can be found in the URL of the segment when viewing it in the dashboard. 
1016pub async fn delete_segment(configuration: &configuration::Configuration, app_id: &str, segment_id: &str) -> Result<crate::models::GenericSuccessBoolResponse, Error<DeleteSegmentError>> {
1017    let configuration = configuration;
1018
1019    let client = &configuration.client;
1020
1021    let uri_str = format!("{}/apps/{app_id}/segments/{segment_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id), segment_id=crate::apis::urlencode(segment_id));
1022    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
1023
1024    if let Some(ref user_agent) = configuration.user_agent {
1025        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1026    }
1027
1028    // Adds a telemetry header
1029    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1030
1031    if let Some(ref token) = configuration.rest_api_key_token {
1032        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1033    }
1034
1035    let req = req_builder.build()?;
1036    let resp = client.execute(req).await?;
1037
1038    let status = resp.status();
1039    let content = resp.text().await?;
1040
1041    if !status.is_client_error() && !status.is_server_error() {
1042        serde_json::from_str(&content).map_err(Error::from)
1043    } else {
1044        let entity: Option<DeleteSegmentError> = serde_json::from_str(&content).ok();
1045        let error = ResponseContent { status: status, content: content, entity: entity };
1046        Err(Error::ResponseError(error))
1047    }
1048}
1049
1050/// Deletes the Subscription.
1051pub async fn delete_subscription(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str) -> Result<(), Error<DeleteSubscriptionError>> {
1052    let configuration = configuration;
1053
1054    let client = &configuration.client;
1055
1056    let uri_str = format!("{}/apps/{app_id}/subscriptions/{subscription_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id), subscription_id=crate::apis::urlencode(subscription_id));
1057    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
1058
1059    if let Some(ref user_agent) = configuration.user_agent {
1060        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1061    }
1062
1063    // Adds a telemetry header
1064    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1065
1066    if let Some(ref token) = configuration.rest_api_key_token {
1067        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1068    }
1069
1070    let req = req_builder.build()?;
1071    let resp = client.execute(req).await?;
1072
1073    let status = resp.status();
1074    let content = resp.text().await?;
1075
1076    if !status.is_client_error() && !status.is_server_error() {
1077        Ok(())
1078    } else {
1079        let entity: Option<DeleteSubscriptionError> = serde_json::from_str(&content).ok();
1080        let error = ResponseContent { status: status, content: content, entity: entity };
1081        Err(Error::ResponseError(error))
1082    }
1083}
1084
1085/// Delete a template by id.
1086pub async fn delete_template(configuration: &configuration::Configuration, template_id: &str, app_id: &str) -> Result<crate::models::GenericSuccessBoolResponse, Error<DeleteTemplateError>> {
1087    let configuration = configuration;
1088
1089    let client = &configuration.client;
1090
1091    let uri_str = format!("{}/templates/{template_id}", configuration.base_path, template_id=crate::apis::urlencode(template_id));
1092    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
1093
1094    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
1095    if let Some(ref user_agent) = configuration.user_agent {
1096        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1097    }
1098
1099    // Adds a telemetry header
1100    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1101
1102    if let Some(ref token) = configuration.rest_api_key_token {
1103        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1104    }
1105
1106    let req = req_builder.build()?;
1107    let resp = client.execute(req).await?;
1108
1109    let status = resp.status();
1110    let content = resp.text().await?;
1111
1112    if !status.is_client_error() && !status.is_server_error() {
1113        serde_json::from_str(&content).map_err(Error::from)
1114    } else {
1115        let entity: Option<DeleteTemplateError> = serde_json::from_str(&content).ok();
1116        let error = ResponseContent { status: status, content: content, entity: entity };
1117        Err(Error::ResponseError(error))
1118    }
1119}
1120
1121/// Removes the User identified by (:alias_label, :alias_id), and all Subscriptions and Aliases
1122pub async fn delete_user(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str) -> Result<(), Error<DeleteUserError>> {
1123    let configuration = configuration;
1124
1125    let client = &configuration.client;
1126
1127    let uri_str = format!("{}/apps/{app_id}/users/by/{alias_label}/{alias_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id), alias_label=crate::apis::urlencode(alias_label), alias_id=crate::apis::urlencode(alias_id));
1128    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
1129
1130    if let Some(ref user_agent) = configuration.user_agent {
1131        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1132    }
1133
1134    // Adds a telemetry header
1135    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1136
1137    if let Some(ref token) = configuration.rest_api_key_token {
1138        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1139    }
1140
1141    let req = req_builder.build()?;
1142    let resp = client.execute(req).await?;
1143
1144    let status = resp.status();
1145    let content = resp.text().await?;
1146
1147    if !status.is_client_error() && !status.is_server_error() {
1148        Ok(())
1149    } else {
1150        let entity: Option<DeleteUserError> = serde_json::from_str(&content).ok();
1151        let error = ResponseContent { status: status, content: content, entity: entity };
1152        Err(Error::ResponseError(error))
1153    }
1154}
1155
1156/// Generate a compressed CSV report of all of the events data for a notification. This will return a URL immediately upon success but it may take several minutes for the CSV to become available at that URL depending on the volume of data. Only one export can be in-progress per OneSignal account at any given time.
1157pub async fn export_events(configuration: &configuration::Configuration, notification_id: &str, app_id: &str) -> Result<crate::models::ExportEventsSuccessResponse, Error<ExportEventsError>> {
1158    let configuration = configuration;
1159
1160    let client = &configuration.client;
1161
1162    let uri_str = format!("{}/notifications/{notification_id}/export_events", configuration.base_path, notification_id=crate::apis::urlencode(notification_id));
1163    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
1164
1165    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
1166    if let Some(ref user_agent) = configuration.user_agent {
1167        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1168    }
1169
1170    // Adds a telemetry header
1171    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1172
1173    if let Some(ref token) = configuration.rest_api_key_token {
1174        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1175    }
1176
1177    let req = req_builder.build()?;
1178    let resp = client.execute(req).await?;
1179
1180    let status = resp.status();
1181    let content = resp.text().await?;
1182
1183    if !status.is_client_error() && !status.is_server_error() {
1184        serde_json::from_str(&content).map_err(Error::from)
1185    } else {
1186        let entity: Option<ExportEventsError> = serde_json::from_str(&content).ok();
1187        let error = ResponseContent { status: status, content: content, entity: entity };
1188        Err(Error::ResponseError(error))
1189    }
1190}
1191
1192/// Generate a compressed CSV export of all of your current user data This method can be used to generate a compressed CSV export of all of your current user data. It is a much faster alternative than retrieving this data using the /players API endpoint. The file will be compressed using GZip. The file may take several minutes to generate depending on the number of users in your app. The URL generated will be available for 3 days and includes random v4 uuid as part of the resource name to be unguessable. &#x1F6A7; 403 Error Responses          You can test if it is complete by making a GET request to the csv_file_url value. This file may take time to generate depending on how many device records are being pulled. If the file is not ready, a 403 error will be returned. Otherwise the file itself will be returned. &#x1F6A7; Requires Authentication Key Requires your OneSignal App's REST API Key, available in Keys & IDs. &#x1F6A7; Concurrent Exports Only one concurrent export is allowed per OneSignal account. Please ensure you have successfully downloaded the .csv.gz file before exporting another app. CSV File Format: - Default Columns:   | Field | Details |   | --- | --- |   | id | OneSignal Player Id |   | identifier | Push Token |   | session_count | Number of times they visited the app or site   | language | Device language code |   | timezone | Number of seconds away from UTC. Example: -28800 |   | game_version | Version of your mobile app gathered from Android Studio versionCode in your App/build.gradle and iOS uses kCFBundleVersionKey in Xcode. |   | device_os | Device Operating System Version. Example: 80 = Chrome 80, 9 = Android 9 |   | device_type | Device Operating System Type |   | device_model | Device Hardware String Code. Example: Mobile Web Subscribers will have `Linux armv` |   | ad_id | Based on the Google Advertising Id for Android, identifierForVendor for iOS. OptedOut means user turned off Advertising tracking on the device. |   | tags | Current OneSignal Data Tags on the device. |   | last_active | Date and time the user last opened the mobile app or visited the site. |   | playtime | Total amount of time in seconds the user had the mobile app open. |   | amount_spent |  Mobile only - amount spent in USD on In-App Purchases. |    | created_at | Date and time the device record was created in OneSignal. Mobile - first time they opened the app with OneSignal SDK. Web - first time the user subscribed to the site. |   | invalid_identifier | t = unsubscribed, f = subscibed |   | badge_count | Current number of badges on the device | - Extra Columns:   | Field | Details |   | --- | --- |   | external_user_id | Your User Id set on the device |   | notification_types | Notification types |   | location | Location points (Latitude and Longitude) set on the device. |   | country | Country code |   | rooted | Android device rooted or not |   | ip | IP Address of the device if being tracked. See Handling Personal Data. |   | web_auth | Web Only authorization key. |   | web_p256 | Web Only p256 key. | 
1193pub async fn export_subscriptions(configuration: &configuration::Configuration, app_id: &str, export_subscriptions_request_body: Option<crate::models::ExportSubscriptionsRequestBody>) -> Result<crate::models::ExportSubscriptionsSuccessResponse, Error<ExportSubscriptionsError>> {
1194    let configuration = configuration;
1195
1196    let client = &configuration.client;
1197
1198    let uri_str = format!("{}/players/csv_export?app_id={app_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id));
1199    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
1200
1201    if let Some(ref user_agent) = configuration.user_agent {
1202        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1203    }
1204
1205    // Adds a telemetry header
1206    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1207
1208    if let Some(ref token) = configuration.rest_api_key_token {
1209        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1210    }
1211    req_builder = req_builder.json(&export_subscriptions_request_body);
1212
1213    let req = req_builder.build()?;
1214    let resp = client.execute(req).await?;
1215
1216    let status = resp.status();
1217    let content = resp.text().await?;
1218
1219    if !status.is_client_error() && !status.is_server_error() {
1220        serde_json::from_str(&content).map_err(Error::from)
1221    } else {
1222        let entity: Option<ExportSubscriptionsError> = serde_json::from_str(&content).ok();
1223        let error = ResponseContent { status: status, content: content, entity: entity };
1224        Err(Error::ResponseError(error))
1225    }
1226}
1227
1228/// Lists all Aliases for the User identified by (:alias_label, :alias_id).
1229pub async fn get_aliases(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str) -> Result<crate::models::UserIdentityBody, Error<GetAliasesError>> {
1230    let configuration = configuration;
1231
1232    let client = &configuration.client;
1233
1234    let uri_str = format!("{}/apps/{app_id}/users/by/{alias_label}/{alias_id}/identity", configuration.base_path, app_id=crate::apis::urlencode(app_id), alias_label=crate::apis::urlencode(alias_label), alias_id=crate::apis::urlencode(alias_id));
1235    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1236
1237    if let Some(ref user_agent) = configuration.user_agent {
1238        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1239    }
1240
1241    // Adds a telemetry header
1242    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1243
1244    if let Some(ref token) = configuration.rest_api_key_token {
1245        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1246    }
1247
1248    let req = req_builder.build()?;
1249    let resp = client.execute(req).await?;
1250
1251    let status = resp.status();
1252    let content = resp.text().await?;
1253
1254    if !status.is_client_error() && !status.is_server_error() {
1255        serde_json::from_str(&content).map_err(Error::from)
1256    } else {
1257        let entity: Option<GetAliasesError> = serde_json::from_str(&content).ok();
1258        let error = ResponseContent { status: status, content: content, entity: entity };
1259        Err(Error::ResponseError(error))
1260    }
1261}
1262
1263/// Lists all Aliases for the User identified by :subscription_id.
1264pub async fn get_aliases_by_subscription(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str) -> Result<crate::models::UserIdentityBody, Error<GetAliasesBySubscriptionError>> {
1265    let configuration = configuration;
1266
1267    let client = &configuration.client;
1268
1269    let uri_str = format!("{}/apps/{app_id}/subscriptions/{subscription_id}/user/identity", configuration.base_path, app_id=crate::apis::urlencode(app_id), subscription_id=crate::apis::urlencode(subscription_id));
1270    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1271
1272    if let Some(ref user_agent) = configuration.user_agent {
1273        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1274    }
1275
1276    // Adds a telemetry header
1277    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1278
1279    if let Some(ref token) = configuration.rest_api_key_token {
1280        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1281    }
1282
1283    let req = req_builder.build()?;
1284    let resp = client.execute(req).await?;
1285
1286    let status = resp.status();
1287    let content = resp.text().await?;
1288
1289    if !status.is_client_error() && !status.is_server_error() {
1290        serde_json::from_str(&content).map_err(Error::from)
1291    } else {
1292        let entity: Option<GetAliasesBySubscriptionError> = serde_json::from_str(&content).ok();
1293        let error = ResponseContent { status: status, content: content, entity: entity };
1294        Err(Error::ResponseError(error))
1295    }
1296}
1297
1298/// View the details of a single OneSignal app
1299pub async fn get_app(configuration: &configuration::Configuration, app_id: &str) -> Result<crate::models::App, Error<GetAppError>> {
1300    let configuration = configuration;
1301
1302    let client = &configuration.client;
1303
1304    let uri_str = format!("{}/apps/{app_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id));
1305    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1306
1307    if let Some(ref user_agent) = configuration.user_agent {
1308        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1309    }
1310
1311    // Adds a telemetry header
1312    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1313
1314    if let Some(ref token) = configuration.organization_api_key_token {
1315        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1316    }
1317
1318    let req = req_builder.build()?;
1319    let resp = client.execute(req).await?;
1320
1321    let status = resp.status();
1322    let content = resp.text().await?;
1323
1324    if !status.is_client_error() && !status.is_server_error() {
1325        serde_json::from_str(&content).map_err(Error::from)
1326    } else {
1327        let entity: Option<GetAppError> = serde_json::from_str(&content).ok();
1328        let error = ResponseContent { status: status, content: content, entity: entity };
1329        Err(Error::ResponseError(error))
1330    }
1331}
1332
1333/// View the details of all of your current OneSignal apps
1334pub async fn get_apps(configuration: &configuration::Configuration, ) -> Result<Vec<crate::models::App>, Error<GetAppsError>> {
1335    let configuration = configuration;
1336
1337    let client = &configuration.client;
1338
1339    let uri_str = format!("{}/apps", configuration.base_path);
1340    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1341
1342    if let Some(ref user_agent) = configuration.user_agent {
1343        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1344    }
1345
1346    // Adds a telemetry header
1347    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1348
1349    if let Some(ref token) = configuration.organization_api_key_token {
1350        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1351    }
1352
1353    let req = req_builder.build()?;
1354    let resp = client.execute(req).await?;
1355
1356    let status = resp.status();
1357    let content = resp.text().await?;
1358
1359    if !status.is_client_error() && !status.is_server_error() {
1360        serde_json::from_str(&content).map_err(Error::from)
1361    } else {
1362        let entity: Option<GetAppsError> = serde_json::from_str(&content).ok();
1363        let error = ResponseContent { status: status, content: content, entity: entity };
1364        Err(Error::ResponseError(error))
1365    }
1366}
1367
1368/// View the details of a single notification and outcomes associated with it
1369pub async fn get_notification(configuration: &configuration::Configuration, app_id: &str, notification_id: &str) -> Result<crate::models::NotificationWithMeta, Error<GetNotificationError>> {
1370    let configuration = configuration;
1371
1372    let client = &configuration.client;
1373
1374    let uri_str = format!("{}/notifications/{notification_id}", configuration.base_path, notification_id=crate::apis::urlencode(notification_id));
1375    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1376
1377    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
1378    if let Some(ref user_agent) = configuration.user_agent {
1379        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1380    }
1381
1382    // Adds a telemetry header
1383    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1384
1385    if let Some(ref token) = configuration.rest_api_key_token {
1386        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1387    }
1388
1389    let req = req_builder.build()?;
1390    let resp = client.execute(req).await?;
1391
1392    let status = resp.status();
1393    let content = resp.text().await?;
1394
1395    if !status.is_client_error() && !status.is_server_error() {
1396        serde_json::from_str(&content).map_err(Error::from)
1397    } else {
1398        let entity: Option<GetNotificationError> = serde_json::from_str(&content).ok();
1399        let error = ResponseContent { status: status, content: content, entity: entity };
1400        Err(Error::ResponseError(error))
1401    }
1402}
1403
1404/// -> View the devices sent a message - OneSignal Paid Plan Required This method will return all devices that were sent the given notification_id of an Email or Push Notification if used within 7 days of the date sent. After 7 days of the sending date, the message history data will be unavailable. After a successful response is received, the destination url may be polled until the file becomes available. Most exports are done in ~1-3 minutes, so setting a poll interval of 10 seconds should be adequate. For use cases that are not meant to be consumed by a script, an email will be sent to the supplied email address. &#x1F6A7; Requirements A OneSignal Paid Plan. Turn on Send History via OneSignal API in Settings -> Analytics. Cannot get data before this was turned on. Must be called within 7 days after sending the message. Messages targeting under 1000 recipients will not have \"sent\" events recorded, but will show \"clicked\" events. Requires your OneSignal App's REST API Key, available in Keys & IDs.
1405pub async fn get_notification_history(configuration: &configuration::Configuration, notification_id: &str, get_notification_history_request_body: crate::models::GetNotificationHistoryRequestBody) -> Result<crate::models::NotificationHistorySuccessResponse, Error<GetNotificationHistoryError>> {
1406    let configuration = configuration;
1407
1408    let client = &configuration.client;
1409
1410    let uri_str = format!("{}/notifications/{notification_id}/history", configuration.base_path, notification_id=crate::apis::urlencode(notification_id));
1411    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
1412
1413    if let Some(ref user_agent) = configuration.user_agent {
1414        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1415    }
1416
1417    // Adds a telemetry header
1418    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1419
1420    if let Some(ref token) = configuration.rest_api_key_token {
1421        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1422    }
1423    req_builder = req_builder.json(&get_notification_history_request_body);
1424
1425    let req = req_builder.build()?;
1426    let resp = client.execute(req).await?;
1427
1428    let status = resp.status();
1429    let content = resp.text().await?;
1430
1431    if !status.is_client_error() && !status.is_server_error() {
1432        serde_json::from_str(&content).map_err(Error::from)
1433    } else {
1434        let entity: Option<GetNotificationHistoryError> = serde_json::from_str(&content).ok();
1435        let error = ResponseContent { status: status, content: content, entity: entity };
1436        Err(Error::ResponseError(error))
1437    }
1438}
1439
1440/// View the details of multiple notifications
1441pub async fn get_notifications(configuration: &configuration::Configuration, app_id: &str, limit: Option<i32>, offset: Option<i32>, kind: Option<i32>, time_offset: Option<&str>) -> Result<crate::models::NotificationSlice, Error<GetNotificationsError>> {
1442    let configuration = configuration;
1443
1444    let client = &configuration.client;
1445
1446    let uri_str = format!("{}/notifications", configuration.base_path);
1447    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1448
1449    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
1450    if let Some(ref str) = limit {
1451        req_builder = req_builder.query(&[("limit", &str.to_string())]);
1452    }
1453    if let Some(ref str) = offset {
1454        req_builder = req_builder.query(&[("offset", &str.to_string())]);
1455    }
1456    if let Some(ref str) = kind {
1457        req_builder = req_builder.query(&[("kind", &str.to_string())]);
1458    }
1459    if let Some(ref str) = time_offset {
1460        req_builder = req_builder.query(&[("time_offset", &str.to_string())]);
1461    }
1462    if let Some(ref user_agent) = configuration.user_agent {
1463        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1464    }
1465
1466    // Adds a telemetry header
1467    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1468
1469    if let Some(ref token) = configuration.rest_api_key_token {
1470        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1471    }
1472
1473    let req = req_builder.build()?;
1474    let resp = client.execute(req).await?;
1475
1476    let status = resp.status();
1477    let content = resp.text().await?;
1478
1479    if !status.is_client_error() && !status.is_server_error() {
1480        serde_json::from_str(&content).map_err(Error::from)
1481    } else {
1482        let entity: Option<GetNotificationsError> = serde_json::from_str(&content).ok();
1483        let error = ResponseContent { status: status, content: content, entity: entity };
1484        Err(Error::ResponseError(error))
1485    }
1486}
1487
1488/// View the details of all the outcomes associated with your app  &#x1F6A7; Requires Authentication Key Requires your OneSignal App's REST API Key, available in Keys & IDs.  &#x1F6A7; Outcome Data Limitations Outcomes are only accessible for around 30 days before deleted from our servers. You will need to export this data every month if you want to keep it. 
1489pub async fn get_outcomes(configuration: &configuration::Configuration, app_id: &str, outcome_names: &str, outcome_names2: Option<&str>, outcome_time_range: Option<&str>, outcome_platforms: Option<&str>, outcome_attribution: Option<&str>) -> Result<crate::models::OutcomesData, Error<GetOutcomesError>> {
1490    let configuration = configuration;
1491
1492    let client = &configuration.client;
1493
1494    let uri_str = format!("{}/apps/{app_id}/outcomes", configuration.base_path, app_id=crate::apis::urlencode(app_id));
1495    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1496
1497    req_builder = req_builder.query(&[("outcome_names", &outcome_names.to_string())]);
1498    if let Some(ref str) = outcome_names2 {
1499        req_builder = req_builder.query(&[("outcome_names[]", &str.to_string())]);
1500    }
1501    if let Some(ref str) = outcome_time_range {
1502        req_builder = req_builder.query(&[("outcome_time_range", &str.to_string())]);
1503    }
1504    if let Some(ref str) = outcome_platforms {
1505        req_builder = req_builder.query(&[("outcome_platforms", &str.to_string())]);
1506    }
1507    if let Some(ref str) = outcome_attribution {
1508        req_builder = req_builder.query(&[("outcome_attribution", &str.to_string())]);
1509    }
1510    if let Some(ref user_agent) = configuration.user_agent {
1511        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1512    }
1513
1514    // Adds a telemetry header
1515    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1516
1517    if let Some(ref token) = configuration.rest_api_key_token {
1518        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1519    }
1520
1521    let req = req_builder.build()?;
1522    let resp = client.execute(req).await?;
1523
1524    let status = resp.status();
1525    let content = resp.text().await?;
1526
1527    if !status.is_client_error() && !status.is_server_error() {
1528        serde_json::from_str(&content).map_err(Error::from)
1529    } else {
1530        let entity: Option<GetOutcomesError> = serde_json::from_str(&content).ok();
1531        let error = ResponseContent { status: status, content: content, entity: entity };
1532        Err(Error::ResponseError(error))
1533    }
1534}
1535
1536/// Retrieve details for a single segment by its ID, including subscriber count and optionally segment metadata and filters.
1537pub async fn get_segment(configuration: &configuration::Configuration, app_id: &str, segment_id: &str, include_segment_detail: Option<bool>) -> Result<crate::models::GetSegmentSuccessResponse, Error<GetSegmentError>> {
1538    let configuration = configuration;
1539
1540    let client = &configuration.client;
1541
1542    let uri_str = format!("{}/apps/{app_id}/segments/{segment_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id), segment_id=crate::apis::urlencode(segment_id));
1543    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1544
1545    if let Some(ref str) = include_segment_detail {
1546        req_builder = req_builder.query(&[("include-segment-detail", &str.to_string())]);
1547    }
1548    if let Some(ref user_agent) = configuration.user_agent {
1549        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1550    }
1551
1552    // Adds a telemetry header
1553    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1554
1555    if let Some(ref token) = configuration.rest_api_key_token {
1556        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1557    }
1558
1559    let req = req_builder.build()?;
1560    let resp = client.execute(req).await?;
1561
1562    let status = resp.status();
1563    let content = resp.text().await?;
1564
1565    if !status.is_client_error() && !status.is_server_error() {
1566        serde_json::from_str(&content).map_err(Error::from)
1567    } else {
1568        let entity: Option<GetSegmentError> = serde_json::from_str(&content).ok();
1569        let error = ResponseContent { status: status, content: content, entity: entity };
1570        Err(Error::ResponseError(error))
1571    }
1572}
1573
1574/// Returns an array of segments from an app.
1575pub async fn get_segments(configuration: &configuration::Configuration, app_id: &str, offset: Option<i32>, limit: Option<i32>) -> Result<crate::models::GetSegmentsSuccessResponse, Error<GetSegmentsError>> {
1576    let configuration = configuration;
1577
1578    let client = &configuration.client;
1579
1580    let uri_str = format!("{}/apps/{app_id}/segments", configuration.base_path, app_id=crate::apis::urlencode(app_id));
1581    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1582
1583    if let Some(ref str) = offset {
1584        req_builder = req_builder.query(&[("offset", &str.to_string())]);
1585    }
1586    if let Some(ref str) = limit {
1587        req_builder = req_builder.query(&[("limit", &str.to_string())]);
1588    }
1589    if let Some(ref user_agent) = configuration.user_agent {
1590        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1591    }
1592
1593    // Adds a telemetry header
1594    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1595
1596    if let Some(ref token) = configuration.rest_api_key_token {
1597        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1598    }
1599
1600    let req = req_builder.build()?;
1601    let resp = client.execute(req).await?;
1602
1603    let status = resp.status();
1604    let content = resp.text().await?;
1605
1606    if !status.is_client_error() && !status.is_server_error() {
1607        serde_json::from_str(&content).map_err(Error::from)
1608    } else {
1609        let entity: Option<GetSegmentsError> = serde_json::from_str(&content).ok();
1610        let error = ResponseContent { status: status, content: content, entity: entity };
1611        Err(Error::ResponseError(error))
1612    }
1613}
1614
1615/// Returns the User’s properties, Aliases, and Subscriptions.
1616pub async fn get_user(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str) -> Result<crate::models::User, Error<GetUserError>> {
1617    let configuration = configuration;
1618
1619    let client = &configuration.client;
1620
1621    let uri_str = format!("{}/apps/{app_id}/users/by/{alias_label}/{alias_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id), alias_label=crate::apis::urlencode(alias_label), alias_id=crate::apis::urlencode(alias_id));
1622    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1623
1624    if let Some(ref user_agent) = configuration.user_agent {
1625        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1626    }
1627
1628    // Adds a telemetry header
1629    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1630
1631    if let Some(ref token) = configuration.rest_api_key_token {
1632        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1633    }
1634
1635    let req = req_builder.build()?;
1636    let resp = client.execute(req).await?;
1637
1638    let status = resp.status();
1639    let content = resp.text().await?;
1640
1641    if !status.is_client_error() && !status.is_server_error() {
1642        serde_json::from_str(&content).map_err(Error::from)
1643    } else {
1644        let entity: Option<GetUserError> = serde_json::from_str(&content).ok();
1645        let error = ResponseContent { status: status, content: content, entity: entity };
1646        Err(Error::ResponseError(error))
1647    }
1648}
1649
1650/// Retrieve a paginated, time-scoped list of audit log events for an organization. Requires an Enterprise plan with the audit logs entitlement enabled.
1651pub async fn list_audit_logs(configuration: &configuration::Configuration, organization_id: &str, start_time: Option<&str>, end_time: Option<&str>, cursor: Option<&str>, limit: Option<i32>, app_ids: Option<Vec<String>>, actions: Option<Vec<String>>, actor_ids: Option<Vec<String>>, actor_emails: Option<Vec<String>>, target_types: Option<Vec<String>>, target_ids: Option<Vec<String>>, ip_addresses: Option<Vec<String>>) -> Result<crate::models::ListAuditLogsSuccessResponse, Error<ListAuditLogsError>> {
1652    let configuration = configuration;
1653
1654    let client = &configuration.client;
1655
1656    let uri_str = format!("{}/organizations/{organization_id}/audit_logs", configuration.base_path, organization_id=crate::apis::urlencode(organization_id));
1657    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1658
1659    if let Some(ref str) = start_time {
1660        req_builder = req_builder.query(&[("start_time", &str.to_string())]);
1661    }
1662    if let Some(ref str) = end_time {
1663        req_builder = req_builder.query(&[("end_time", &str.to_string())]);
1664    }
1665    if let Some(ref str) = cursor {
1666        req_builder = req_builder.query(&[("cursor", &str.to_string())]);
1667    }
1668    if let Some(ref str) = limit {
1669        req_builder = req_builder.query(&[("limit", &str.to_string())]);
1670    }
1671    if let Some(ref str) = app_ids {
1672        req_builder = match "multi" {
1673            "multi" => req_builder.query(&str.into_iter().map(|p| ("app_ids".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
1674            _ => req_builder.query(&[("app_ids", &str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
1675        };
1676    }
1677    if let Some(ref str) = actions {
1678        req_builder = match "multi" {
1679            "multi" => req_builder.query(&str.into_iter().map(|p| ("actions".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
1680            _ => req_builder.query(&[("actions", &str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
1681        };
1682    }
1683    if let Some(ref str) = actor_ids {
1684        req_builder = match "multi" {
1685            "multi" => req_builder.query(&str.into_iter().map(|p| ("actor_ids".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
1686            _ => req_builder.query(&[("actor_ids", &str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
1687        };
1688    }
1689    if let Some(ref str) = actor_emails {
1690        req_builder = match "multi" {
1691            "multi" => req_builder.query(&str.into_iter().map(|p| ("actor_emails".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
1692            _ => req_builder.query(&[("actor_emails", &str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
1693        };
1694    }
1695    if let Some(ref str) = target_types {
1696        req_builder = match "multi" {
1697            "multi" => req_builder.query(&str.into_iter().map(|p| ("target_types".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
1698            _ => req_builder.query(&[("target_types", &str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
1699        };
1700    }
1701    if let Some(ref str) = target_ids {
1702        req_builder = match "multi" {
1703            "multi" => req_builder.query(&str.into_iter().map(|p| ("target_ids".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
1704            _ => req_builder.query(&[("target_ids", &str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
1705        };
1706    }
1707    if let Some(ref str) = ip_addresses {
1708        req_builder = match "multi" {
1709            "multi" => req_builder.query(&str.into_iter().map(|p| ("ip_addresses".to_owned(), p.to_string())).collect::<Vec<(std::string::String, std::string::String)>>()),
1710            _ => req_builder.query(&[("ip_addresses", &str.into_iter().map(|p| p.to_string()).collect::<Vec<String>>().join(",").to_string())]),
1711        };
1712    }
1713    if let Some(ref user_agent) = configuration.user_agent {
1714        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1715    }
1716
1717    // Adds a telemetry header
1718    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1719
1720    if let Some(ref token) = configuration.organization_api_key_token {
1721        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1722    }
1723
1724    let req = req_builder.build()?;
1725    let resp = client.execute(req).await?;
1726
1727    let status = resp.status();
1728    let content = resp.text().await?;
1729
1730    if !status.is_client_error() && !status.is_server_error() {
1731        serde_json::from_str(&content).map_err(Error::from)
1732    } else {
1733        let entity: Option<ListAuditLogsError> = serde_json::from_str(&content).ok();
1734        let error = ResponseContent { status: status, content: content, entity: entity };
1735        Err(Error::ResponseError(error))
1736    }
1737}
1738
1739/// Rotate a Rich Authentication Token (App API Key) for a OneSignal app. Rotating a key revokes the current token and generates a new one under the same configuration—ideal when a token is lost or compromised but you don’t want to recreate and reconfigure it from scratch.
1740pub async fn rotate_api_key(configuration: &configuration::Configuration, app_id: &str, token_id: &str) -> Result<crate::models::CreateApiKeyResponse, Error<RotateApiKeyError>> {
1741    let configuration = configuration;
1742
1743    let client = &configuration.client;
1744
1745    let uri_str = format!("{}/apps/{app_id}/auth/tokens/{token_id}/rotate", configuration.base_path, app_id=crate::apis::urlencode(app_id), token_id=crate::apis::urlencode(token_id));
1746    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
1747
1748    if let Some(ref user_agent) = configuration.user_agent {
1749        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1750    }
1751
1752    // Adds a telemetry header
1753    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1754
1755    if let Some(ref token) = configuration.organization_api_key_token {
1756        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1757    }
1758
1759    let req = req_builder.build()?;
1760    let resp = client.execute(req).await?;
1761
1762    let status = resp.status();
1763    let content = resp.text().await?;
1764
1765    if !status.is_client_error() && !status.is_server_error() {
1766        serde_json::from_str(&content).map_err(Error::from)
1767    } else {
1768        let entity: Option<RotateApiKeyError> = serde_json::from_str(&content).ok();
1769        let error = ResponseContent { status: status, content: content, entity: entity };
1770        Err(Error::ResponseError(error))
1771    }
1772}
1773
1774/// Remotely start a Live Activity on iOS devices via OneSignal’s REST API.
1775pub async fn start_live_activity(configuration: &configuration::Configuration, app_id: &str, activity_type: &str, start_live_activity_request: crate::models::StartLiveActivityRequest) -> Result<crate::models::StartLiveActivitySuccessResponse, Error<StartLiveActivityError>> {
1776    let configuration = configuration;
1777
1778    let client = &configuration.client;
1779
1780    let uri_str = format!("{}/apps/{app_id}/activities/activity/{activity_type}", configuration.base_path, app_id=crate::apis::urlencode(app_id), activity_type=crate::apis::urlencode(activity_type));
1781    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
1782
1783    if let Some(ref user_agent) = configuration.user_agent {
1784        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1785    }
1786
1787    // Adds a telemetry header
1788    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1789
1790    if let Some(ref token) = configuration.rest_api_key_token {
1791        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1792    }
1793    req_builder = req_builder.json(&start_live_activity_request);
1794
1795    let req = req_builder.build()?;
1796    let resp = client.execute(req).await?;
1797
1798    let status = resp.status();
1799    let content = resp.text().await?;
1800
1801    if !status.is_client_error() && !status.is_server_error() {
1802        serde_json::from_str(&content).map_err(Error::from)
1803    } else {
1804        let entity: Option<StartLiveActivityError> = serde_json::from_str(&content).ok();
1805        let error = ResponseContent { status: status, content: content, entity: entity };
1806        Err(Error::ResponseError(error))
1807    }
1808}
1809
1810/// Transfers this Subscription to the User identified by the identity in the payload.
1811pub async fn transfer_subscription(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str, transfer_subscription_request_body: crate::models::TransferSubscriptionRequestBody) -> Result<crate::models::UserIdentityBody, Error<TransferSubscriptionError>> {
1812    let configuration = configuration;
1813
1814    let client = &configuration.client;
1815
1816    let uri_str = format!("{}/apps/{app_id}/subscriptions/{subscription_id}/owner", configuration.base_path, app_id=crate::apis::urlencode(app_id), subscription_id=crate::apis::urlencode(subscription_id));
1817    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
1818
1819    if let Some(ref user_agent) = configuration.user_agent {
1820        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1821    }
1822
1823    // Adds a telemetry header
1824    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1825
1826    if let Some(ref token) = configuration.rest_api_key_token {
1827        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1828    }
1829    req_builder = req_builder.json(&transfer_subscription_request_body);
1830
1831    let req = req_builder.build()?;
1832    let resp = client.execute(req).await?;
1833
1834    let status = resp.status();
1835    let content = resp.text().await?;
1836
1837    if !status.is_client_error() && !status.is_server_error() {
1838        serde_json::from_str(&content).map_err(Error::from)
1839    } else {
1840        let entity: Option<TransferSubscriptionError> = serde_json::from_str(&content).ok();
1841        let error = ResponseContent { status: status, content: content, entity: entity };
1842        Err(Error::ResponseError(error))
1843    }
1844}
1845
1846/// Unsubscribe an email with a token when using your own custom email unsubscribe landing page
1847pub async fn unsubscribe_email_with_token(configuration: &configuration::Configuration, app_id: &str, notification_id: &str, token: &str) -> Result<crate::models::GenericSuccessBoolResponse, Error<UnsubscribeEmailWithTokenError>> {
1848    let configuration = configuration;
1849
1850    let client = &configuration.client;
1851
1852    let uri_str = format!("{}/apps/{app_id}/notifications/{notification_id}/unsubscribe", configuration.base_path, app_id=crate::apis::urlencode(app_id), notification_id=crate::apis::urlencode(notification_id));
1853    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
1854
1855    req_builder = req_builder.query(&[("token", &token.to_string())]);
1856    if let Some(ref user_agent) = configuration.user_agent {
1857        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1858    }
1859
1860    // Adds a telemetry header
1861    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1862
1863    if let Some(ref token) = configuration.rest_api_key_token {
1864        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1865    }
1866
1867    let req = req_builder.build()?;
1868    let resp = client.execute(req).await?;
1869
1870    let status = resp.status();
1871    let content = resp.text().await?;
1872
1873    if !status.is_client_error() && !status.is_server_error() {
1874        serde_json::from_str(&content).map_err(Error::from)
1875    } else {
1876        let entity: Option<UnsubscribeEmailWithTokenError> = serde_json::from_str(&content).ok();
1877        let error = ResponseContent { status: status, content: content, entity: entity };
1878        Err(Error::ResponseError(error))
1879    }
1880}
1881
1882/// Update a Rich Authentication Token (App API Key) for a OneSignal app.
1883pub async fn update_api_key(configuration: &configuration::Configuration, app_id: &str, token_id: &str, update_api_key_request: crate::models::UpdateApiKeyRequest) -> Result<serde_json::Value, Error<UpdateApiKeyError>> {
1884    let configuration = configuration;
1885
1886    let client = &configuration.client;
1887
1888    let uri_str = format!("{}/apps/{app_id}/auth/tokens/{token_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id), token_id=crate::apis::urlencode(token_id));
1889    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
1890
1891    if let Some(ref user_agent) = configuration.user_agent {
1892        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1893    }
1894
1895    // Adds a telemetry header
1896    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1897
1898    if let Some(ref token) = configuration.organization_api_key_token {
1899        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1900    }
1901    req_builder = req_builder.json(&update_api_key_request);
1902
1903    let req = req_builder.build()?;
1904    let resp = client.execute(req).await?;
1905
1906    let status = resp.status();
1907    let content = resp.text().await?;
1908
1909    if !status.is_client_error() && !status.is_server_error() {
1910        serde_json::from_str(&content).map_err(Error::from)
1911    } else {
1912        let entity: Option<UpdateApiKeyError> = serde_json::from_str(&content).ok();
1913        let error = ResponseContent { status: status, content: content, entity: entity };
1914        Err(Error::ResponseError(error))
1915    }
1916}
1917
1918/// Updates the name or configuration settings of an existing OneSignal app
1919pub async fn update_app(configuration: &configuration::Configuration, app_id: &str, app: crate::models::App) -> Result<crate::models::App, Error<UpdateAppError>> {
1920    let configuration = configuration;
1921
1922    let client = &configuration.client;
1923
1924    let uri_str = format!("{}/apps/{app_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id));
1925    let mut req_builder = client.request(reqwest::Method::PUT, uri_str.as_str());
1926
1927    if let Some(ref user_agent) = configuration.user_agent {
1928        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1929    }
1930
1931    // Adds a telemetry header
1932    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1933
1934    if let Some(ref token) = configuration.organization_api_key_token {
1935        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1936    }
1937    req_builder = req_builder.json(&app);
1938
1939    let req = req_builder.build()?;
1940    let resp = client.execute(req).await?;
1941
1942    let status = resp.status();
1943    let content = resp.text().await?;
1944
1945    if !status.is_client_error() && !status.is_server_error() {
1946        serde_json::from_str(&content).map_err(Error::from)
1947    } else {
1948        let entity: Option<UpdateAppError> = serde_json::from_str(&content).ok();
1949        let error = ResponseContent { status: status, content: content, entity: entity };
1950        Err(Error::ResponseError(error))
1951    }
1952}
1953
1954/// Updates a specified live activity.
1955pub async fn update_live_activity(configuration: &configuration::Configuration, app_id: &str, activity_id: &str, update_live_activity_request: crate::models::UpdateLiveActivityRequest) -> Result<crate::models::UpdateLiveActivitySuccessResponse, Error<UpdateLiveActivityError>> {
1956    let configuration = configuration;
1957
1958    let client = &configuration.client;
1959
1960    let uri_str = format!("{}/apps/{app_id}/live_activities/{activity_id}/notifications", configuration.base_path, app_id=crate::apis::urlencode(app_id), activity_id=crate::apis::urlencode(activity_id));
1961    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
1962
1963    if let Some(ref user_agent) = configuration.user_agent {
1964        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1965    }
1966
1967    // Adds a telemetry header
1968    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
1969
1970    if let Some(ref token) = configuration.rest_api_key_token {
1971        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1972    }
1973    req_builder = req_builder.json(&update_live_activity_request);
1974
1975    let req = req_builder.build()?;
1976    let resp = client.execute(req).await?;
1977
1978    let status = resp.status();
1979    let content = resp.text().await?;
1980
1981    if !status.is_client_error() && !status.is_server_error() {
1982        serde_json::from_str(&content).map_err(Error::from)
1983    } else {
1984        let entity: Option<UpdateLiveActivityError> = serde_json::from_str(&content).ok();
1985        let error = ResponseContent { status: status, content: content, entity: entity };
1986        Err(Error::ResponseError(error))
1987    }
1988}
1989
1990/// Update an existing segment's name and/or filters. The name parameter is always required. When filters are provided, all existing filters are replaced with the new ones.
1991pub async fn update_segment(configuration: &configuration::Configuration, app_id: &str, segment_id: &str, update_segment_request: Option<crate::models::UpdateSegmentRequest>) -> Result<crate::models::UpdateSegmentSuccessResponse, Error<UpdateSegmentError>> {
1992    let configuration = configuration;
1993
1994    let client = &configuration.client;
1995
1996    let uri_str = format!("{}/apps/{app_id}/segments/{segment_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id), segment_id=crate::apis::urlencode(segment_id));
1997    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
1998
1999    if let Some(ref user_agent) = configuration.user_agent {
2000        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
2001    }
2002
2003    // Adds a telemetry header
2004    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
2005
2006    if let Some(ref token) = configuration.rest_api_key_token {
2007        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
2008    }
2009    req_builder = req_builder.json(&update_segment_request);
2010
2011    let req = req_builder.build()?;
2012    let resp = client.execute(req).await?;
2013
2014    let status = resp.status();
2015    let content = resp.text().await?;
2016
2017    if !status.is_client_error() && !status.is_server_error() {
2018        serde_json::from_str(&content).map_err(Error::from)
2019    } else {
2020        let entity: Option<UpdateSegmentError> = serde_json::from_str(&content).ok();
2021        let error = ResponseContent { status: status, content: content, entity: entity };
2022        Err(Error::ResponseError(error))
2023    }
2024}
2025
2026/// Updates an existing Subscription’s properties.
2027pub async fn update_subscription(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str, subscription_body: crate::models::SubscriptionBody) -> Result<(), Error<UpdateSubscriptionError>> {
2028    let configuration = configuration;
2029
2030    let client = &configuration.client;
2031
2032    let uri_str = format!("{}/apps/{app_id}/subscriptions/{subscription_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id), subscription_id=crate::apis::urlencode(subscription_id));
2033    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
2034
2035    if let Some(ref user_agent) = configuration.user_agent {
2036        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
2037    }
2038
2039    // Adds a telemetry header
2040    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
2041
2042    if let Some(ref token) = configuration.rest_api_key_token {
2043        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
2044    }
2045    req_builder = req_builder.json(&subscription_body);
2046
2047    let req = req_builder.build()?;
2048    let resp = client.execute(req).await?;
2049
2050    let status = resp.status();
2051    let content = resp.text().await?;
2052
2053    if !status.is_client_error() && !status.is_server_error() {
2054        Ok(())
2055    } else {
2056        let entity: Option<UpdateSubscriptionError> = serde_json::from_str(&content).ok();
2057        let error = ResponseContent { status: status, content: content, entity: entity };
2058        Err(Error::ResponseError(error))
2059    }
2060}
2061
2062/// Update properties on an existing OneSignal subscription using its token.
2063pub async fn update_subscription_by_token(configuration: &configuration::Configuration, app_id: &str, token_type: &str, token: &str, subscription_body: crate::models::SubscriptionBody) -> Result<serde_json::Value, Error<UpdateSubscriptionByTokenError>> {
2064    let configuration = configuration;
2065
2066    let client = &configuration.client;
2067
2068    let uri_str = format!("{}/apps/{app_id}/subscriptions_by_token/{token_type}/{token}", configuration.base_path, app_id=crate::apis::urlencode(app_id), token_type=crate::apis::urlencode(token_type), token=crate::apis::urlencode(token));
2069    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
2070
2071    if let Some(ref user_agent) = configuration.user_agent {
2072        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
2073    }
2074
2075    // Adds a telemetry header
2076    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
2077
2078    if let Some(ref token) = configuration.rest_api_key_token {
2079        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
2080    }
2081    req_builder = req_builder.json(&subscription_body);
2082
2083    let req = req_builder.build()?;
2084    let resp = client.execute(req).await?;
2085
2086    let status = resp.status();
2087    let content = resp.text().await?;
2088
2089    if !status.is_client_error() && !status.is_server_error() {
2090        serde_json::from_str(&content).map_err(Error::from)
2091    } else {
2092        let entity: Option<UpdateSubscriptionByTokenError> = serde_json::from_str(&content).ok();
2093        let error = ResponseContent { status: status, content: content, entity: entity };
2094        Err(Error::ResponseError(error))
2095    }
2096}
2097
2098/// Update an existing template.
2099pub async fn update_template(configuration: &configuration::Configuration, template_id: &str, app_id: &str, update_template_request: crate::models::UpdateTemplateRequest) -> Result<crate::models::TemplateResource, Error<UpdateTemplateError>> {
2100    let configuration = configuration;
2101
2102    let client = &configuration.client;
2103
2104    let uri_str = format!("{}/templates/{template_id}", configuration.base_path, template_id=crate::apis::urlencode(template_id));
2105    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
2106
2107    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
2108    if let Some(ref user_agent) = configuration.user_agent {
2109        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
2110    }
2111
2112    // Adds a telemetry header
2113    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
2114
2115    if let Some(ref token) = configuration.rest_api_key_token {
2116        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
2117    }
2118    req_builder = req_builder.json(&update_template_request);
2119
2120    let req = req_builder.build()?;
2121    let resp = client.execute(req).await?;
2122
2123    let status = resp.status();
2124    let content = resp.text().await?;
2125
2126    if !status.is_client_error() && !status.is_server_error() {
2127        serde_json::from_str(&content).map_err(Error::from)
2128    } else {
2129        let entity: Option<UpdateTemplateError> = serde_json::from_str(&content).ok();
2130        let error = ResponseContent { status: status, content: content, entity: entity };
2131        Err(Error::ResponseError(error))
2132    }
2133}
2134
2135/// Updates an existing User’s properties.
2136pub async fn update_user(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str, update_user_request: crate::models::UpdateUserRequest) -> Result<crate::models::PropertiesBody, Error<UpdateUserError>> {
2137    let configuration = configuration;
2138
2139    let client = &configuration.client;
2140
2141    let uri_str = format!("{}/apps/{app_id}/users/by/{alias_label}/{alias_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id), alias_label=crate::apis::urlencode(alias_label), alias_id=crate::apis::urlencode(alias_id));
2142    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
2143
2144    if let Some(ref user_agent) = configuration.user_agent {
2145        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
2146    }
2147
2148    // Adds a telemetry header
2149    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
2150
2151    if let Some(ref token) = configuration.rest_api_key_token {
2152        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
2153    }
2154    req_builder = req_builder.json(&update_user_request);
2155
2156    let req = req_builder.build()?;
2157    let resp = client.execute(req).await?;
2158
2159    let status = resp.status();
2160    let content = resp.text().await?;
2161
2162    if !status.is_client_error() && !status.is_server_error() {
2163        serde_json::from_str(&content).map_err(Error::from)
2164    } else {
2165        let entity: Option<UpdateUserError> = serde_json::from_str(&content).ok();
2166        let error = ResponseContent { status: status, content: content, entity: entity };
2167        Err(Error::ResponseError(error))
2168    }
2169}
2170
2171/// View the details of all of your current app API keys (Rich Authentication Token) for a single OneSignal app.
2172pub async fn view_api_keys(configuration: &configuration::Configuration, app_id: &str) -> Result<crate::models::ApiKeyTokensListResponse, Error<ViewApiKeysError>> {
2173    let configuration = configuration;
2174
2175    let client = &configuration.client;
2176
2177    let uri_str = format!("{}/apps/{app_id}/auth/tokens", configuration.base_path, app_id=crate::apis::urlencode(app_id));
2178    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
2179
2180    if let Some(ref user_agent) = configuration.user_agent {
2181        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
2182    }
2183
2184    // Adds a telemetry header
2185    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
2186
2187    if let Some(ref token) = configuration.organization_api_key_token {
2188        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
2189    }
2190
2191    let req = req_builder.build()?;
2192    let resp = client.execute(req).await?;
2193
2194    let status = resp.status();
2195    let content = resp.text().await?;
2196
2197    if !status.is_client_error() && !status.is_server_error() {
2198        serde_json::from_str(&content).map_err(Error::from)
2199    } else {
2200        let entity: Option<ViewApiKeysError> = serde_json::from_str(&content).ok();
2201        let error = ResponseContent { status: status, content: content, entity: entity };
2202        Err(Error::ResponseError(error))
2203    }
2204}
2205
2206/// Fetch a single template by id.
2207pub async fn view_template(configuration: &configuration::Configuration, template_id: &str, app_id: &str) -> Result<crate::models::TemplateResource, Error<ViewTemplateError>> {
2208    let configuration = configuration;
2209
2210    let client = &configuration.client;
2211
2212    let uri_str = format!("{}/templates/{template_id}", configuration.base_path, template_id=crate::apis::urlencode(template_id));
2213    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
2214
2215    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
2216    if let Some(ref user_agent) = configuration.user_agent {
2217        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
2218    }
2219
2220    // Adds a telemetry header
2221    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
2222
2223    if let Some(ref token) = configuration.rest_api_key_token {
2224        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
2225    }
2226
2227    let req = req_builder.build()?;
2228    let resp = client.execute(req).await?;
2229
2230    let status = resp.status();
2231    let content = resp.text().await?;
2232
2233    if !status.is_client_error() && !status.is_server_error() {
2234        serde_json::from_str(&content).map_err(Error::from)
2235    } else {
2236        let entity: Option<ViewTemplateError> = serde_json::from_str(&content).ok();
2237        let error = ResponseContent { status: status, content: content, entity: entity };
2238        Err(Error::ResponseError(error))
2239    }
2240}
2241
2242/// List templates for an app.
2243pub async fn view_templates(configuration: &configuration::Configuration, app_id: &str, limit: Option<i32>, offset: Option<i32>, channel: Option<&str>) -> Result<crate::models::TemplatesListResponse, Error<ViewTemplatesError>> {
2244    let configuration = configuration;
2245
2246    let client = &configuration.client;
2247
2248    let uri_str = format!("{}/templates", configuration.base_path);
2249    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
2250
2251    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
2252    if let Some(ref str) = limit {
2253        req_builder = req_builder.query(&[("limit", &str.to_string())]);
2254    }
2255    if let Some(ref str) = offset {
2256        req_builder = req_builder.query(&[("offset", &str.to_string())]);
2257    }
2258    if let Some(ref str) = channel {
2259        req_builder = req_builder.query(&[("channel", &str.to_string())]);
2260    }
2261    if let Some(ref user_agent) = configuration.user_agent {
2262        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
2263    }
2264
2265    // Adds a telemetry header
2266    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.11.2");
2267
2268    if let Some(ref token) = configuration.rest_api_key_token {
2269        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
2270    }
2271
2272    let req = req_builder.build()?;
2273    let resp = client.execute(req).await?;
2274
2275    let status = resp.status();
2276    let content = resp.text().await?;
2277
2278    if !status.is_client_error() && !status.is_server_error() {
2279        serde_json::from_str(&content).map_err(Error::from)
2280    } else {
2281        let entity: Option<ViewTemplatesError> = serde_json::from_str(&content).ok();
2282        let error = ResponseContent { status: status, content: content, entity: entity };
2283        Err(Error::ResponseError(error))
2284    }
2285}
2286