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 * The version of the OpenAPI document: 5.2.1
7 * Contact: devrel@onesignal.com
8 * Generated by: https://openapi-generator.tech
9 */
10
11
12use reqwest;
13
14use crate::apis::ResponseContent;
15use super::{Error, configuration};
16
17
18/// struct for typed errors of method [`cancel_notification`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum CancelNotificationError {
22    Status400(crate::models::GenericError),
23    Status404(crate::models::GenericError),
24    Status429(crate::models::RateLimitError),
25    UnknownValue(serde_json::Value),
26}
27
28/// struct for typed errors of method [`create_alias`]
29#[derive(Debug, Clone, Serialize, Deserialize)]
30#[serde(untagged)]
31pub enum CreateAliasError {
32    Status400(crate::models::GenericError),
33    Status404(crate::models::GenericError),
34    Status409(crate::models::GenericError),
35    Status429(crate::models::RateLimitError),
36    UnknownValue(serde_json::Value),
37}
38
39/// struct for typed errors of method [`create_alias_by_subscription`]
40#[derive(Debug, Clone, Serialize, Deserialize)]
41#[serde(untagged)]
42pub enum CreateAliasBySubscriptionError {
43    Status400(crate::models::GenericError),
44    Status404(crate::models::GenericError),
45    Status409(crate::models::GenericError),
46    Status429(crate::models::RateLimitError),
47    UnknownValue(serde_json::Value),
48}
49
50/// struct for typed errors of method [`create_app`]
51#[derive(Debug, Clone, Serialize, Deserialize)]
52#[serde(untagged)]
53pub enum CreateAppError {
54    Status400(crate::models::GenericError),
55    Status429(crate::models::RateLimitError),
56    UnknownValue(serde_json::Value),
57}
58
59/// struct for typed errors of method [`create_notification`]
60#[derive(Debug, Clone, Serialize, Deserialize)]
61#[serde(untagged)]
62pub enum CreateNotificationError {
63    Status400(crate::models::GenericError),
64    Status429(crate::models::RateLimitError),
65    UnknownValue(serde_json::Value),
66}
67
68/// struct for typed errors of method [`create_segment`]
69#[derive(Debug, Clone, Serialize, Deserialize)]
70#[serde(untagged)]
71pub enum CreateSegmentError {
72    Status400(crate::models::GenericError),
73    Status409(crate::models::CreateSegmentConflictResponse),
74    Status429(crate::models::RateLimitError),
75    UnknownValue(serde_json::Value),
76}
77
78/// struct for typed errors of method [`create_subscription`]
79#[derive(Debug, Clone, Serialize, Deserialize)]
80#[serde(untagged)]
81pub enum CreateSubscriptionError {
82    Status400(crate::models::GenericError),
83    Status404(crate::models::GenericError),
84    Status409(crate::models::GenericError),
85    Status429(crate::models::RateLimitError),
86    UnknownValue(serde_json::Value),
87}
88
89/// struct for typed errors of method [`create_user`]
90#[derive(Debug, Clone, Serialize, Deserialize)]
91#[serde(untagged)]
92pub enum CreateUserError {
93    Status400(crate::models::GenericError),
94    Status409(crate::models::CreateUserConflictResponse),
95    Status429(crate::models::RateLimitError),
96    UnknownValue(serde_json::Value),
97}
98
99/// struct for typed errors of method [`delete_alias`]
100#[derive(Debug, Clone, Serialize, Deserialize)]
101#[serde(untagged)]
102pub enum DeleteAliasError {
103    Status400(crate::models::GenericError),
104    Status404(crate::models::GenericError),
105    Status409(crate::models::GenericError),
106    Status429(crate::models::RateLimitError),
107    UnknownValue(serde_json::Value),
108}
109
110/// struct for typed errors of method [`delete_segment`]
111#[derive(Debug, Clone, Serialize, Deserialize)]
112#[serde(untagged)]
113pub enum DeleteSegmentError {
114    Status400(crate::models::GenericError),
115    Status404(crate::models::GenericSuccessBoolResponse),
116    Status429(crate::models::RateLimitError),
117    UnknownValue(serde_json::Value),
118}
119
120/// struct for typed errors of method [`delete_subscription`]
121#[derive(Debug, Clone, Serialize, Deserialize)]
122#[serde(untagged)]
123pub enum DeleteSubscriptionError {
124    Status400(crate::models::GenericError),
125    Status404(crate::models::GenericError),
126    Status409(crate::models::GenericError),
127    Status429(crate::models::RateLimitError),
128    UnknownValue(serde_json::Value),
129}
130
131/// struct for typed errors of method [`delete_user`]
132#[derive(Debug, Clone, Serialize, Deserialize)]
133#[serde(untagged)]
134pub enum DeleteUserError {
135    Status400(crate::models::GenericError),
136    Status409(crate::models::GenericError),
137    Status429(crate::models::RateLimitError),
138    UnknownValue(serde_json::Value),
139}
140
141/// struct for typed errors of method [`export_events`]
142#[derive(Debug, Clone, Serialize, Deserialize)]
143#[serde(untagged)]
144pub enum ExportEventsError {
145    Status400(crate::models::GenericError),
146    Status404(crate::models::GenericError),
147    Status429(crate::models::RateLimitError),
148    UnknownValue(serde_json::Value),
149}
150
151/// struct for typed errors of method [`export_subscriptions`]
152#[derive(Debug, Clone, Serialize, Deserialize)]
153#[serde(untagged)]
154pub enum ExportSubscriptionsError {
155    Status400(crate::models::GenericError),
156    Status429(crate::models::RateLimitError),
157    UnknownValue(serde_json::Value),
158}
159
160/// struct for typed errors of method [`get_aliases`]
161#[derive(Debug, Clone, Serialize, Deserialize)]
162#[serde(untagged)]
163pub enum GetAliasesError {
164    Status400(crate::models::GenericError),
165    Status404(crate::models::GenericError),
166    Status429(crate::models::RateLimitError),
167    UnknownValue(serde_json::Value),
168}
169
170/// struct for typed errors of method [`get_aliases_by_subscription`]
171#[derive(Debug, Clone, Serialize, Deserialize)]
172#[serde(untagged)]
173pub enum GetAliasesBySubscriptionError {
174    Status400(crate::models::GenericError),
175    Status404(crate::models::GenericError),
176    UnknownValue(serde_json::Value),
177}
178
179/// struct for typed errors of method [`get_app`]
180#[derive(Debug, Clone, Serialize, Deserialize)]
181#[serde(untagged)]
182pub enum GetAppError {
183    Status400(crate::models::GenericError),
184    Status429(crate::models::RateLimitError),
185    UnknownValue(serde_json::Value),
186}
187
188/// struct for typed errors of method [`get_apps`]
189#[derive(Debug, Clone, Serialize, Deserialize)]
190#[serde(untagged)]
191pub enum GetAppsError {
192    Status400(crate::models::GenericError),
193    Status429(crate::models::RateLimitError),
194    UnknownValue(serde_json::Value),
195}
196
197/// struct for typed errors of method [`get_notification`]
198#[derive(Debug, Clone, Serialize, Deserialize)]
199#[serde(untagged)]
200pub enum GetNotificationError {
201    Status400(crate::models::GenericError),
202    Status404(crate::models::GenericError),
203    Status429(crate::models::RateLimitError),
204    UnknownValue(serde_json::Value),
205}
206
207/// struct for typed errors of method [`get_notification_history`]
208#[derive(Debug, Clone, Serialize, Deserialize)]
209#[serde(untagged)]
210pub enum GetNotificationHistoryError {
211    Status400(crate::models::GenericError),
212    Status404(crate::models::GenericError),
213    Status429(crate::models::RateLimitError),
214    UnknownValue(serde_json::Value),
215}
216
217/// struct for typed errors of method [`get_notifications`]
218#[derive(Debug, Clone, Serialize, Deserialize)]
219#[serde(untagged)]
220pub enum GetNotificationsError {
221    Status400(crate::models::GenericError),
222    Status429(crate::models::RateLimitError),
223    UnknownValue(serde_json::Value),
224}
225
226/// struct for typed errors of method [`get_outcomes`]
227#[derive(Debug, Clone, Serialize, Deserialize)]
228#[serde(untagged)]
229pub enum GetOutcomesError {
230    Status400(crate::models::GenericError),
231    Status429(crate::models::RateLimitError),
232    UnknownValue(serde_json::Value),
233}
234
235/// struct for typed errors of method [`get_segments`]
236#[derive(Debug, Clone, Serialize, Deserialize)]
237#[serde(untagged)]
238pub enum GetSegmentsError {
239    Status400(crate::models::GenericError),
240    Status429(crate::models::RateLimitError),
241    UnknownValue(serde_json::Value),
242}
243
244/// struct for typed errors of method [`get_user`]
245#[derive(Debug, Clone, Serialize, Deserialize)]
246#[serde(untagged)]
247pub enum GetUserError {
248    Status400(crate::models::GenericError),
249    Status404(crate::models::GenericError),
250    Status429(crate::models::RateLimitError),
251    UnknownValue(serde_json::Value),
252}
253
254/// struct for typed errors of method [`transfer_subscription`]
255#[derive(Debug, Clone, Serialize, Deserialize)]
256#[serde(untagged)]
257pub enum TransferSubscriptionError {
258    Status400(crate::models::GenericError),
259    Status404(crate::models::GenericError),
260    Status409(crate::models::GenericError),
261    Status429(crate::models::RateLimitError),
262    UnknownValue(serde_json::Value),
263}
264
265/// struct for typed errors of method [`unsubscribe_email_with_token`]
266#[derive(Debug, Clone, Serialize, Deserialize)]
267#[serde(untagged)]
268pub enum UnsubscribeEmailWithTokenError {
269    Status400(crate::models::GenericError),
270    Status429(crate::models::RateLimitError),
271    UnknownValue(serde_json::Value),
272}
273
274/// struct for typed errors of method [`update_app`]
275#[derive(Debug, Clone, Serialize, Deserialize)]
276#[serde(untagged)]
277pub enum UpdateAppError {
278    Status400(crate::models::GenericError),
279    Status429(crate::models::RateLimitError),
280    UnknownValue(serde_json::Value),
281}
282
283/// struct for typed errors of method [`update_live_activity`]
284#[derive(Debug, Clone, Serialize, Deserialize)]
285#[serde(untagged)]
286pub enum UpdateLiveActivityError {
287    Status400(crate::models::GenericError),
288    Status429(crate::models::RateLimitError),
289    UnknownValue(serde_json::Value),
290}
291
292/// struct for typed errors of method [`update_subscription`]
293#[derive(Debug, Clone, Serialize, Deserialize)]
294#[serde(untagged)]
295pub enum UpdateSubscriptionError {
296    Status400(crate::models::GenericError),
297    Status404(crate::models::GenericError),
298    Status409(crate::models::GenericError),
299    Status429(crate::models::RateLimitError),
300    UnknownValue(serde_json::Value),
301}
302
303/// struct for typed errors of method [`update_user`]
304#[derive(Debug, Clone, Serialize, Deserialize)]
305#[serde(untagged)]
306pub enum UpdateUserError {
307    Status400(crate::models::GenericError),
308    Status409(crate::models::GenericError),
309    Status429(crate::models::RateLimitError),
310    UnknownValue(serde_json::Value),
311}
312
313
314/// Used to stop a scheduled or currently outgoing notification
315pub async fn cancel_notification(configuration: &configuration::Configuration, app_id: &str, notification_id: &str) -> Result<crate::models::GenericSuccessBoolResponse, Error<CancelNotificationError>> {
316    let configuration = configuration;
317
318    let client = &configuration.client;
319
320    let uri_str = format!("{}/notifications/{notification_id}", configuration.base_path, notification_id=crate::apis::urlencode(notification_id));
321    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
322
323    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
324    if let Some(ref user_agent) = configuration.user_agent {
325        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
326    }
327
328    // Adds a telemetry header
329    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
330
331    if let Some(ref token) = configuration.rest_api_key_token {
332        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
333    }
334
335    let req = req_builder.build()?;
336    let resp = client.execute(req).await?;
337
338    let status = resp.status();
339    let content = resp.text().await?;
340
341    if !status.is_client_error() && !status.is_server_error() {
342        serde_json::from_str(&content).map_err(Error::from)
343    } else {
344        let entity: Option<CancelNotificationError> = serde_json::from_str(&content).ok();
345        let error = ResponseContent { status: status, content: content, entity: entity };
346        Err(Error::ResponseError(error))
347    }
348}
349
350/// Upserts one or more Aliases to an existing User identified by (:alias_label, :alias_id).
351pub 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>> {
352    let configuration = configuration;
353
354    let client = &configuration.client;
355
356    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));
357    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
358
359    if let Some(ref user_agent) = configuration.user_agent {
360        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
361    }
362
363    // Adds a telemetry header
364    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
365
366    if let Some(ref token) = configuration.rest_api_key_token {
367        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
368    }
369    req_builder = req_builder.json(&user_identity_body);
370
371    let req = req_builder.build()?;
372    let resp = client.execute(req).await?;
373
374    let status = resp.status();
375    let content = resp.text().await?;
376
377    if !status.is_client_error() && !status.is_server_error() {
378        serde_json::from_str(&content).map_err(Error::from)
379    } else {
380        let entity: Option<CreateAliasError> = serde_json::from_str(&content).ok();
381        let error = ResponseContent { status: status, content: content, entity: entity };
382        Err(Error::ResponseError(error))
383    }
384}
385
386/// Upserts one or more Aliases for the User identified by :subscription_id.
387pub 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>> {
388    let configuration = configuration;
389
390    let client = &configuration.client;
391
392    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));
393    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
394
395    if let Some(ref user_agent) = configuration.user_agent {
396        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
397    }
398
399    // Adds a telemetry header
400    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
401
402    if let Some(ref token) = configuration.rest_api_key_token {
403        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
404    }
405    req_builder = req_builder.json(&user_identity_body);
406
407    let req = req_builder.build()?;
408    let resp = client.execute(req).await?;
409
410    let status = resp.status();
411    let content = resp.text().await?;
412
413    if !status.is_client_error() && !status.is_server_error() {
414        serde_json::from_str(&content).map_err(Error::from)
415    } else {
416        let entity: Option<CreateAliasBySubscriptionError> = serde_json::from_str(&content).ok();
417        let error = ResponseContent { status: status, content: content, entity: entity };
418        Err(Error::ResponseError(error))
419    }
420}
421
422/// Creates a new OneSignal app
423pub async fn create_app(configuration: &configuration::Configuration, app: crate::models::App) -> Result<crate::models::App, Error<CreateAppError>> {
424    let configuration = configuration;
425
426    let client = &configuration.client;
427
428    let uri_str = format!("{}/apps", configuration.base_path);
429    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
430
431    if let Some(ref user_agent) = configuration.user_agent {
432        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
433    }
434
435    // Adds a telemetry header
436    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
437
438    if let Some(ref token) = configuration.organization_api_key_token {
439        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
440    }
441    req_builder = req_builder.json(&app);
442
443    let req = req_builder.build()?;
444    let resp = client.execute(req).await?;
445
446    let status = resp.status();
447    let content = resp.text().await?;
448
449    if !status.is_client_error() && !status.is_server_error() {
450        serde_json::from_str(&content).map_err(Error::from)
451    } else {
452        let entity: Option<CreateAppError> = serde_json::from_str(&content).ok();
453        let error = ResponseContent { status: status, content: content, entity: entity };
454        Err(Error::ResponseError(error))
455    }
456}
457
458/// Sends notifications to your users 
459pub async fn create_notification(configuration: &configuration::Configuration, notification: crate::models::Notification) -> Result<crate::models::CreateNotificationSuccessResponse, Error<CreateNotificationError>> {
460    let configuration = configuration;
461
462    let client = &configuration.client;
463
464    let uri_str = format!("{}/notifications", configuration.base_path);
465    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
466
467    if let Some(ref user_agent) = configuration.user_agent {
468        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
469    }
470
471    // Adds a telemetry header
472    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
473
474    if let Some(ref token) = configuration.rest_api_key_token {
475        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
476    }
477    req_builder = req_builder.json(&notification);
478
479    let req = req_builder.build()?;
480    let resp = client.execute(req).await?;
481
482    let status = resp.status();
483    let content = resp.text().await?;
484
485    if !status.is_client_error() && !status.is_server_error() {
486        serde_json::from_str(&content).map_err(Error::from)
487    } else {
488        let entity: Option<CreateNotificationError> = serde_json::from_str(&content).ok();
489        let error = ResponseContent { status: status, content: content, entity: entity };
490        Err(Error::ResponseError(error))
491    }
492}
493
494/// 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. 
495pub async fn create_segment(configuration: &configuration::Configuration, app_id: &str, segment: Option<crate::models::Segment>) -> Result<crate::models::CreateSegmentSuccessResponse, Error<CreateSegmentError>> {
496    let configuration = configuration;
497
498    let client = &configuration.client;
499
500    let uri_str = format!("{}/apps/{app_id}/segments", configuration.base_path, app_id=crate::apis::urlencode(app_id));
501    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
502
503    if let Some(ref user_agent) = configuration.user_agent {
504        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
505    }
506
507    // Adds a telemetry header
508    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
509
510    if let Some(ref token) = configuration.rest_api_key_token {
511        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
512    }
513    req_builder = req_builder.json(&segment);
514
515    let req = req_builder.build()?;
516    let resp = client.execute(req).await?;
517
518    let status = resp.status();
519    let content = resp.text().await?;
520
521    if !status.is_client_error() && !status.is_server_error() {
522        serde_json::from_str(&content).map_err(Error::from)
523    } else {
524        let entity: Option<CreateSegmentError> = serde_json::from_str(&content).ok();
525        let error = ResponseContent { status: status, content: content, entity: entity };
526        Err(Error::ResponseError(error))
527    }
528}
529
530/// Creates a new Subscription under the User provided. Useful to add email addresses and SMS numbers to the User.
531pub 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>> {
532    let configuration = configuration;
533
534    let client = &configuration.client;
535
536    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));
537    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
538
539    if let Some(ref user_agent) = configuration.user_agent {
540        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
541    }
542
543    // Adds a telemetry header
544    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
545
546    if let Some(ref token) = configuration.rest_api_key_token {
547        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
548    }
549    req_builder = req_builder.json(&subscription_body);
550
551    let req = req_builder.build()?;
552    let resp = client.execute(req).await?;
553
554    let status = resp.status();
555    let content = resp.text().await?;
556
557    if !status.is_client_error() && !status.is_server_error() {
558        serde_json::from_str(&content).map_err(Error::from)
559    } else {
560        let entity: Option<CreateSubscriptionError> = serde_json::from_str(&content).ok();
561        let error = ResponseContent { status: status, content: content, entity: entity };
562        Err(Error::ResponseError(error))
563    }
564}
565
566/// 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.
567pub async fn create_user(configuration: &configuration::Configuration, app_id: &str, user: crate::models::User) -> Result<crate::models::User, Error<CreateUserError>> {
568    let configuration = configuration;
569
570    let client = &configuration.client;
571
572    let uri_str = format!("{}/apps/{app_id}/users", configuration.base_path, app_id=crate::apis::urlencode(app_id));
573    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
574
575    if let Some(ref user_agent) = configuration.user_agent {
576        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
577    }
578
579    // Adds a telemetry header
580    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
581
582    if let Some(ref token) = configuration.rest_api_key_token {
583        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
584    }
585    req_builder = req_builder.json(&user);
586
587    let req = req_builder.build()?;
588    let resp = client.execute(req).await?;
589
590    let status = resp.status();
591    let content = resp.text().await?;
592
593    if !status.is_client_error() && !status.is_server_error() {
594        serde_json::from_str(&content).map_err(Error::from)
595    } else {
596        let entity: Option<CreateUserError> = serde_json::from_str(&content).ok();
597        let error = ResponseContent { status: status, content: content, entity: entity };
598        Err(Error::ResponseError(error))
599    }
600}
601
602/// Deletes an alias by alias label
603pub 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>> {
604    let configuration = configuration;
605
606    let client = &configuration.client;
607
608    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));
609    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
610
611    if let Some(ref user_agent) = configuration.user_agent {
612        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
613    }
614
615    // Adds a telemetry header
616    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
617
618    if let Some(ref token) = configuration.rest_api_key_token {
619        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
620    }
621
622    let req = req_builder.build()?;
623    let resp = client.execute(req).await?;
624
625    let status = resp.status();
626    let content = resp.text().await?;
627
628    if !status.is_client_error() && !status.is_server_error() {
629        serde_json::from_str(&content).map_err(Error::from)
630    } else {
631        let entity: Option<DeleteAliasError> = serde_json::from_str(&content).ok();
632        let error = ResponseContent { status: status, content: content, entity: entity };
633        Err(Error::ResponseError(error))
634    }
635}
636
637/// 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. 
638pub async fn delete_segment(configuration: &configuration::Configuration, app_id: &str, segment_id: &str) -> Result<crate::models::GenericSuccessBoolResponse, Error<DeleteSegmentError>> {
639    let configuration = configuration;
640
641    let client = &configuration.client;
642
643    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));
644    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
645
646    if let Some(ref user_agent) = configuration.user_agent {
647        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
648    }
649
650    // Adds a telemetry header
651    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
652
653    if let Some(ref token) = configuration.rest_api_key_token {
654        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
655    }
656
657    let req = req_builder.build()?;
658    let resp = client.execute(req).await?;
659
660    let status = resp.status();
661    let content = resp.text().await?;
662
663    if !status.is_client_error() && !status.is_server_error() {
664        serde_json::from_str(&content).map_err(Error::from)
665    } else {
666        let entity: Option<DeleteSegmentError> = serde_json::from_str(&content).ok();
667        let error = ResponseContent { status: status, content: content, entity: entity };
668        Err(Error::ResponseError(error))
669    }
670}
671
672/// Deletes the Subscription.
673pub async fn delete_subscription(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str) -> Result<(), Error<DeleteSubscriptionError>> {
674    let configuration = configuration;
675
676    let client = &configuration.client;
677
678    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));
679    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
680
681    if let Some(ref user_agent) = configuration.user_agent {
682        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
683    }
684
685    // Adds a telemetry header
686    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
687
688    if let Some(ref token) = configuration.rest_api_key_token {
689        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
690    }
691
692    let req = req_builder.build()?;
693    let resp = client.execute(req).await?;
694
695    let status = resp.status();
696    let content = resp.text().await?;
697
698    if !status.is_client_error() && !status.is_server_error() {
699        Ok(())
700    } else {
701        let entity: Option<DeleteSubscriptionError> = serde_json::from_str(&content).ok();
702        let error = ResponseContent { status: status, content: content, entity: entity };
703        Err(Error::ResponseError(error))
704    }
705}
706
707/// Removes the User identified by (:alias_label, :alias_id), and all Subscriptions and Aliases
708pub async fn delete_user(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str) -> Result<(), Error<DeleteUserError>> {
709    let configuration = configuration;
710
711    let client = &configuration.client;
712
713    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));
714    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
715
716    if let Some(ref user_agent) = configuration.user_agent {
717        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
718    }
719
720    // Adds a telemetry header
721    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
722
723    if let Some(ref token) = configuration.rest_api_key_token {
724        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
725    }
726
727    let req = req_builder.build()?;
728    let resp = client.execute(req).await?;
729
730    let status = resp.status();
731    let content = resp.text().await?;
732
733    if !status.is_client_error() && !status.is_server_error() {
734        Ok(())
735    } else {
736        let entity: Option<DeleteUserError> = serde_json::from_str(&content).ok();
737        let error = ResponseContent { status: status, content: content, entity: entity };
738        Err(Error::ResponseError(error))
739    }
740}
741
742/// 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.
743pub async fn export_events(configuration: &configuration::Configuration, notification_id: &str, app_id: &str) -> Result<crate::models::ExportEventsSuccessResponse, Error<ExportEventsError>> {
744    let configuration = configuration;
745
746    let client = &configuration.client;
747
748    let uri_str = format!("{}/notifications/{notification_id}/export_events?app_id={app_id}", configuration.base_path, notification_id=crate::apis::urlencode(notification_id));
749    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
750
751    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
752    if let Some(ref user_agent) = configuration.user_agent {
753        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
754    }
755
756    // Adds a telemetry header
757    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
758
759    if let Some(ref token) = configuration.rest_api_key_token {
760        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
761    }
762
763    let req = req_builder.build()?;
764    let resp = client.execute(req).await?;
765
766    let status = resp.status();
767    let content = resp.text().await?;
768
769    if !status.is_client_error() && !status.is_server_error() {
770        serde_json::from_str(&content).map_err(Error::from)
771    } else {
772        let entity: Option<ExportEventsError> = serde_json::from_str(&content).ok();
773        let error = ResponseContent { status: status, content: content, entity: entity };
774        Err(Error::ResponseError(error))
775    }
776}
777
778/// 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. | 
779pub async fn export_subscriptions(configuration: &configuration::Configuration, app_id: &str, export_subscriptions_request_body: Option<crate::models::ExportSubscriptionsRequestBody>) -> Result<crate::models::ExportSubscriptionsSuccessResponse, Error<ExportSubscriptionsError>> {
780    let configuration = configuration;
781
782    let client = &configuration.client;
783
784    let uri_str = format!("{}/players/csv_export?app_id={app_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id));
785    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
786
787    if let Some(ref user_agent) = configuration.user_agent {
788        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
789    }
790
791    // Adds a telemetry header
792    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
793
794    if let Some(ref token) = configuration.rest_api_key_token {
795        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
796    }
797    req_builder = req_builder.json(&export_subscriptions_request_body);
798
799    let req = req_builder.build()?;
800    let resp = client.execute(req).await?;
801
802    let status = resp.status();
803    let content = resp.text().await?;
804
805    if !status.is_client_error() && !status.is_server_error() {
806        serde_json::from_str(&content).map_err(Error::from)
807    } else {
808        let entity: Option<ExportSubscriptionsError> = serde_json::from_str(&content).ok();
809        let error = ResponseContent { status: status, content: content, entity: entity };
810        Err(Error::ResponseError(error))
811    }
812}
813
814/// Lists all Aliases for the User identified by (:alias_label, :alias_id).
815pub async fn get_aliases(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str) -> Result<crate::models::UserIdentityBody, Error<GetAliasesError>> {
816    let configuration = configuration;
817
818    let client = &configuration.client;
819
820    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));
821    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
822
823    if let Some(ref user_agent) = configuration.user_agent {
824        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
825    }
826
827    // Adds a telemetry header
828    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
829
830    if let Some(ref token) = configuration.rest_api_key_token {
831        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
832    }
833
834    let req = req_builder.build()?;
835    let resp = client.execute(req).await?;
836
837    let status = resp.status();
838    let content = resp.text().await?;
839
840    if !status.is_client_error() && !status.is_server_error() {
841        serde_json::from_str(&content).map_err(Error::from)
842    } else {
843        let entity: Option<GetAliasesError> = serde_json::from_str(&content).ok();
844        let error = ResponseContent { status: status, content: content, entity: entity };
845        Err(Error::ResponseError(error))
846    }
847}
848
849/// Lists all Aliases for the User identified by :subscription_id.
850pub async fn get_aliases_by_subscription(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str) -> Result<crate::models::UserIdentityBody, Error<GetAliasesBySubscriptionError>> {
851    let configuration = configuration;
852
853    let client = &configuration.client;
854
855    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));
856    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
857
858    if let Some(ref user_agent) = configuration.user_agent {
859        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
860    }
861
862    // Adds a telemetry header
863    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
864
865    if let Some(ref token) = configuration.rest_api_key_token {
866        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
867    }
868
869    let req = req_builder.build()?;
870    let resp = client.execute(req).await?;
871
872    let status = resp.status();
873    let content = resp.text().await?;
874
875    if !status.is_client_error() && !status.is_server_error() {
876        serde_json::from_str(&content).map_err(Error::from)
877    } else {
878        let entity: Option<GetAliasesBySubscriptionError> = serde_json::from_str(&content).ok();
879        let error = ResponseContent { status: status, content: content, entity: entity };
880        Err(Error::ResponseError(error))
881    }
882}
883
884/// View the details of a single OneSignal app
885pub async fn get_app(configuration: &configuration::Configuration, app_id: &str) -> Result<crate::models::App, Error<GetAppError>> {
886    let configuration = configuration;
887
888    let client = &configuration.client;
889
890    let uri_str = format!("{}/apps/{app_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id));
891    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
892
893    if let Some(ref user_agent) = configuration.user_agent {
894        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
895    }
896
897    // Adds a telemetry header
898    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
899
900    if let Some(ref token) = configuration.organization_api_key_token {
901        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
902    }
903
904    let req = req_builder.build()?;
905    let resp = client.execute(req).await?;
906
907    let status = resp.status();
908    let content = resp.text().await?;
909
910    if !status.is_client_error() && !status.is_server_error() {
911        serde_json::from_str(&content).map_err(Error::from)
912    } else {
913        let entity: Option<GetAppError> = serde_json::from_str(&content).ok();
914        let error = ResponseContent { status: status, content: content, entity: entity };
915        Err(Error::ResponseError(error))
916    }
917}
918
919/// View the details of all of your current OneSignal apps
920pub async fn get_apps(configuration: &configuration::Configuration, ) -> Result<Vec<crate::models::App>, Error<GetAppsError>> {
921    let configuration = configuration;
922
923    let client = &configuration.client;
924
925    let uri_str = format!("{}/apps", configuration.base_path);
926    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
927
928    if let Some(ref user_agent) = configuration.user_agent {
929        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
930    }
931
932    // Adds a telemetry header
933    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
934
935    if let Some(ref token) = configuration.organization_api_key_token {
936        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
937    }
938
939    let req = req_builder.build()?;
940    let resp = client.execute(req).await?;
941
942    let status = resp.status();
943    let content = resp.text().await?;
944
945    if !status.is_client_error() && !status.is_server_error() {
946        serde_json::from_str(&content).map_err(Error::from)
947    } else {
948        let entity: Option<GetAppsError> = serde_json::from_str(&content).ok();
949        let error = ResponseContent { status: status, content: content, entity: entity };
950        Err(Error::ResponseError(error))
951    }
952}
953
954/// View the details of a single notification and outcomes associated with it
955pub async fn get_notification(configuration: &configuration::Configuration, app_id: &str, notification_id: &str) -> Result<crate::models::NotificationWithMeta, Error<GetNotificationError>> {
956    let configuration = configuration;
957
958    let client = &configuration.client;
959
960    let uri_str = format!("{}/notifications/{notification_id}", configuration.base_path, notification_id=crate::apis::urlencode(notification_id));
961    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
962
963    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
964    if let Some(ref user_agent) = configuration.user_agent {
965        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
966    }
967
968    // Adds a telemetry header
969    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
970
971    if let Some(ref token) = configuration.rest_api_key_token {
972        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
973    }
974
975    let req = req_builder.build()?;
976    let resp = client.execute(req).await?;
977
978    let status = resp.status();
979    let content = resp.text().await?;
980
981    if !status.is_client_error() && !status.is_server_error() {
982        serde_json::from_str(&content).map_err(Error::from)
983    } else {
984        let entity: Option<GetNotificationError> = serde_json::from_str(&content).ok();
985        let error = ResponseContent { status: status, content: content, entity: entity };
986        Err(Error::ResponseError(error))
987    }
988}
989
990/// -> 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.
991pub 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>> {
992    let configuration = configuration;
993
994    let client = &configuration.client;
995
996    let uri_str = format!("{}/notifications/{notification_id}/history", configuration.base_path, notification_id=crate::apis::urlencode(notification_id));
997    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
998
999    if let Some(ref user_agent) = configuration.user_agent {
1000        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1001    }
1002
1003    // Adds a telemetry header
1004    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
1005
1006    if let Some(ref token) = configuration.rest_api_key_token {
1007        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1008    }
1009    req_builder = req_builder.json(&get_notification_history_request_body);
1010
1011    let req = req_builder.build()?;
1012    let resp = client.execute(req).await?;
1013
1014    let status = resp.status();
1015    let content = resp.text().await?;
1016
1017    if !status.is_client_error() && !status.is_server_error() {
1018        serde_json::from_str(&content).map_err(Error::from)
1019    } else {
1020        let entity: Option<GetNotificationHistoryError> = serde_json::from_str(&content).ok();
1021        let error = ResponseContent { status: status, content: content, entity: entity };
1022        Err(Error::ResponseError(error))
1023    }
1024}
1025
1026/// View the details of multiple notifications
1027pub async fn get_notifications(configuration: &configuration::Configuration, app_id: &str, limit: Option<i32>, offset: Option<i32>, kind: Option<i32>) -> Result<crate::models::NotificationSlice, Error<GetNotificationsError>> {
1028    let configuration = configuration;
1029
1030    let client = &configuration.client;
1031
1032    let uri_str = format!("{}/notifications", configuration.base_path);
1033    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1034
1035    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
1036    if let Some(ref str) = limit {
1037        req_builder = req_builder.query(&[("limit", &str.to_string())]);
1038    }
1039    if let Some(ref str) = offset {
1040        req_builder = req_builder.query(&[("offset", &str.to_string())]);
1041    }
1042    if let Some(ref str) = kind {
1043        req_builder = req_builder.query(&[("kind", &str.to_string())]);
1044    }
1045    if let Some(ref user_agent) = configuration.user_agent {
1046        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1047    }
1048
1049    // Adds a telemetry header
1050    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
1051
1052    if let Some(ref token) = configuration.rest_api_key_token {
1053        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1054    }
1055
1056    let req = req_builder.build()?;
1057    let resp = client.execute(req).await?;
1058
1059    let status = resp.status();
1060    let content = resp.text().await?;
1061
1062    if !status.is_client_error() && !status.is_server_error() {
1063        serde_json::from_str(&content).map_err(Error::from)
1064    } else {
1065        let entity: Option<GetNotificationsError> = serde_json::from_str(&content).ok();
1066        let error = ResponseContent { status: status, content: content, entity: entity };
1067        Err(Error::ResponseError(error))
1068    }
1069}
1070
1071/// 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. 
1072pub 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>> {
1073    let configuration = configuration;
1074
1075    let client = &configuration.client;
1076
1077    let uri_str = format!("{}/apps/{app_id}/outcomes", configuration.base_path, app_id=crate::apis::urlencode(app_id));
1078    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1079
1080    req_builder = req_builder.query(&[("outcome_names", &outcome_names.to_string())]);
1081    if let Some(ref str) = outcome_names2 {
1082        req_builder = req_builder.query(&[("outcome_names[]", &str.to_string())]);
1083    }
1084    if let Some(ref str) = outcome_time_range {
1085        req_builder = req_builder.query(&[("outcome_time_range", &str.to_string())]);
1086    }
1087    if let Some(ref str) = outcome_platforms {
1088        req_builder = req_builder.query(&[("outcome_platforms", &str.to_string())]);
1089    }
1090    if let Some(ref str) = outcome_attribution {
1091        req_builder = req_builder.query(&[("outcome_attribution", &str.to_string())]);
1092    }
1093    if let Some(ref user_agent) = configuration.user_agent {
1094        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1095    }
1096
1097    // Adds a telemetry header
1098    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
1099
1100    if let Some(ref token) = configuration.rest_api_key_token {
1101        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1102    }
1103
1104    let req = req_builder.build()?;
1105    let resp = client.execute(req).await?;
1106
1107    let status = resp.status();
1108    let content = resp.text().await?;
1109
1110    if !status.is_client_error() && !status.is_server_error() {
1111        serde_json::from_str(&content).map_err(Error::from)
1112    } else {
1113        let entity: Option<GetOutcomesError> = serde_json::from_str(&content).ok();
1114        let error = ResponseContent { status: status, content: content, entity: entity };
1115        Err(Error::ResponseError(error))
1116    }
1117}
1118
1119/// Returns an array of segments from an app.
1120pub async fn get_segments(configuration: &configuration::Configuration, app_id: &str, offset: Option<i32>, limit: Option<i32>) -> Result<crate::models::GetSegmentsSuccessResponse, Error<GetSegmentsError>> {
1121    let configuration = configuration;
1122
1123    let client = &configuration.client;
1124
1125    let uri_str = format!("{}/apps/{app_id}/segments", configuration.base_path, app_id=crate::apis::urlencode(app_id));
1126    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1127
1128    if let Some(ref str) = offset {
1129        req_builder = req_builder.query(&[("offset", &str.to_string())]);
1130    }
1131    if let Some(ref str) = limit {
1132        req_builder = req_builder.query(&[("limit", &str.to_string())]);
1133    }
1134    if let Some(ref user_agent) = configuration.user_agent {
1135        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1136    }
1137
1138    // Adds a telemetry header
1139    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
1140
1141    if let Some(ref token) = configuration.rest_api_key_token {
1142        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1143    }
1144
1145    let req = req_builder.build()?;
1146    let resp = client.execute(req).await?;
1147
1148    let status = resp.status();
1149    let content = resp.text().await?;
1150
1151    if !status.is_client_error() && !status.is_server_error() {
1152        serde_json::from_str(&content).map_err(Error::from)
1153    } else {
1154        let entity: Option<GetSegmentsError> = serde_json::from_str(&content).ok();
1155        let error = ResponseContent { status: status, content: content, entity: entity };
1156        Err(Error::ResponseError(error))
1157    }
1158}
1159
1160/// Returns the User’s properties, Aliases, and Subscriptions.
1161pub async fn get_user(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str) -> Result<crate::models::User, Error<GetUserError>> {
1162    let configuration = configuration;
1163
1164    let client = &configuration.client;
1165
1166    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));
1167    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1168
1169    if let Some(ref user_agent) = configuration.user_agent {
1170        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1171    }
1172
1173    // Adds a telemetry header
1174    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
1175
1176    if let Some(ref token) = configuration.rest_api_key_token {
1177        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1178    }
1179
1180    let req = req_builder.build()?;
1181    let resp = client.execute(req).await?;
1182
1183    let status = resp.status();
1184    let content = resp.text().await?;
1185
1186    if !status.is_client_error() && !status.is_server_error() {
1187        serde_json::from_str(&content).map_err(Error::from)
1188    } else {
1189        let entity: Option<GetUserError> = serde_json::from_str(&content).ok();
1190        let error = ResponseContent { status: status, content: content, entity: entity };
1191        Err(Error::ResponseError(error))
1192    }
1193}
1194
1195/// Transfers this Subscription to the User identified by the identity in the payload.
1196pub 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>> {
1197    let configuration = configuration;
1198
1199    let client = &configuration.client;
1200
1201    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));
1202    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
1203
1204    if let Some(ref user_agent) = configuration.user_agent {
1205        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1206    }
1207
1208    // Adds a telemetry header
1209    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
1210
1211    if let Some(ref token) = configuration.rest_api_key_token {
1212        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1213    }
1214    req_builder = req_builder.json(&transfer_subscription_request_body);
1215
1216    let req = req_builder.build()?;
1217    let resp = client.execute(req).await?;
1218
1219    let status = resp.status();
1220    let content = resp.text().await?;
1221
1222    if !status.is_client_error() && !status.is_server_error() {
1223        serde_json::from_str(&content).map_err(Error::from)
1224    } else {
1225        let entity: Option<TransferSubscriptionError> = serde_json::from_str(&content).ok();
1226        let error = ResponseContent { status: status, content: content, entity: entity };
1227        Err(Error::ResponseError(error))
1228    }
1229}
1230
1231/// Unsubscribe an email with a token when using your own custom email unsubscribe landing page
1232pub async fn unsubscribe_email_with_token(configuration: &configuration::Configuration, app_id: &str, notification_id: &str, token: &str) -> Result<crate::models::GenericSuccessBoolResponse, Error<UnsubscribeEmailWithTokenError>> {
1233    let configuration = configuration;
1234
1235    let client = &configuration.client;
1236
1237    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));
1238    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
1239
1240    req_builder = req_builder.query(&[("token", &token.to_string())]);
1241    if let Some(ref user_agent) = configuration.user_agent {
1242        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1243    }
1244
1245    // Adds a telemetry header
1246    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
1247
1248    if let Some(ref token) = configuration.rest_api_key_token {
1249        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1250    }
1251
1252    let req = req_builder.build()?;
1253    let resp = client.execute(req).await?;
1254
1255    let status = resp.status();
1256    let content = resp.text().await?;
1257
1258    if !status.is_client_error() && !status.is_server_error() {
1259        serde_json::from_str(&content).map_err(Error::from)
1260    } else {
1261        let entity: Option<UnsubscribeEmailWithTokenError> = serde_json::from_str(&content).ok();
1262        let error = ResponseContent { status: status, content: content, entity: entity };
1263        Err(Error::ResponseError(error))
1264    }
1265}
1266
1267/// Updates the name or configuration settings of an existing OneSignal app
1268pub async fn update_app(configuration: &configuration::Configuration, app_id: &str, app: crate::models::App) -> Result<crate::models::App, Error<UpdateAppError>> {
1269    let configuration = configuration;
1270
1271    let client = &configuration.client;
1272
1273    let uri_str = format!("{}/apps/{app_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id));
1274    let mut req_builder = client.request(reqwest::Method::PUT, uri_str.as_str());
1275
1276    if let Some(ref user_agent) = configuration.user_agent {
1277        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1278    }
1279
1280    // Adds a telemetry header
1281    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
1282
1283    if let Some(ref token) = configuration.organization_api_key_token {
1284        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1285    }
1286    req_builder = req_builder.json(&app);
1287
1288    let req = req_builder.build()?;
1289    let resp = client.execute(req).await?;
1290
1291    let status = resp.status();
1292    let content = resp.text().await?;
1293
1294    if !status.is_client_error() && !status.is_server_error() {
1295        serde_json::from_str(&content).map_err(Error::from)
1296    } else {
1297        let entity: Option<UpdateAppError> = serde_json::from_str(&content).ok();
1298        let error = ResponseContent { status: status, content: content, entity: entity };
1299        Err(Error::ResponseError(error))
1300    }
1301}
1302
1303/// Updates a specified live activity.
1304pub 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>> {
1305    let configuration = configuration;
1306
1307    let client = &configuration.client;
1308
1309    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));
1310    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
1311
1312    if let Some(ref user_agent) = configuration.user_agent {
1313        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1314    }
1315
1316    // Adds a telemetry header
1317    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
1318
1319    if let Some(ref token) = configuration.rest_api_key_token {
1320        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1321    }
1322    req_builder = req_builder.json(&update_live_activity_request);
1323
1324    let req = req_builder.build()?;
1325    let resp = client.execute(req).await?;
1326
1327    let status = resp.status();
1328    let content = resp.text().await?;
1329
1330    if !status.is_client_error() && !status.is_server_error() {
1331        serde_json::from_str(&content).map_err(Error::from)
1332    } else {
1333        let entity: Option<UpdateLiveActivityError> = serde_json::from_str(&content).ok();
1334        let error = ResponseContent { status: status, content: content, entity: entity };
1335        Err(Error::ResponseError(error))
1336    }
1337}
1338
1339/// Updates an existing Subscription’s properties.
1340pub async fn update_subscription(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str, subscription_body: crate::models::SubscriptionBody) -> Result<(), Error<UpdateSubscriptionError>> {
1341    let configuration = configuration;
1342
1343    let client = &configuration.client;
1344
1345    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));
1346    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
1347
1348    if let Some(ref user_agent) = configuration.user_agent {
1349        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1350    }
1351
1352    // Adds a telemetry header
1353    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
1354
1355    if let Some(ref token) = configuration.rest_api_key_token {
1356        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1357    }
1358    req_builder = req_builder.json(&subscription_body);
1359
1360    let req = req_builder.build()?;
1361    let resp = client.execute(req).await?;
1362
1363    let status = resp.status();
1364    let content = resp.text().await?;
1365
1366    if !status.is_client_error() && !status.is_server_error() {
1367        Ok(())
1368    } else {
1369        let entity: Option<UpdateSubscriptionError> = serde_json::from_str(&content).ok();
1370        let error = ResponseContent { status: status, content: content, entity: entity };
1371        Err(Error::ResponseError(error))
1372    }
1373}
1374
1375/// Updates an existing User’s properties.
1376pub 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>> {
1377    let configuration = configuration;
1378
1379    let client = &configuration.client;
1380
1381    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));
1382    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
1383
1384    if let Some(ref user_agent) = configuration.user_agent {
1385        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1386    }
1387
1388    // Adds a telemetry header
1389    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=5.2.1-beta1");
1390
1391    if let Some(ref token) = configuration.rest_api_key_token {
1392        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1393    }
1394    req_builder = req_builder.json(&update_user_request);
1395
1396    let req = req_builder.build()?;
1397    let resp = client.execute(req).await?;
1398
1399    let status = resp.status();
1400    let content = resp.text().await?;
1401
1402    if !status.is_client_error() && !status.is_server_error() {
1403        serde_json::from_str(&content).map_err(Error::from)
1404    } else {
1405        let entity: Option<UpdateUserError> = serde_json::from_str(&content).ok();
1406        let error = ResponseContent { status: status, content: content, entity: entity };
1407        Err(Error::ResponseError(error))
1408    }
1409}
1410