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: 1.4.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 [`begin_live_activity`]
19#[derive(Debug, Clone, Serialize, Deserialize)]
20#[serde(untagged)]
21pub enum BeginLiveActivityError {
22    Status400(crate::models::GenericError),
23    Status429(crate::models::RateLimiterError),
24    UnknownValue(serde_json::Value),
25}
26
27/// struct for typed errors of method [`cancel_notification`]
28#[derive(Debug, Clone, Serialize, Deserialize)]
29#[serde(untagged)]
30pub enum CancelNotificationError {
31    Status400(crate::models::GenericError),
32    Status429(crate::models::RateLimiterError),
33    UnknownValue(serde_json::Value),
34}
35
36/// struct for typed errors of method [`create_app`]
37#[derive(Debug, Clone, Serialize, Deserialize)]
38#[serde(untagged)]
39pub enum CreateAppError {
40    Status400(crate::models::GenericError),
41    Status429(crate::models::RateLimiterError),
42    UnknownValue(serde_json::Value),
43}
44
45/// struct for typed errors of method [`create_notification`]
46#[derive(Debug, Clone, Serialize, Deserialize)]
47#[serde(untagged)]
48pub enum CreateNotificationError {
49    Status400(crate::models::GenericError),
50    Status429(crate::models::RateLimiterError),
51    UnknownValue(serde_json::Value),
52}
53
54/// struct for typed errors of method [`create_player`]
55#[derive(Debug, Clone, Serialize, Deserialize)]
56#[serde(untagged)]
57pub enum CreatePlayerError {
58    Status400(crate::models::GenericError),
59    Status409(crate::models::GenericError),
60    Status429(crate::models::RateLimiterError),
61    UnknownValue(serde_json::Value),
62}
63
64/// struct for typed errors of method [`create_segments`]
65#[derive(Debug, Clone, Serialize, Deserialize)]
66#[serde(untagged)]
67pub enum CreateSegmentsError {
68    Status400(crate::models::GenericError),
69    Status409(crate::models::CreateSegmentConflictResponse),
70    Status429(crate::models::RateLimiterError),
71    UnknownValue(serde_json::Value),
72}
73
74/// struct for typed errors of method [`create_subscription`]
75#[derive(Debug, Clone, Serialize, Deserialize)]
76#[serde(untagged)]
77pub enum CreateSubscriptionError {
78    Status400(crate::models::GenericError),
79    Status409(crate::models::GenericError),
80    Status429(crate::models::RateLimiterError),
81    UnknownValue(serde_json::Value),
82}
83
84/// struct for typed errors of method [`create_user`]
85#[derive(Debug, Clone, Serialize, Deserialize)]
86#[serde(untagged)]
87pub enum CreateUserError {
88    Status400(crate::models::GenericError),
89    Status409(crate::models::CreateUserConflictResponse),
90    Status429(crate::models::RateLimiterError),
91    UnknownValue(serde_json::Value),
92}
93
94/// struct for typed errors of method [`delete_alias`]
95#[derive(Debug, Clone, Serialize, Deserialize)]
96#[serde(untagged)]
97pub enum DeleteAliasError {
98    Status400(crate::models::GenericError),
99    Status409(crate::models::GenericError),
100    Status429(crate::models::RateLimiterError),
101    UnknownValue(serde_json::Value),
102}
103
104/// struct for typed errors of method [`delete_player`]
105#[derive(Debug, Clone, Serialize, Deserialize)]
106#[serde(untagged)]
107pub enum DeletePlayerError {
108    Status400(crate::models::GenericError),
109    Status404(crate::models::DeletePlayerNotFoundResponse),
110    Status429(crate::models::RateLimiterError),
111    UnknownValue(serde_json::Value),
112}
113
114/// struct for typed errors of method [`delete_segments`]
115#[derive(Debug, Clone, Serialize, Deserialize)]
116#[serde(untagged)]
117pub enum DeleteSegmentsError {
118    Status400(crate::models::GenericError),
119    Status404(crate::models::DeleteSegmentNotFoundResponse),
120    Status429(crate::models::RateLimiterError),
121    UnknownValue(serde_json::Value),
122}
123
124/// struct for typed errors of method [`delete_subscription`]
125#[derive(Debug, Clone, Serialize, Deserialize)]
126#[serde(untagged)]
127pub enum DeleteSubscriptionError {
128    Status400(crate::models::GenericError),
129    Status409(crate::models::GenericError),
130    Status429(crate::models::RateLimiterError),
131    UnknownValue(serde_json::Value),
132}
133
134/// struct for typed errors of method [`delete_user`]
135#[derive(Debug, Clone, Serialize, Deserialize)]
136#[serde(untagged)]
137pub enum DeleteUserError {
138    Status400(crate::models::GenericError),
139    Status409(crate::models::GenericError),
140    Status429(crate::models::RateLimiterError),
141    UnknownValue(serde_json::Value),
142}
143
144/// struct for typed errors of method [`end_live_activity`]
145#[derive(Debug, Clone, Serialize, Deserialize)]
146#[serde(untagged)]
147pub enum EndLiveActivityError {
148    Status400(crate::models::GenericError),
149    Status429(crate::models::RateLimiterError),
150    UnknownValue(serde_json::Value),
151}
152
153/// struct for typed errors of method [`export_events`]
154#[derive(Debug, Clone, Serialize, Deserialize)]
155#[serde(untagged)]
156pub enum ExportEventsError {
157    Status400(crate::models::GenericError),
158    Status404(crate::models::GenericError),
159    Status429(crate::models::RateLimiterError),
160    UnknownValue(serde_json::Value),
161}
162
163/// struct for typed errors of method [`export_players`]
164#[derive(Debug, Clone, Serialize, Deserialize)]
165#[serde(untagged)]
166pub enum ExportPlayersError {
167    Status400(crate::models::GenericError),
168    Status429(crate::models::RateLimiterError),
169    UnknownValue(serde_json::Value),
170}
171
172/// struct for typed errors of method [`fetch_aliases`]
173#[derive(Debug, Clone, Serialize, Deserialize)]
174#[serde(untagged)]
175pub enum FetchAliasesError {
176    Status400(crate::models::GenericError),
177    UnknownValue(serde_json::Value),
178}
179
180/// struct for typed errors of method [`fetch_user`]
181#[derive(Debug, Clone, Serialize, Deserialize)]
182#[serde(untagged)]
183pub enum FetchUserError {
184    Status400(crate::models::GenericError),
185    Status429(crate::models::RateLimiterError),
186    UnknownValue(serde_json::Value),
187}
188
189/// struct for typed errors of method [`fetch_user_identity`]
190#[derive(Debug, Clone, Serialize, Deserialize)]
191#[serde(untagged)]
192pub enum FetchUserIdentityError {
193    Status400(crate::models::GenericError),
194    Status429(crate::models::RateLimiterError),
195    UnknownValue(serde_json::Value),
196}
197
198/// struct for typed errors of method [`get_app`]
199#[derive(Debug, Clone, Serialize, Deserialize)]
200#[serde(untagged)]
201pub enum GetAppError {
202    Status400(crate::models::GenericError),
203    Status429(crate::models::RateLimiterError),
204    UnknownValue(serde_json::Value),
205}
206
207/// struct for typed errors of method [`get_apps`]
208#[derive(Debug, Clone, Serialize, Deserialize)]
209#[serde(untagged)]
210pub enum GetAppsError {
211    Status400(crate::models::GenericError),
212    Status429(crate::models::RateLimiterError),
213    UnknownValue(serde_json::Value),
214}
215
216/// struct for typed errors of method [`get_eligible_iams`]
217#[derive(Debug, Clone, Serialize, Deserialize)]
218#[serde(untagged)]
219pub enum GetEligibleIamsError {
220    Status400(crate::models::GenericError),
221    Status429(crate::models::RateLimiterError),
222    UnknownValue(serde_json::Value),
223}
224
225/// struct for typed errors of method [`get_notification`]
226#[derive(Debug, Clone, Serialize, Deserialize)]
227#[serde(untagged)]
228pub enum GetNotificationError {
229    Status400(crate::models::GenericError),
230    Status429(crate::models::RateLimiterError),
231    UnknownValue(serde_json::Value),
232}
233
234/// struct for typed errors of method [`get_notification_history`]
235#[derive(Debug, Clone, Serialize, Deserialize)]
236#[serde(untagged)]
237pub enum GetNotificationHistoryError {
238    Status400(crate::models::GenericError),
239    Status429(crate::models::RateLimiterError),
240    UnknownValue(serde_json::Value),
241}
242
243/// struct for typed errors of method [`get_notifications`]
244#[derive(Debug, Clone, Serialize, Deserialize)]
245#[serde(untagged)]
246pub enum GetNotificationsError {
247    Status400(crate::models::GenericError),
248    Status429(crate::models::RateLimiterError),
249    UnknownValue(serde_json::Value),
250}
251
252/// struct for typed errors of method [`get_outcomes`]
253#[derive(Debug, Clone, Serialize, Deserialize)]
254#[serde(untagged)]
255pub enum GetOutcomesError {
256    Status400(crate::models::GenericError),
257    Status429(crate::models::RateLimiterError),
258    UnknownValue(serde_json::Value),
259}
260
261/// struct for typed errors of method [`get_player`]
262#[derive(Debug, Clone, Serialize, Deserialize)]
263#[serde(untagged)]
264pub enum GetPlayerError {
265    Status400(crate::models::GenericError),
266    Status429(crate::models::RateLimiterError),
267    UnknownValue(serde_json::Value),
268}
269
270/// struct for typed errors of method [`get_players`]
271#[derive(Debug, Clone, Serialize, Deserialize)]
272#[serde(untagged)]
273pub enum GetPlayersError {
274    Status400(crate::models::GenericError),
275    Status429(crate::models::RateLimiterError),
276    UnknownValue(serde_json::Value),
277}
278
279/// struct for typed errors of method [`identify_user_by_alias`]
280#[derive(Debug, Clone, Serialize, Deserialize)]
281#[serde(untagged)]
282pub enum IdentifyUserByAliasError {
283    Status400(crate::models::GenericError),
284    Status409(crate::models::GenericError),
285    Status429(crate::models::RateLimiterError),
286    UnknownValue(serde_json::Value),
287}
288
289/// struct for typed errors of method [`identify_user_by_subscription_id`]
290#[derive(Debug, Clone, Serialize, Deserialize)]
291#[serde(untagged)]
292pub enum IdentifyUserBySubscriptionIdError {
293    Status400(crate::models::GenericError),
294    Status409(crate::models::GenericError),
295    Status429(crate::models::RateLimiterError),
296    UnknownValue(serde_json::Value),
297}
298
299/// struct for typed errors of method [`transfer_subscription`]
300#[derive(Debug, Clone, Serialize, Deserialize)]
301#[serde(untagged)]
302pub enum TransferSubscriptionError {
303    Status400(crate::models::GenericError),
304    Status409(crate::models::GenericError),
305    Status429(crate::models::RateLimiterError),
306    UnknownValue(serde_json::Value),
307}
308
309/// struct for typed errors of method [`update_app`]
310#[derive(Debug, Clone, Serialize, Deserialize)]
311#[serde(untagged)]
312pub enum UpdateAppError {
313    Status400(crate::models::GenericError),
314    Status429(crate::models::RateLimiterError),
315    UnknownValue(serde_json::Value),
316}
317
318/// struct for typed errors of method [`update_live_activity`]
319#[derive(Debug, Clone, Serialize, Deserialize)]
320#[serde(untagged)]
321pub enum UpdateLiveActivityError {
322    Status400(crate::models::GenericError),
323    Status429(crate::models::RateLimiterError),
324    UnknownValue(serde_json::Value),
325}
326
327/// struct for typed errors of method [`update_player`]
328#[derive(Debug, Clone, Serialize, Deserialize)]
329#[serde(untagged)]
330pub enum UpdatePlayerError {
331    Status400(crate::models::GenericError),
332    Status409(crate::models::GenericError),
333    Status429(crate::models::RateLimiterError),
334    UnknownValue(serde_json::Value),
335}
336
337/// struct for typed errors of method [`update_player_tags`]
338#[derive(Debug, Clone, Serialize, Deserialize)]
339#[serde(untagged)]
340pub enum UpdatePlayerTagsError {
341    Status400(crate::models::GenericError),
342    Status409(crate::models::GenericError),
343    Status429(crate::models::RateLimiterError),
344    UnknownValue(serde_json::Value),
345}
346
347/// struct for typed errors of method [`update_subscription`]
348#[derive(Debug, Clone, Serialize, Deserialize)]
349#[serde(untagged)]
350pub enum UpdateSubscriptionError {
351    Status400(crate::models::GenericError),
352    Status409(crate::models::GenericError),
353    Status429(crate::models::RateLimiterError),
354    UnknownValue(serde_json::Value),
355}
356
357/// struct for typed errors of method [`update_user`]
358#[derive(Debug, Clone, Serialize, Deserialize)]
359#[serde(untagged)]
360pub enum UpdateUserError {
361    Status400(crate::models::GenericError),
362    Status409(crate::models::GenericError),
363    Status429(crate::models::RateLimiterError),
364    UnknownValue(serde_json::Value),
365}
366
367
368/// Starts a Live Activity
369pub async fn begin_live_activity(configuration: &configuration::Configuration, app_id: &str, activity_id: &str, begin_live_activity_request: crate::models::BeginLiveActivityRequest) -> Result<(), Error<BeginLiveActivityError>> {
370    let configuration = configuration;
371
372    let client = &configuration.client;
373
374    let uri_str = format!("{}/apps/{app_id}/live_activities/{activity_id}/token", configuration.base_path, app_id=crate::apis::urlencode(app_id), activity_id=crate::apis::urlencode(activity_id));
375    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
376
377    if let Some(ref user_agent) = configuration.user_agent {
378        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
379    }
380
381    // Adds a telemetry header
382    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
383
384    if let Some(ref token) = configuration.app_key_token {
385        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
386    }
387    req_builder = req_builder.json(&begin_live_activity_request);
388
389    let req = req_builder.build()?;
390    let resp = client.execute(req).await?;
391
392    let status = resp.status();
393    let content = resp.text().await?;
394
395    if !status.is_client_error() && !status.is_server_error() {
396        Ok(())
397    } else {
398        let entity: Option<BeginLiveActivityError> = serde_json::from_str(&content).ok();
399        let error = ResponseContent { status: status, content: content, entity: entity };
400        Err(Error::ResponseError(error))
401    }
402}
403
404/// Used to stop a scheduled or currently outgoing notification
405pub async fn cancel_notification(configuration: &configuration::Configuration, app_id: &str, notification_id: &str) -> Result<crate::models::CancelNotificationSuccessResponse, Error<CancelNotificationError>> {
406    let configuration = configuration;
407
408    let client = &configuration.client;
409
410    let uri_str = format!("{}/notifications/{notification_id}", configuration.base_path, notification_id=crate::apis::urlencode(notification_id));
411    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
412
413    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
414    if let Some(ref user_agent) = configuration.user_agent {
415        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
416    }
417
418    // Adds a telemetry header
419    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
420
421    if let Some(ref token) = configuration.app_key_token {
422        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
423    }
424
425    let req = req_builder.build()?;
426    let resp = client.execute(req).await?;
427
428    let status = resp.status();
429    let content = resp.text().await?;
430
431    if !status.is_client_error() && !status.is_server_error() {
432        serde_json::from_str(&content).map_err(Error::from)
433    } else {
434        let entity: Option<CancelNotificationError> = serde_json::from_str(&content).ok();
435        let error = ResponseContent { status: status, content: content, entity: entity };
436        Err(Error::ResponseError(error))
437    }
438}
439
440/// Creates a new OneSignal app
441pub async fn create_app(configuration: &configuration::Configuration, app: crate::models::App) -> Result<crate::models::App, Error<CreateAppError>> {
442    let configuration = configuration;
443
444    let client = &configuration.client;
445
446    let uri_str = format!("{}/apps", configuration.base_path);
447    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
448
449    if let Some(ref user_agent) = configuration.user_agent {
450        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
451    }
452
453    // Adds a telemetry header
454    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
455
456    if let Some(ref token) = configuration.user_key_token {
457        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
458    }
459    req_builder = req_builder.json(&app);
460
461    let req = req_builder.build()?;
462    let resp = client.execute(req).await?;
463
464    let status = resp.status();
465    let content = resp.text().await?;
466
467    if !status.is_client_error() && !status.is_server_error() {
468        serde_json::from_str(&content).map_err(Error::from)
469    } else {
470        let entity: Option<CreateAppError> = serde_json::from_str(&content).ok();
471        let error = ResponseContent { status: status, content: content, entity: entity };
472        Err(Error::ResponseError(error))
473    }
474}
475
476/// Sends notifications to your users 
477pub async fn create_notification(configuration: &configuration::Configuration, notification: crate::models::Notification) -> Result<crate::models::CreateNotificationSuccessResponse, Error<CreateNotificationError>> {
478    let configuration = configuration;
479
480    let client = &configuration.client;
481
482    let uri_str = format!("{}/notifications", configuration.base_path);
483    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
484
485    if let Some(ref user_agent) = configuration.user_agent {
486        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
487    }
488
489    // Adds a telemetry header
490    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
491
492    if let Some(ref token) = configuration.app_key_token {
493        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
494    }
495    req_builder = req_builder.json(&notification);
496
497    let req = req_builder.build()?;
498    let resp = client.execute(req).await?;
499
500    let status = resp.status();
501    let content = resp.text().await?;
502
503    if !status.is_client_error() && !status.is_server_error() {
504        serde_json::from_str(&content).map_err(Error::from)
505    } else {
506        let entity: Option<CreateNotificationError> = serde_json::from_str(&content).ok();
507        let error = ResponseContent { status: status, content: content, entity: entity };
508        Err(Error::ResponseError(error))
509    }
510}
511
512/// Register a new device to one of your OneSignal apps &#x1F6A7; Don't use this This API endpoint is designed to be used from our open source Mobile and Web Push SDKs. It is not designed for developers to use it directly, unless instructed to do so by OneSignal support. If you use this method instead of our SDKs, many OneSignal features such as conversion tracking, timezone tracking, language detection, and rich-push won't work out of the box. It will also make it harder to identify possible setup issues. This method is used to register a new device with OneSignal. If a device is already registered with the specified identifier, then this will update the existing device record instead of creating a new one. The returned player is a player / user ID. Use the returned ID to send push notifications to this specific user later, or to include this player when sending to a set of users. &#x1F6A7; iOS Must set test_type to 1 when building your iOS app as development. Omit this field in your production app builds. 
513pub async fn create_player(configuration: &configuration::Configuration, player: crate::models::Player) -> Result<crate::models::CreatePlayerSuccessResponse, Error<CreatePlayerError>> {
514    let configuration = configuration;
515
516    let client = &configuration.client;
517
518    let uri_str = format!("{}/players", configuration.base_path);
519    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
520
521    if let Some(ref user_agent) = configuration.user_agent {
522        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
523    }
524
525    // Adds a telemetry header
526    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
527
528    if let Some(ref token) = configuration.app_key_token {
529        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
530    }
531    req_builder = req_builder.json(&player);
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<CreatePlayerError> = 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/// Create segments 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 Segments endpoint and re-create it with this endpoint to edit. 
549pub async fn create_segments(configuration: &configuration::Configuration, app_id: &str, segment: Option<crate::models::Segment>) -> Result<crate::models::CreateSegmentSuccessResponse, Error<CreateSegmentsError>> {
550    let configuration = configuration;
551
552    let client = &configuration.client;
553
554    let uri_str = format!("{}/apps/{app_id}/segments", configuration.base_path, app_id=crate::apis::urlencode(app_id));
555    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
556
557    if let Some(ref user_agent) = configuration.user_agent {
558        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
559    }
560
561    // Adds a telemetry header
562    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
563
564    if let Some(ref token) = configuration.app_key_token {
565        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
566    }
567    req_builder = req_builder.json(&segment);
568
569    let req = req_builder.build()?;
570    let resp = client.execute(req).await?;
571
572    let status = resp.status();
573    let content = resp.text().await?;
574
575    if !status.is_client_error() && !status.is_server_error() {
576        serde_json::from_str(&content).map_err(Error::from)
577    } else {
578        let entity: Option<CreateSegmentsError> = serde_json::from_str(&content).ok();
579        let error = ResponseContent { status: status, content: content, entity: entity };
580        Err(Error::ResponseError(error))
581    }
582}
583
584/// Creates a new Subscription under the User provided. Useful to add email addresses and SMS numbers to the User.
585pub async fn create_subscription(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str, create_subscription_request_body: crate::models::CreateSubscriptionRequestBody) -> Result<crate::models::InlineResponse201, Error<CreateSubscriptionError>> {
586    let configuration = configuration;
587
588    let client = &configuration.client;
589
590    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));
591    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
592
593    if let Some(ref user_agent) = configuration.user_agent {
594        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
595    }
596
597    // Adds a telemetry header
598    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
599
600    if let Some(ref token) = configuration.app_key_token {
601        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
602    }
603    req_builder = req_builder.json(&create_subscription_request_body);
604
605    let req = req_builder.build()?;
606    let resp = client.execute(req).await?;
607
608    let status = resp.status();
609    let content = resp.text().await?;
610
611    if !status.is_client_error() && !status.is_server_error() {
612        serde_json::from_str(&content).map_err(Error::from)
613    } else {
614        let entity: Option<CreateSubscriptionError> = serde_json::from_str(&content).ok();
615        let error = ResponseContent { status: status, content: content, entity: entity };
616        Err(Error::ResponseError(error))
617    }
618}
619
620/// 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.
621pub async fn create_user(configuration: &configuration::Configuration, app_id: &str, user: crate::models::User) -> Result<crate::models::User, Error<CreateUserError>> {
622    let configuration = configuration;
623
624    let client = &configuration.client;
625
626    let uri_str = format!("{}/apps/{app_id}/users", configuration.base_path, app_id=crate::apis::urlencode(app_id));
627    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
628
629    if let Some(ref user_agent) = configuration.user_agent {
630        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
631    }
632
633    // Adds a telemetry header
634    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
635
636    if let Some(ref token) = configuration.app_key_token {
637        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
638    }
639    req_builder = req_builder.json(&user);
640
641    let req = req_builder.build()?;
642    let resp = client.execute(req).await?;
643
644    let status = resp.status();
645    let content = resp.text().await?;
646
647    if !status.is_client_error() && !status.is_server_error() {
648        serde_json::from_str(&content).map_err(Error::from)
649    } else {
650        let entity: Option<CreateUserError> = serde_json::from_str(&content).ok();
651        let error = ResponseContent { status: status, content: content, entity: entity };
652        Err(Error::ResponseError(error))
653    }
654}
655
656/// Deletes an alias by alias label
657pub async fn delete_alias(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str, alias_label_to_delete: &str) -> Result<crate::models::InlineResponse200, Error<DeleteAliasError>> {
658    let configuration = configuration;
659
660    let client = &configuration.client;
661
662    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));
663    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
664
665    if let Some(ref user_agent) = configuration.user_agent {
666        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
667    }
668
669    // Adds a telemetry header
670    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
671
672    if let Some(ref token) = configuration.app_key_token {
673        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
674    }
675
676    let req = req_builder.build()?;
677    let resp = client.execute(req).await?;
678
679    let status = resp.status();
680    let content = resp.text().await?;
681
682    if !status.is_client_error() && !status.is_server_error() {
683        serde_json::from_str(&content).map_err(Error::from)
684    } else {
685        let entity: Option<DeleteAliasError> = serde_json::from_str(&content).ok();
686        let error = ResponseContent { status: status, content: content, entity: entity };
687        Err(Error::ResponseError(error))
688    }
689}
690
691/// Delete player - Required: Used to delete a single, specific Player ID record from a specific OneSignal app. 
692pub async fn delete_player(configuration: &configuration::Configuration, app_id: &str, player_id: &str) -> Result<crate::models::DeletePlayerSuccessResponse, Error<DeletePlayerError>> {
693    let configuration = configuration;
694
695    let client = &configuration.client;
696
697    let uri_str = format!("{}/players/{player_id}", configuration.base_path, player_id=crate::apis::urlencode(player_id));
698    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
699
700    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
701    if let Some(ref user_agent) = configuration.user_agent {
702        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
703    }
704
705    // Adds a telemetry header
706    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
707
708    if let Some(ref token) = configuration.app_key_token {
709        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
710    }
711
712    let req = req_builder.build()?;
713    let resp = client.execute(req).await?;
714
715    let status = resp.status();
716    let content = resp.text().await?;
717
718    if !status.is_client_error() && !status.is_server_error() {
719        serde_json::from_str(&content).map_err(Error::from)
720    } else {
721        let entity: Option<DeletePlayerError> = serde_json::from_str(&content).ok();
722        let error = ResponseContent { status: status, content: content, entity: entity };
723        Err(Error::ResponseError(error))
724    }
725}
726
727/// Delete segments (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. 
728pub async fn delete_segments(configuration: &configuration::Configuration, app_id: &str, segment_id: &str) -> Result<crate::models::DeleteSegmentSuccessResponse, Error<DeleteSegmentsError>> {
729    let configuration = configuration;
730
731    let client = &configuration.client;
732
733    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));
734    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
735
736    if let Some(ref user_agent) = configuration.user_agent {
737        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
738    }
739
740    // Adds a telemetry header
741    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
742
743    if let Some(ref token) = configuration.app_key_token {
744        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
745    }
746
747    let req = req_builder.build()?;
748    let resp = client.execute(req).await?;
749
750    let status = resp.status();
751    let content = resp.text().await?;
752
753    if !status.is_client_error() && !status.is_server_error() {
754        serde_json::from_str(&content).map_err(Error::from)
755    } else {
756        let entity: Option<DeleteSegmentsError> = serde_json::from_str(&content).ok();
757        let error = ResponseContent { status: status, content: content, entity: entity };
758        Err(Error::ResponseError(error))
759    }
760}
761
762/// Deletes the Subscription.
763pub async fn delete_subscription(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str) -> Result<(), Error<DeleteSubscriptionError>> {
764    let configuration = configuration;
765
766    let client = &configuration.client;
767
768    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));
769    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
770
771    if let Some(ref user_agent) = configuration.user_agent {
772        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
773    }
774
775    // Adds a telemetry header
776    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
777
778    if let Some(ref token) = configuration.app_key_token {
779        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
780    }
781
782    let req = req_builder.build()?;
783    let resp = client.execute(req).await?;
784
785    let status = resp.status();
786    let content = resp.text().await?;
787
788    if !status.is_client_error() && !status.is_server_error() {
789        Ok(())
790    } else {
791        let entity: Option<DeleteSubscriptionError> = serde_json::from_str(&content).ok();
792        let error = ResponseContent { status: status, content: content, entity: entity };
793        Err(Error::ResponseError(error))
794    }
795}
796
797/// Removes the User identified by (:alias_label, :alias_id), and all Subscriptions and Aliases
798pub async fn delete_user(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str) -> Result<(), Error<DeleteUserError>> {
799    let configuration = configuration;
800
801    let client = &configuration.client;
802
803    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));
804    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
805
806    if let Some(ref user_agent) = configuration.user_agent {
807        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
808    }
809
810    // Adds a telemetry header
811    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
812
813    if let Some(ref token) = configuration.app_key_token {
814        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
815    }
816
817    let req = req_builder.build()?;
818    let resp = client.execute(req).await?;
819
820    let status = resp.status();
821    let content = resp.text().await?;
822
823    if !status.is_client_error() && !status.is_server_error() {
824        Ok(())
825    } else {
826        let entity: Option<DeleteUserError> = serde_json::from_str(&content).ok();
827        let error = ResponseContent { status: status, content: content, entity: entity };
828        Err(Error::ResponseError(error))
829    }
830}
831
832/// Stops a Live Activity
833pub async fn end_live_activity(configuration: &configuration::Configuration, app_id: &str, activity_id: &str, subscription_id: &str) -> Result<(), Error<EndLiveActivityError>> {
834    let configuration = configuration;
835
836    let client = &configuration.client;
837
838    let uri_str = format!("{}/apps/{app_id}/live_activities/{activity_id}/token/{subscription_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id), activity_id=crate::apis::urlencode(activity_id), subscription_id=crate::apis::urlencode(subscription_id));
839    let mut req_builder = client.request(reqwest::Method::DELETE, uri_str.as_str());
840
841    if let Some(ref user_agent) = configuration.user_agent {
842        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
843    }
844
845    // Adds a telemetry header
846    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
847
848    if let Some(ref token) = configuration.app_key_token {
849        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
850    }
851
852    let req = req_builder.build()?;
853    let resp = client.execute(req).await?;
854
855    let status = resp.status();
856    let content = resp.text().await?;
857
858    if !status.is_client_error() && !status.is_server_error() {
859        Ok(())
860    } else {
861        let entity: Option<EndLiveActivityError> = serde_json::from_str(&content).ok();
862        let error = ResponseContent { status: status, content: content, entity: entity };
863        Err(Error::ResponseError(error))
864    }
865}
866
867/// 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.
868pub async fn export_events(configuration: &configuration::Configuration, notification_id: &str, app_id: &str) -> Result<crate::models::ExportEventsSuccessResponse, Error<ExportEventsError>> {
869    let configuration = configuration;
870
871    let client = &configuration.client;
872
873    let uri_str = format!("{}/notifications/{notification_id}/export_events?app_id={app_id}", configuration.base_path, notification_id=crate::apis::urlencode(notification_id));
874    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
875
876    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
877    if let Some(ref user_agent) = configuration.user_agent {
878        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
879    }
880
881    // Adds a telemetry header
882    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
883
884    if let Some(ref token) = configuration.app_key_token {
885        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
886    }
887
888    let req = req_builder.build()?;
889    let resp = client.execute(req).await?;
890
891    let status = resp.status();
892    let content = resp.text().await?;
893
894    if !status.is_client_error() && !status.is_server_error() {
895        serde_json::from_str(&content).map_err(Error::from)
896    } else {
897        let entity: Option<ExportEventsError> = serde_json::from_str(&content).ok();
898        let error = ResponseContent { status: status, content: content, entity: entity };
899        Err(Error::ResponseError(error))
900    }
901}
902
903/// 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. | 
904pub async fn export_players(configuration: &configuration::Configuration, app_id: &str, export_players_request_body: Option<crate::models::ExportPlayersRequestBody>) -> Result<crate::models::ExportPlayersSuccessResponse, Error<ExportPlayersError>> {
905    let configuration = configuration;
906
907    let client = &configuration.client;
908
909    let uri_str = format!("{}/players/csv_export?app_id={app_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id));
910    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
911
912    if let Some(ref user_agent) = configuration.user_agent {
913        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
914    }
915
916    // Adds a telemetry header
917    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
918
919    if let Some(ref token) = configuration.app_key_token {
920        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
921    }
922    req_builder = req_builder.json(&export_players_request_body);
923
924    let req = req_builder.build()?;
925    let resp = client.execute(req).await?;
926
927    let status = resp.status();
928    let content = resp.text().await?;
929
930    if !status.is_client_error() && !status.is_server_error() {
931        serde_json::from_str(&content).map_err(Error::from)
932    } else {
933        let entity: Option<ExportPlayersError> = serde_json::from_str(&content).ok();
934        let error = ResponseContent { status: status, content: content, entity: entity };
935        Err(Error::ResponseError(error))
936    }
937}
938
939/// Lists all Aliases for the User identified by :subscription_id.
940pub async fn fetch_aliases(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str) -> Result<crate::models::UserIdentityResponse, Error<FetchAliasesError>> {
941    let configuration = configuration;
942
943    let client = &configuration.client;
944
945    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));
946    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
947
948    if let Some(ref user_agent) = configuration.user_agent {
949        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
950    }
951
952    // Adds a telemetry header
953    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
954
955    if let Some(ref token) = configuration.app_key_token {
956        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
957    }
958
959    let req = req_builder.build()?;
960    let resp = client.execute(req).await?;
961
962    let status = resp.status();
963    let content = resp.text().await?;
964
965    if !status.is_client_error() && !status.is_server_error() {
966        serde_json::from_str(&content).map_err(Error::from)
967    } else {
968        let entity: Option<FetchAliasesError> = serde_json::from_str(&content).ok();
969        let error = ResponseContent { status: status, content: content, entity: entity };
970        Err(Error::ResponseError(error))
971    }
972}
973
974/// Returns the User’s properties, Aliases, and Subscriptions.
975pub async fn fetch_user(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str) -> Result<crate::models::User, Error<FetchUserError>> {
976    let configuration = configuration;
977
978    let client = &configuration.client;
979
980    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));
981    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
982
983    if let Some(ref user_agent) = configuration.user_agent {
984        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
985    }
986
987    // Adds a telemetry header
988    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
989
990    if let Some(ref token) = configuration.app_key_token {
991        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
992    }
993
994    let req = req_builder.build()?;
995    let resp = client.execute(req).await?;
996
997    let status = resp.status();
998    let content = resp.text().await?;
999
1000    if !status.is_client_error() && !status.is_server_error() {
1001        serde_json::from_str(&content).map_err(Error::from)
1002    } else {
1003        let entity: Option<FetchUserError> = serde_json::from_str(&content).ok();
1004        let error = ResponseContent { status: status, content: content, entity: entity };
1005        Err(Error::ResponseError(error))
1006    }
1007}
1008
1009/// Lists all Aliases for the User identified by (:alias_label, :alias_id).
1010pub async fn fetch_user_identity(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str) -> Result<crate::models::InlineResponse200, Error<FetchUserIdentityError>> {
1011    let configuration = configuration;
1012
1013    let client = &configuration.client;
1014
1015    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));
1016    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1017
1018    if let Some(ref user_agent) = configuration.user_agent {
1019        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1020    }
1021
1022    // Adds a telemetry header
1023    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1024
1025    if let Some(ref token) = configuration.app_key_token {
1026        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1027    }
1028
1029    let req = req_builder.build()?;
1030    let resp = client.execute(req).await?;
1031
1032    let status = resp.status();
1033    let content = resp.text().await?;
1034
1035    if !status.is_client_error() && !status.is_server_error() {
1036        serde_json::from_str(&content).map_err(Error::from)
1037    } else {
1038        let entity: Option<FetchUserIdentityError> = serde_json::from_str(&content).ok();
1039        let error = ResponseContent { status: status, content: content, entity: entity };
1040        Err(Error::ResponseError(error))
1041    }
1042}
1043
1044/// View the details of a single OneSignal app
1045pub async fn get_app(configuration: &configuration::Configuration, app_id: &str) -> Result<crate::models::App, Error<GetAppError>> {
1046    let configuration = configuration;
1047
1048    let client = &configuration.client;
1049
1050    let uri_str = format!("{}/apps/{app_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id));
1051    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1052
1053    if let Some(ref user_agent) = configuration.user_agent {
1054        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1055    }
1056
1057    // Adds a telemetry header
1058    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1059
1060    if let Some(ref token) = configuration.user_key_token {
1061        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1062    }
1063
1064    let req = req_builder.build()?;
1065    let resp = client.execute(req).await?;
1066
1067    let status = resp.status();
1068    let content = resp.text().await?;
1069
1070    if !status.is_client_error() && !status.is_server_error() {
1071        serde_json::from_str(&content).map_err(Error::from)
1072    } else {
1073        let entity: Option<GetAppError> = serde_json::from_str(&content).ok();
1074        let error = ResponseContent { status: status, content: content, entity: entity };
1075        Err(Error::ResponseError(error))
1076    }
1077}
1078
1079/// View the details of all of your current OneSignal apps
1080pub async fn get_apps(configuration: &configuration::Configuration, ) -> Result<Vec<crate::models::App>, Error<GetAppsError>> {
1081    let configuration = configuration;
1082
1083    let client = &configuration.client;
1084
1085    let uri_str = format!("{}/apps", configuration.base_path);
1086    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1087
1088    if let Some(ref user_agent) = configuration.user_agent {
1089        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1090    }
1091
1092    // Adds a telemetry header
1093    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1094
1095    if let Some(ref token) = configuration.user_key_token {
1096        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1097    }
1098
1099    let req = req_builder.build()?;
1100    let resp = client.execute(req).await?;
1101
1102    let status = resp.status();
1103    let content = resp.text().await?;
1104
1105    if !status.is_client_error() && !status.is_server_error() {
1106        serde_json::from_str(&content).map_err(Error::from)
1107    } else {
1108        let entity: Option<GetAppsError> = serde_json::from_str(&content).ok();
1109        let error = ResponseContent { status: status, content: content, entity: entity };
1110        Err(Error::ResponseError(error))
1111    }
1112}
1113
1114/// Manifest of In-App Messages the Subscription is eligible to display by the SDK.
1115pub async fn get_eligible_iams(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str) -> Result<crate::models::InlineResponse2003, Error<GetEligibleIamsError>> {
1116    let configuration = configuration;
1117
1118    let client = &configuration.client;
1119
1120    let uri_str = format!("{}/apps/{app_id}/subscriptions/{subscription_id}/iams", configuration.base_path, app_id=crate::apis::urlencode(app_id), subscription_id=crate::apis::urlencode(subscription_id));
1121    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1122
1123    if let Some(ref user_agent) = configuration.user_agent {
1124        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1125    }
1126
1127    // Adds a telemetry header
1128    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1129
1130    if let Some(ref token) = configuration.app_key_token {
1131        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1132    }
1133
1134    let req = req_builder.build()?;
1135    let resp = client.execute(req).await?;
1136
1137    let status = resp.status();
1138    let content = resp.text().await?;
1139
1140    if !status.is_client_error() && !status.is_server_error() {
1141        serde_json::from_str(&content).map_err(Error::from)
1142    } else {
1143        let entity: Option<GetEligibleIamsError> = serde_json::from_str(&content).ok();
1144        let error = ResponseContent { status: status, content: content, entity: entity };
1145        Err(Error::ResponseError(error))
1146    }
1147}
1148
1149/// View the details of a single notification and outcomes associated with it
1150pub async fn get_notification(configuration: &configuration::Configuration, app_id: &str, notification_id: &str) -> Result<crate::models::NotificationWithMeta, Error<GetNotificationError>> {
1151    let configuration = configuration;
1152
1153    let client = &configuration.client;
1154
1155    let uri_str = format!("{}/notifications/{notification_id}", configuration.base_path, notification_id=crate::apis::urlencode(notification_id));
1156    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1157
1158    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
1159    if let Some(ref user_agent) = configuration.user_agent {
1160        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1161    }
1162
1163    // Adds a telemetry header
1164    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1165
1166    if let Some(ref token) = configuration.app_key_token {
1167        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1168    }
1169
1170    let req = req_builder.build()?;
1171    let resp = client.execute(req).await?;
1172
1173    let status = resp.status();
1174    let content = resp.text().await?;
1175
1176    if !status.is_client_error() && !status.is_server_error() {
1177        serde_json::from_str(&content).map_err(Error::from)
1178    } else {
1179        let entity: Option<GetNotificationError> = serde_json::from_str(&content).ok();
1180        let error = ResponseContent { status: status, content: content, entity: entity };
1181        Err(Error::ResponseError(error))
1182    }
1183}
1184
1185/// -> 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.
1186pub async fn get_notification_history(configuration: &configuration::Configuration, notification_id: &str, get_notification_request_body: crate::models::GetNotificationRequestBody) -> Result<crate::models::NotificationHistorySuccessResponse, Error<GetNotificationHistoryError>> {
1187    let configuration = configuration;
1188
1189    let client = &configuration.client;
1190
1191    let uri_str = format!("{}/notifications/{notification_id}/history", configuration.base_path, notification_id=crate::apis::urlencode(notification_id));
1192    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
1193
1194    if let Some(ref user_agent) = configuration.user_agent {
1195        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1196    }
1197
1198    // Adds a telemetry header
1199    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1200
1201    if let Some(ref token) = configuration.app_key_token {
1202        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1203    }
1204    req_builder = req_builder.json(&get_notification_request_body);
1205
1206    let req = req_builder.build()?;
1207    let resp = client.execute(req).await?;
1208
1209    let status = resp.status();
1210    let content = resp.text().await?;
1211
1212    if !status.is_client_error() && !status.is_server_error() {
1213        serde_json::from_str(&content).map_err(Error::from)
1214    } else {
1215        let entity: Option<GetNotificationHistoryError> = serde_json::from_str(&content).ok();
1216        let error = ResponseContent { status: status, content: content, entity: entity };
1217        Err(Error::ResponseError(error))
1218    }
1219}
1220
1221/// View the details of multiple notifications
1222pub 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>> {
1223    let configuration = configuration;
1224
1225    let client = &configuration.client;
1226
1227    let uri_str = format!("{}/notifications", configuration.base_path);
1228    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1229
1230    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
1231    if let Some(ref str) = limit {
1232        req_builder = req_builder.query(&[("limit", &str.to_string())]);
1233    }
1234    if let Some(ref str) = offset {
1235        req_builder = req_builder.query(&[("offset", &str.to_string())]);
1236    }
1237    if let Some(ref str) = kind {
1238        req_builder = req_builder.query(&[("kind", &str.to_string())]);
1239    }
1240    if let Some(ref user_agent) = configuration.user_agent {
1241        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1242    }
1243
1244    // Adds a telemetry header
1245    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1246
1247    if let Some(ref token) = configuration.app_key_token {
1248        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1249    }
1250
1251    let req = req_builder.build()?;
1252    let resp = client.execute(req).await?;
1253
1254    let status = resp.status();
1255    let content = resp.text().await?;
1256
1257    if !status.is_client_error() && !status.is_server_error() {
1258        serde_json::from_str(&content).map_err(Error::from)
1259    } else {
1260        let entity: Option<GetNotificationsError> = serde_json::from_str(&content).ok();
1261        let error = ResponseContent { status: status, content: content, entity: entity };
1262        Err(Error::ResponseError(error))
1263    }
1264}
1265
1266/// 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. 
1267pub 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>> {
1268    let configuration = configuration;
1269
1270    let client = &configuration.client;
1271
1272    let uri_str = format!("{}/apps/{app_id}/outcomes", configuration.base_path, app_id=crate::apis::urlencode(app_id));
1273    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1274
1275    req_builder = req_builder.query(&[("outcome_names", &outcome_names.to_string())]);
1276    if let Some(ref str) = outcome_names2 {
1277        req_builder = req_builder.query(&[("outcome_names[]", &str.to_string())]);
1278    }
1279    if let Some(ref str) = outcome_time_range {
1280        req_builder = req_builder.query(&[("outcome_time_range", &str.to_string())]);
1281    }
1282    if let Some(ref str) = outcome_platforms {
1283        req_builder = req_builder.query(&[("outcome_platforms", &str.to_string())]);
1284    }
1285    if let Some(ref str) = outcome_attribution {
1286        req_builder = req_builder.query(&[("outcome_attribution", &str.to_string())]);
1287    }
1288    if let Some(ref user_agent) = configuration.user_agent {
1289        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1290    }
1291
1292    // Adds a telemetry header
1293    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1294
1295    if let Some(ref token) = configuration.app_key_token {
1296        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1297    }
1298
1299    let req = req_builder.build()?;
1300    let resp = client.execute(req).await?;
1301
1302    let status = resp.status();
1303    let content = resp.text().await?;
1304
1305    if !status.is_client_error() && !status.is_server_error() {
1306        serde_json::from_str(&content).map_err(Error::from)
1307    } else {
1308        let entity: Option<GetOutcomesError> = serde_json::from_str(&content).ok();
1309        let error = ResponseContent { status: status, content: content, entity: entity };
1310        Err(Error::ResponseError(error))
1311    }
1312}
1313
1314/// View the details of an existing device in one of your OneSignal apps
1315pub async fn get_player(configuration: &configuration::Configuration, app_id: &str, player_id: &str, email_auth_hash: Option<&str>) -> Result<crate::models::Player, Error<GetPlayerError>> {
1316    let configuration = configuration;
1317
1318    let client = &configuration.client;
1319
1320    let uri_str = format!("{}/players/{player_id}", configuration.base_path, player_id=crate::apis::urlencode(player_id));
1321    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1322
1323    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
1324    if let Some(ref str) = email_auth_hash {
1325        req_builder = req_builder.query(&[("email_auth_hash", &str.to_string())]);
1326    }
1327    if let Some(ref user_agent) = configuration.user_agent {
1328        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1329    }
1330
1331    // Adds a telemetry header
1332    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1333
1334    if let Some(ref token) = configuration.app_key_token {
1335        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1336    }
1337
1338    let req = req_builder.build()?;
1339    let resp = client.execute(req).await?;
1340
1341    let status = resp.status();
1342    let content = resp.text().await?;
1343
1344    if !status.is_client_error() && !status.is_server_error() {
1345        serde_json::from_str(&content).map_err(Error::from)
1346    } else {
1347        let entity: Option<GetPlayerError> = serde_json::from_str(&content).ok();
1348        let error = ResponseContent { status: status, content: content, entity: entity };
1349        Err(Error::ResponseError(error))
1350    }
1351}
1352
1353/// View the details of multiple devices in one of your OneSignal apps Unavailable for Apps Over 80,000 Users For performance reasons, this method is not available for larger apps. Larger apps should use the CSV export API endpoint, which is much more performant. 
1354pub async fn get_players(configuration: &configuration::Configuration, app_id: &str, limit: Option<i32>, offset: Option<i32>) -> Result<crate::models::PlayerSlice, Error<GetPlayersError>> {
1355    let configuration = configuration;
1356
1357    let client = &configuration.client;
1358
1359    let uri_str = format!("{}/players", configuration.base_path);
1360    let mut req_builder = client.request(reqwest::Method::GET, uri_str.as_str());
1361
1362    req_builder = req_builder.query(&[("app_id", &app_id.to_string())]);
1363    if let Some(ref str) = limit {
1364        req_builder = req_builder.query(&[("limit", &str.to_string())]);
1365    }
1366    if let Some(ref str) = offset {
1367        req_builder = req_builder.query(&[("offset", &str.to_string())]);
1368    }
1369    if let Some(ref user_agent) = configuration.user_agent {
1370        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1371    }
1372
1373    // Adds a telemetry header
1374    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1375
1376    if let Some(ref token) = configuration.app_key_token {
1377        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1378    }
1379
1380    let req = req_builder.build()?;
1381    let resp = client.execute(req).await?;
1382
1383    let status = resp.status();
1384    let content = resp.text().await?;
1385
1386    if !status.is_client_error() && !status.is_server_error() {
1387        serde_json::from_str(&content).map_err(Error::from)
1388    } else {
1389        let entity: Option<GetPlayersError> = serde_json::from_str(&content).ok();
1390        let error = ResponseContent { status: status, content: content, entity: entity };
1391        Err(Error::ResponseError(error))
1392    }
1393}
1394
1395/// Upserts one or more Aliases to an existing User identified by (:alias_label, :alias_id).
1396pub async fn identify_user_by_alias(configuration: &configuration::Configuration, app_id: &str, alias_label: &str, alias_id: &str, user_identity_request_body: crate::models::UserIdentityRequestBody) -> Result<crate::models::InlineResponse200, Error<IdentifyUserByAliasError>> {
1397    let configuration = configuration;
1398
1399    let client = &configuration.client;
1400
1401    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));
1402    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
1403
1404    if let Some(ref user_agent) = configuration.user_agent {
1405        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1406    }
1407
1408    // Adds a telemetry header
1409    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1410
1411    if let Some(ref token) = configuration.app_key_token {
1412        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1413    }
1414    req_builder = req_builder.json(&user_identity_request_body);
1415
1416    let req = req_builder.build()?;
1417    let resp = client.execute(req).await?;
1418
1419    let status = resp.status();
1420    let content = resp.text().await?;
1421
1422    if !status.is_client_error() && !status.is_server_error() {
1423        serde_json::from_str(&content).map_err(Error::from)
1424    } else {
1425        let entity: Option<IdentifyUserByAliasError> = serde_json::from_str(&content).ok();
1426        let error = ResponseContent { status: status, content: content, entity: entity };
1427        Err(Error::ResponseError(error))
1428    }
1429}
1430
1431/// Upserts one or more Aliases for the User identified by :subscription_id.
1432pub async fn identify_user_by_subscription_id(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str, user_identity_request_body: crate::models::UserIdentityRequestBody) -> Result<crate::models::UserIdentityResponse, Error<IdentifyUserBySubscriptionIdError>> {
1433    let configuration = configuration;
1434
1435    let client = &configuration.client;
1436
1437    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));
1438    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
1439
1440    if let Some(ref user_agent) = configuration.user_agent {
1441        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1442    }
1443
1444    // Adds a telemetry header
1445    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1446
1447    if let Some(ref token) = configuration.app_key_token {
1448        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1449    }
1450    req_builder = req_builder.json(&user_identity_request_body);
1451
1452    let req = req_builder.build()?;
1453    let resp = client.execute(req).await?;
1454
1455    let status = resp.status();
1456    let content = resp.text().await?;
1457
1458    if !status.is_client_error() && !status.is_server_error() {
1459        serde_json::from_str(&content).map_err(Error::from)
1460    } else {
1461        let entity: Option<IdentifyUserBySubscriptionIdError> = serde_json::from_str(&content).ok();
1462        let error = ResponseContent { status: status, content: content, entity: entity };
1463        Err(Error::ResponseError(error))
1464    }
1465}
1466
1467/// Transfers this Subscription to the User identified by the identity in the payload.
1468pub async fn transfer_subscription(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str, transfer_subscription_request_body: crate::models::TransferSubscriptionRequestBody) -> Result<crate::models::UserIdentityResponse, Error<TransferSubscriptionError>> {
1469    let configuration = configuration;
1470
1471    let client = &configuration.client;
1472
1473    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));
1474    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
1475
1476    if let Some(ref user_agent) = configuration.user_agent {
1477        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1478    }
1479
1480    // Adds a telemetry header
1481    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1482
1483    if let Some(ref token) = configuration.app_key_token {
1484        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1485    }
1486    req_builder = req_builder.json(&transfer_subscription_request_body);
1487
1488    let req = req_builder.build()?;
1489    let resp = client.execute(req).await?;
1490
1491    let status = resp.status();
1492    let content = resp.text().await?;
1493
1494    if !status.is_client_error() && !status.is_server_error() {
1495        serde_json::from_str(&content).map_err(Error::from)
1496    } else {
1497        let entity: Option<TransferSubscriptionError> = serde_json::from_str(&content).ok();
1498        let error = ResponseContent { status: status, content: content, entity: entity };
1499        Err(Error::ResponseError(error))
1500    }
1501}
1502
1503/// Updates the name or configuration settings of an existing OneSignal app
1504pub async fn update_app(configuration: &configuration::Configuration, app_id: &str, app: crate::models::App) -> Result<crate::models::App, Error<UpdateAppError>> {
1505    let configuration = configuration;
1506
1507    let client = &configuration.client;
1508
1509    let uri_str = format!("{}/apps/{app_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id));
1510    let mut req_builder = client.request(reqwest::Method::PUT, uri_str.as_str());
1511
1512    if let Some(ref user_agent) = configuration.user_agent {
1513        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1514    }
1515
1516    // Adds a telemetry header
1517    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1518
1519    if let Some(ref token) = configuration.user_key_token {
1520        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1521    }
1522    req_builder = req_builder.json(&app);
1523
1524    let req = req_builder.build()?;
1525    let resp = client.execute(req).await?;
1526
1527    let status = resp.status();
1528    let content = resp.text().await?;
1529
1530    if !status.is_client_error() && !status.is_server_error() {
1531        serde_json::from_str(&content).map_err(Error::from)
1532    } else {
1533        let entity: Option<UpdateAppError> = serde_json::from_str(&content).ok();
1534        let error = ResponseContent { status: status, content: content, entity: entity };
1535        Err(Error::ResponseError(error))
1536    }
1537}
1538
1539/// Updates a specified live activity.
1540pub 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>> {
1541    let configuration = configuration;
1542
1543    let client = &configuration.client;
1544
1545    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));
1546    let mut req_builder = client.request(reqwest::Method::POST, uri_str.as_str());
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=2.2.1");
1554
1555    if let Some(ref token) = configuration.app_key_token {
1556        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1557    }
1558    req_builder = req_builder.json(&update_live_activity_request);
1559
1560    let req = req_builder.build()?;
1561    let resp = client.execute(req).await?;
1562
1563    let status = resp.status();
1564    let content = resp.text().await?;
1565
1566    if !status.is_client_error() && !status.is_server_error() {
1567        serde_json::from_str(&content).map_err(Error::from)
1568    } else {
1569        let entity: Option<UpdateLiveActivityError> = serde_json::from_str(&content).ok();
1570        let error = ResponseContent { status: status, content: content, entity: entity };
1571        Err(Error::ResponseError(error))
1572    }
1573}
1574
1575/// Update an existing device in one of your OneSignal apps
1576pub async fn update_player(configuration: &configuration::Configuration, player_id: &str, player: crate::models::Player) -> Result<crate::models::UpdatePlayerSuccessResponse, Error<UpdatePlayerError>> {
1577    let configuration = configuration;
1578
1579    let client = &configuration.client;
1580
1581    let uri_str = format!("{}/players/{player_id}", configuration.base_path, player_id=crate::apis::urlencode(player_id));
1582    let mut req_builder = client.request(reqwest::Method::PUT, uri_str.as_str());
1583
1584    if let Some(ref user_agent) = configuration.user_agent {
1585        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1586    }
1587
1588    // Adds a telemetry header
1589    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1590
1591    if let Some(ref token) = configuration.app_key_token {
1592        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1593    }
1594    req_builder = req_builder.json(&player);
1595
1596    let req = req_builder.build()?;
1597    let resp = client.execute(req).await?;
1598
1599    let status = resp.status();
1600    let content = resp.text().await?;
1601
1602    if !status.is_client_error() && !status.is_server_error() {
1603        serde_json::from_str(&content).map_err(Error::from)
1604    } else {
1605        let entity: Option<UpdatePlayerError> = serde_json::from_str(&content).ok();
1606        let error = ResponseContent { status: status, content: content, entity: entity };
1607        Err(Error::ResponseError(error))
1608    }
1609}
1610
1611/// Update an existing device's tags in one of your OneSignal apps using the External User ID. Warning - Android SDK Data Synchronization Tags added through the Android SDK tagging methods may not update if using the API to change or update the same tag. For example, if you use SDK method sendTag(\"key\", \"value1\") then update the tag value to \"value2\" with this API endpoint. You will not be able to set the value back to \"value1\" through the SDK, you will need to change it to something different through the SDK to be reset. Recommendations if using this Endpoint on Android Mobile Apps: 1 - Do not use the same tag keys for SDK and API updates 2 - If you want to use the same key for both SDK and API updates, call the SDK getTags method first to update the device's tags. This is only applicable on the Android Mobile App SDKs. &#128216; Deleting Tags To delete a tag, include its key and set its value to blank. Omitting a key/value will not delete it. For example, if I wanted to delete two existing tags rank and category while simultaneously adding a new tag class, the tags JSON would look like the following: \"tags\": {    \"rank\": \"\",    \"category\": \"\",    \"class\": \"my_new_value\" } 
1612pub async fn update_player_tags(configuration: &configuration::Configuration, app_id: &str, external_user_id: &str, update_player_tags_request_body: Option<crate::models::UpdatePlayerTagsRequestBody>) -> Result<crate::models::UpdatePlayerTagsSuccessResponse, Error<UpdatePlayerTagsError>> {
1613    let configuration = configuration;
1614
1615    let client = &configuration.client;
1616
1617    let uri_str = format!("{}/apps/{app_id}/users/{external_user_id}", configuration.base_path, app_id=crate::apis::urlencode(app_id), external_user_id=crate::apis::urlencode(external_user_id));
1618    let mut req_builder = client.request(reqwest::Method::PUT, uri_str.as_str());
1619
1620    if let Some(ref user_agent) = configuration.user_agent {
1621        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1622    }
1623
1624    // Adds a telemetry header
1625    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1626
1627    if let Some(ref token) = configuration.app_key_token {
1628        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1629    }
1630    req_builder = req_builder.json(&update_player_tags_request_body);
1631
1632    let req = req_builder.build()?;
1633    let resp = client.execute(req).await?;
1634
1635    let status = resp.status();
1636    let content = resp.text().await?;
1637
1638    if !status.is_client_error() && !status.is_server_error() {
1639        serde_json::from_str(&content).map_err(Error::from)
1640    } else {
1641        let entity: Option<UpdatePlayerTagsError> = serde_json::from_str(&content).ok();
1642        let error = ResponseContent { status: status, content: content, entity: entity };
1643        Err(Error::ResponseError(error))
1644    }
1645}
1646
1647/// Updates an existing Subscription’s properties.
1648pub async fn update_subscription(configuration: &configuration::Configuration, app_id: &str, subscription_id: &str, update_subscription_request_body: crate::models::UpdateSubscriptionRequestBody) -> Result<(), Error<UpdateSubscriptionError>> {
1649    let configuration = configuration;
1650
1651    let client = &configuration.client;
1652
1653    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));
1654    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
1655
1656    if let Some(ref user_agent) = configuration.user_agent {
1657        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1658    }
1659
1660    // Adds a telemetry header
1661    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1662
1663    if let Some(ref token) = configuration.app_key_token {
1664        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1665    }
1666    req_builder = req_builder.json(&update_subscription_request_body);
1667
1668    let req = req_builder.build()?;
1669    let resp = client.execute(req).await?;
1670
1671    let status = resp.status();
1672    let content = resp.text().await?;
1673
1674    if !status.is_client_error() && !status.is_server_error() {
1675        Ok(())
1676    } else {
1677        let entity: Option<UpdateSubscriptionError> = serde_json::from_str(&content).ok();
1678        let error = ResponseContent { status: status, content: content, entity: entity };
1679        Err(Error::ResponseError(error))
1680    }
1681}
1682
1683/// Updates an existing User’s properties.
1684pub 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::InlineResponse202, Error<UpdateUserError>> {
1685    let configuration = configuration;
1686
1687    let client = &configuration.client;
1688
1689    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));
1690    let mut req_builder = client.request(reqwest::Method::PATCH, uri_str.as_str());
1691
1692    if let Some(ref user_agent) = configuration.user_agent {
1693        req_builder = req_builder.header(reqwest::header::USER_AGENT, user_agent.clone());
1694    }
1695
1696    // Adds a telemetry header
1697    req_builder = req_builder.header("OS-Usage-Data", "kind=sdk, sdk-name=onesignal-rust, version=2.2.1");
1698
1699    if let Some(ref token) = configuration.app_key_token {
1700        req_builder = req_builder.header("Authorization", format!("Key {}", token.to_owned()));
1701    }
1702    req_builder = req_builder.json(&update_user_request);
1703
1704    let req = req_builder.build()?;
1705    let resp = client.execute(req).await?;
1706
1707    let status = resp.status();
1708    let content = resp.text().await?;
1709
1710    if !status.is_client_error() && !status.is_server_error() {
1711        serde_json::from_str(&content).map_err(Error::from)
1712    } else {
1713        let entity: Option<UpdateUserError> = serde_json::from_str(&content).ok();
1714        let error = ResponseContent { status: status, content: content, entity: entity };
1715        Err(Error::ResponseError(error))
1716    }
1717}
1718