{"id":19251048,"url":"https://github.com/onesignal/onesignal-rust-api","last_synced_at":"2025-04-21T12:33:44.755Z","repository":{"id":37940935,"uuid":"496797639","full_name":"OneSignal/onesignal-rust-api","owner":"OneSignal","description":"OneSignal Rust API Client SDK library","archived":false,"fork":false,"pushed_at":"2023-08-01T23:50:19.000Z","size":139,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":24,"default_branch":"main","last_synced_at":"2023-09-05T11:11:14.035Z","etag":null,"topics":["email","in-app-messaging","notifications","push-notifications","rust","sms"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OneSignal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-05-26T23:08:45.000Z","updated_at":"2023-09-05T11:11:14.036Z","dependencies_parsed_at":"2023-02-08T16:31:51.777Z","dependency_job_id":null,"html_url":"https://github.com/OneSignal/onesignal-rust-api","commit_stats":null,"previous_names":[],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneSignal%2Fonesignal-rust-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneSignal%2Fonesignal-rust-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneSignal%2Fonesignal-rust-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OneSignal%2Fonesignal-rust-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OneSignal","download_url":"https://codeload.github.com/OneSignal/onesignal-rust-api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223864924,"owners_count":17216434,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["email","in-app-messaging","notifications","push-notifications","rust","sms"],"created_at":"2024-11-09T18:19:44.899Z","updated_at":"2025-04-21T12:33:44.725Z","avatar_url":"https://github.com/OneSignal.png","language":"Rust","readme":"# Rust API client for onesignal-rust-api\n\nA powerful way to send personalized messages at scale and build effective customer engagement strategies. Learn more at onesignal.com\n\nFor more information, please visit [https://onesignal.com](https://onesignal.com)\n\n## Overview\n\nThis API client was generated by the [OpenAPI Generator](https://openapi-generator.tech) project.  By using the [openapi-spec](https://openapis.org) from a remote server, you can easily generate an API client.\n\n- API version: 1.4.0\n- Package version: 2.2.0\n- Build package: `org.openapitools.codegen.languages.RustClientCodegen`\n- GitHub repository: [https://github.com/onesignal/onesignal-rust-api](https://github.com/onesignal/onesignal-rust-api)\n\n## Installation\n### Crates.io\nYou can install this library as a crate dependency https://crates.io/crates/onesignal-rust-api.\n### Manual installation\nPut the package under your project folder in a directory named `onesignal` and add the following to `Cargo.toml` under `[dependencies]`:\n\n```\nonesignal = { path = \"./onesignal\" }\n```\n\n## Examples\n### Use the following dependency:\n```rust\nuse onesignal::*;\nuse onesignal::apis::configuration::Configuration;\nuse onesignal::models::filter_expressions::RelationType;\nuse onesignal::models::{App, FilterExpressions, Notification, Player, Segment, StringMap, UpdatePlayerTagsRequestBody};\n\n```\n\n### Define the constants. You can find all the values on the dashboard page of your app.\n```rust\nconst APP_ID: \u0026str = \"\u003cYOUR_APP_ID\u003e\";\nconst APP_KEY_TOKEN: \u0026str = \"\u003cYOUR_APP_KEY_TOKEN\u003e\";\nconst USER_KEY_TOKEN: \u0026str = \"\u003cYOUR_USER_KEY_TOKEN\u003e\";\n\n```\n\n### Creating a configuration object:\n```rust\nfn create_configuration() -\u003e Box\u003cConfiguration\u003e {\n    let mut configuration = apis::configuration::Configuration::new();\n    configuration.app_key_token = Some(String::from(APP_KEY_TOKEN));\n    configuration.user_key_token = Some(String::from(USER_KEY_TOKEN));\n    Box::new(configuration)\n}\n```\n\n### Creating a notification object:\n```rust\nfn create_notification() -\u003e Box\u003cNotification\u003e {\n    let mut notification = Notification::new(String::from(APP_ID));\n    let mut string_map = StringMap::new();\n\n    string_map.en = Some(String::from(\"Rust test notification\"));\n    notification.contents = Some(Box::new(string_map));\n    notification.is_chrome_web = Some(true);\n    notification.is_any_web = Some(true);\n    notification.included_segments = Some(vec![String::from(\"Subscribed Users\")]);\n\n    Box::new(notification)\n}\n```\n\n### Sending a notification:\n```rust\nasync fn send_notification() {\n    // Prepare configuration and the notification objects\n    let configuration = create_configuration();\n    let notification = create_notification();\n\n    // Send notification to the server\n    let create_notification_response = apis::default_api::create_notification(\u0026configuration, *notification).await;\n\n    // Check the result\n    if let Ok(ref created_notification) = create_notification_response {\n        println!(\"Created notification id: {}\", created_notification.id);\n    }\n\n    if let Err(ref created_notification_error) = create_notification_response {\n        println!(\"Created notification error: {}\", created_notification_error.to_string());\n    }\n}\n```\n\n### Sending a notification using filters:\nSend this notification only to the users that have not spent any USD on IAP.\n```rust\nasync fn send_notification() {\n    // Prepare configuration and the notification objects\n    let configuration = create_configuration();\n    let mut notification = create_notification();\n\n    notification.filters = Some(vec![\n        Filter {\n            field: \"amount_spent\".to_owned(),\n            relation: onesignal_rust_api::models::filter::RelationType::Equal,\n            value: Some(\"0\".to_owned()),\n            key: None\n        },\n    ]);\n\n    // Send notification to the server\n    let create_notification_response = apis::default_api::create_notification(\u0026configuration, *notification).await;\n\n    // Check the result\n    if let Ok(ref created_notification) = create_notification_response {\n        println!(\"Created notification id: {}\", created_notification.id);\n    }\n\n    if let Err(ref created_notification_error) = create_notification_response {\n        println!(\"Created notification error: {}\", created_notification_error.to_string());\n    }\n}\n```\n\n### Canceling a scheduled notification\n```rust\nasync fn cancel_scheduled_notification() {\n    let configuration = create_configuration();\n    let mut notification = create_notification();\n    let send_after = Utc::now().checked_add_signed(Duration::seconds(30));\n    notification.send_after = Some(String::from(send_after.unwrap().to_rfc2822()));\n\n    let create_notification_response =\n        apis::default_api::create_notification(\u0026configuration, *notification.clone()).await;\n\n    let cancel_notification_response =\n        apis::default_api::cancel_notification(\n            \u0026configuration, APP_ID, \u0026create_notification_response.unwrap().id).await;\n\n    assert_ok!(\u0026cancel_notification_response);\n    assert!(cancel_notification_response.unwrap().success.unwrap());\n}\n```\n\n### Getting a notification\n```rust\nasync fn get_notification() {\n    let configuration = create_configuration();\n    let notification = create_notification();\n\n    let create_notification_response =\n        apis::default_api::create_notification(\u0026configuration, *notification.clone()).await;\n\n    let get_notification_response =\n        apis::default_api::get_notification(\n            \u0026configuration, APP_ID, \u0026create_notification_response.unwrap().id).await;\n\n    assert_ok!(\u0026get_notification_response);\n    assert!(get_notification_response.unwrap().id.unwrap().len() \u003e 0);\n}\n```\n\n### Getting a list of notifications\n```rust\nasync fn get_multiple_notifications() {\n    let configuration = create_configuration();\n\n    // Limit: 100\n    // Offset: 0\n    // Kind: 1\n    let get_notifications_response =\n        apis::default_api::get_notifications(\n            \u0026configuration, APP_ID, Some(100), Some(0), Some(1)).await;\n\n    assert_ok!(\u0026get_notifications_response);\n    assert!(get_notifications_response.unwrap().notifications.unwrap().len() \u003e 0);\n}\n```\n\n### Creating a brand new player model\n```rust\nfn create_player() -\u003e Box\u003cPlayer\u003e {\n    let mut player = Box::new(Player::new(\"Rust Test Player\".to_string(), 1));\n    player.app_id = Some(APP_ID.to_string());\n    player\n}\n```\n\n### Creating and deleting a segment\n```rust\nasync fn create_and_get_player() {\n    let configuration = create_configuration();\n    let player = create_player();\n\n    let create_player_response =\n        apis::default_api::create_player(\u0026configuration, *player).await;\n\n    let get_player_response =\n        apis::default_api::get_player(\n            \u0026configuration, APP_ID, \u0026create_player_response.unwrap().id.unwrap(), None).await;\n\n    assert_ok!(\u0026get_player_response);\n    assert!(get_player_response.unwrap().id.len() \u003e 0);\n}\n```\n\n### Creating and updating a player\n```rust\nasync fn update_player() {\n    let configuration = create_configuration();\n    let player = create_player();\n    let mut updated_player = create_player();\n    updated_player.external_user_id = Some(String::from(\"test_user\"));\n\n    let create_player_response =\n        apis::default_api::create_player(\u0026configuration, *player).await;\n\n    let update_player_response =\n        apis::default_api::update_player(\n            \u0026configuration, \u0026create_player_response.unwrap().id.unwrap(), *updated_player).await;\n\n    assert_ok!(\u0026update_player_response);\n    assert!(update_player_response.unwrap().success.unwrap());\n}\n```\n\n### Updating player tags\n```rust\nasync fn update_player_tags() {\n    let configuration = create_configuration();\n\n    let mut updated_player_tags_request_body= UpdatePlayerTagsRequestBody::new();\n    let tag_value = json!({\"test_tag\": 1});\n\n    updated_player_tags_request_body.tags = Some(tag_value);\n\n    let update_player_tags_response =\n        apis::default_api::update_player_tags(\n            \u0026configuration,\n            APP_ID,\n            \"test_user\",\n            Some(updated_player_tags_request_body)).await;\n\n    assert_ok!(\u0026update_player_tags_response);\n    assert!(update_player_tags_response.unwrap().success.unwrap());\n}\n```\n\n### Getting a list of players\n```rust\nasync fn get_multiple_players() {\n    let configuration = create_configuration();\n\n    // Limit: 10\n    // Offset: 0\n    let get_players_response =\n        apis::default_api::get_players(\u0026configuration, APP_ID, Some(10), None).await;\n\n    assert_ok!(\u0026get_players_response);\n    assert!(get_players_response.unwrap().players.unwrap().len() \u003e 0);\n}\n```\n\n### Creating a segment model\n```rust\nfn create_segment(name: String) -\u003e Box\u003cSegment\u003e {\n    let mut filter_expressions = FilterExpressions::new(\n        \"session_count\".to_string(),\n        RelationType::Greater_Than);\n    filter_expressions.value = Some(\"1\".to_string());\n    let segment = Segment::new(name, vec![filter_expressions]);\n\n    Box::new(segment)\n}\n```\n\n### Creating and deleting a segment\n```rust\nasync fn create_and_delete_segment() {\n    let configuration = create_configuration();\n    let segment = create_segment(\"test_segment\");\n\n    let create_segment_response =\n        apis::default_api::create_segments(\u0026configuration, APP_ID, Some(*segment)).await;\n\n    let delete_segment_response =\n        apis::default_api::delete_segments(\n            \u0026configuration, APP_ID, \u0026create_segment_response.unwrap().id.unwrap()).await;\n\n    assert_ok!(\u0026delete_segment_response);\n    assert!(delete_segment_response.unwrap().success.unwrap());\n}\n```\n\n### Getting an app\n```rust\nasync fn get_app() {\n    let configuration = create_configuration();\n\n    let get_app_response =\n        apis::default_api::get_app(\u0026configuration, APP_ID).await;\n\n    assert_ok!(\u0026get_app_response);\n    assert!(get_app_response.unwrap().id.len() \u003e 0);\n}\n```\n\n### Updating an app\n```rust\nasync fn update_app() {\n    let configuration = create_configuration();\n    let mut app = App::new(APP_ID.to_string());\n    app.site_name = Some(\"rust_test_changed_name\".to_string());\n\n    let update_app_response =\n        apis::default_api::update_app(\u0026configuration, APP_ID, app).await;\n\n    assert_ok!(\u0026update_app_response);\n    assert!(update_app_response.unwrap().id.len() \u003e 0);\n}\n```\n\n### Getting a list of apps\n```rust\nasync fn get_multiple_apps() {\n    let configuration = create_configuration();\n\n    let get_apps_response =\n        apis::default_api::get_apps(\u0026configuration).await;\n\n    assert_ok!(\u0026get_apps_response);\n    assert!(get_apps_response.unwrap().len() \u003e 0);\n}\n```\n\n### Getting outcomes\n```rust\nasync fn get_outcomes() {\n    let configuration = create_configuration();\n    let outcome_names = \"os__session_duration.count,os__click.count\";\n    let outcome_time_range = \"1d\";\n    let outcome_platforms = \"5\";\n    let outcome_attribution = \"direct\";\n\n    let get_outcomes_response =\n        apis::default_api::get_outcomes(\n            \u0026configuration,\n            APP_ID,\n            outcome_names,\n            None,\n            Some(outcome_time_range),\n            Some(outcome_platforms),\n            Some(outcome_attribution)).await;\n\n    assert_ok!(\u0026get_outcomes_response);\n    assert!(get_outcomes_response.unwrap().outcomes.unwrap().len() \u003e 0);\n}\n```\n\n### Begin a Live Activity event\n```rust\nasync fn begin_live_activity() {\n    // Create a player first\n    let configuration = create_configuration();\n    let mut player = Box::new(Player::new(\"Rust Test Player\".to_string(), 0));\n    player.app_id = Some(APP_ID.to_string());\n    let create_player_response =\n        apis::default_api::create_player(\u0026configuration, *player).await;\n    let begin_live_activity_request = BeginLiveActivityRequest {\n        push_token: \"\u003cpush_token_example\u003e\",\n        subscription_id: create_player_response.unwrap().id.unwrap()\n    };\n    let activity_id = \"\u003cactivity_id_example\u003e\";\n\n    // Start live activity\n    let begin_alive_activity_response =\n        apis::default_api::begin_live_activity(\u0026configuration, APP_ID, activity_id.as_str(), begin_live_activity_request).await;\n\n    // Check the request completed successfully\n    assert_ok!(\u0026begin_alive_activity_response);\n}\n```\n\n### Update a Live Activity event\n```rust\nasync fn end_live_activity() {\n    let activity_id = \"\u003cactivity_id_example\u003e\";\n    let subscription_id = \"\u003cplayer_id_example\u003e\";\n    let update_live_activity_request = UpdateLiveActivityRequest {\n        name: NameType::Contents,\n        event: EventType::Update,\n        event_updates: json!({\"data\": \"test\"}),\n        dismiss_at: None,\n    };\n\n    // Stop Live Activity\n    let update_alive_activity_response =\n        apis::default_api::update_live_activity(\u0026configuration, APP_ID, activity_id.as_str(), update_live_activity_request).await;\n\n    // Check the request completed successfully\n    assert_ok!(\u0026update_alive_activity_response);\n}\n```\n\n### End a Live Activity event\n```rust\nasync fn end_live_activity() {\n    let activity_id = \"\u003cactivity_id_example\u003e\";\n    let subscription_id = \"\u003cplayer_id_example\u003e\";\n\n    // Stop Live Activity\n    let end_alive_activity_response =\n        apis::default_api::end_live_activity(\u0026configuration, APP_ID, activity_id.as_str(), subscription_id.as_str()).await;\n\n    // Check the request completed successfully\n    assert_ok!(\u0026end_alive_activity_response);\n}\n```\n\n## Users, Subscriptions and Aliases\n### Subscription types\n* iOSPush\n* AndroidPush\n* FireOSPush\n* ChromeExtensionPush\n* ChromePush\n* WindowsPush\n* SafariLegacyPush\n* FirefoxPush\n* macOSPush\n* HuaweiPush\n* SafariPush\n* Email\n* SMS\n\n### Creating a OneSignal user\n```rust\n// Preparing a model\nlet mut user = User::new();\nuser.identity = Some(HashMap::from([\n    (\"\u003cyour_alias_label\u003e\".as_string(), Value::from(\"\u003cyour_alias_id\u003e\".as_string())),\n]));\n\nuser.subscriptions = Some(vec![\n    SubscriptionObject {\n        _type: Some(TypeType::IOSPush),\n        token: Some(\"\u003cios_push_token\u003e\".as_string()),\n        id: None,\n        enabled: None,\n        notification_types: None,\n        session_time: None,\n        session_count: None,\n        sdk: None,\n        device_model: None,\n        device_os: None,\n        rooted: None,\n        test_type: None,\n        app_version: None,\n        net_type: None,\n        carrier: None,\n        web_auth: None,\n        web_p256: None\n    }\n]);\n\n// Send the request to the server\nlet create_user_response = apis::default_api::create_user(\u0026configuration, APP_ID, *user).await;\n```\n\n### Fetching a user by an alias\n```rust\nlet fetch_user_response = apis::default_api::fetch_user(\u0026configuration, APP_ID, \"\u003calias_label\u003e\", \"\u003calias_id\u003e\").await;\n```\n\n### Fetching a user by `onesignal_id`, which is a special case of an alias\n```rust\nlet fetch_user_response = apis::default_api::fetch_user(\u0026configuration, APP_ID, \"onesignal_id\", \"\u003calias_id\u003e\").await;\n```\n\n### Updating a user\n```rust\nlet update_user_request = UpdateUserRequest {\n    properties: Some(Box::new(PropertiesObject {\n        tags: None,\n        language: Some(\"fr\".to_owned()),\n        timezone_id: None,\n        lat: None,\n        long: None,\n        country: None,\n        first_active: None,\n        last_active: None,\n        amount_spent: None,\n        purchases: None,\n        ip: None\n    })),\n    refresh_device_metadata: None,\n    deltas: None\n};\n\nlet update_user_response = apis::default_api::update_user(\u0026configuration,\n                                                          APP_ID,\n                                                          \"\u003calias_label\u003e\",\n                                                          \"\u003calias_id\u003e\",\n                                                          update_user_request,\n                                                          None));\n```\n\n### Deleting a user\n```rust\nlet delete_user_response = apis::default_api::delete_user(\u0026configuration,\n                                                          APP_ID,\n                                                          \"onesignal_id\", // A special case of an alias label\n                                                          \"\u003calias_id\u003e\").await;\n```\n\n### Creating new subscription\n```rust\nlet create_subscription_request = CreateSubscriptionRequestBody {\n    subscription: Some(Box::new(SubscriptionObject {\n        id: None,\n        _type: Some(TypeType::AndroidPush),\n        token: Some(\"\u003candroid_push_token\u003e\".as_string()),\n        enabled: None,\n        notification_types: None,\n        session_time: None,\n        session_count: None,\n        sdk: None,\n        device_model: None,\n        device_os: None,\n        rooted: None,\n        test_type: None,\n        app_version: None,\n        net_type: None,\n        carrier: None,\n        web_auth: None,\n        web_p256: None\n    })),\n    retain_previous_owner: None\n};\n\nlet create_subscription_response = apis::default_api::create_subscription(\u0026configuration,\n                                                                          APP_ID,\n                                                                          \"\u003calias_label\u003e\",\n                                                                          \"\u003calias_id\u003e\",\n                                                                          create_subscription_request).await;\n```\n\n### Updating subscription token\n```rust\nlet update_subscription_request = UpdateSubscriptionRequestBody {\n    subscription: Some(Box::new(SubscriptionObject {\n        id: None,\n        _type: Some(TypeType::AndroidPush),\n        token: Some(\"\u003cnew_android_push_token\u003e\".as_string()),\n        enabled: None,\n        notification_types: None,\n        session_time: None,\n        session_count: None,\n        sdk: None,\n        device_model: None,\n        device_os: None,\n        rooted: None,\n        test_type: None,\n        app_version: None,\n        net_type: None,\n        carrier: None,\n        web_auth: None,\n        web_p256: None\n    })),\n    retain_previous_owner: None\n};\n\nlet update_subscription_response = apis::default_api::update_subscription(\u0026configuration,\n                                                                          APP_ID,\n                                                                          \"\u003csubscription_id\u003e\",\n                                                                          update_subscription_request).await;\n```\n\n### Deleting a subscription\n```rust\nlet delete_subscription_response = apis::default_api::delete_subscription(\u0026configuration,\n                                                                          APP_ID,\n                                                                          \"\u003csubscription_id\u003e\").await;\n```\n\n### Fetching user aliases\n```rust\nlet fetch_aliases_response = apis::default_api::fetch_aliases(\u0026configuration,\n                                                              APP_ID,\n                                                              \"\u003csubscription_id\u003e\").await;\n```\n\n### Fetching user identity\n```rust\nlet fetch_user_identity_response = apis::default_api::fetch_user_identity(\u0026configuration,\n                                                                          APP_ID,\n                                                                          \"\u003calias_label\u003e\",\n                                                                          \"\u003calias_id\u003e\").await;\n```\n\n### Identifying user by `subscription_id`\n```rust\nlet user_identity_request_body = UserIdentityRequestBody {\n    identity: Some(HashMap::from([\n        (\"\u003cnew_alias_label\u003e\".as_string(), Value::from(\"\u003cnew_alias_id\u003e\".as_string())),\n    ]))\n};\nlet identify_user_response = apis::default_api::identify_user_by_subscription_id(\u0026configuration,\n                                                                                 APP_ID,\n                                                                                 \"\u003csubscription_id\u003e\",\n                                                                                 user_identity_request_body).await;\n```\n\n### Identifying user by an alias\n```rust\nlet user_identity_request_body = UserIdentityRequestBody {\n    identity: Some(HashMap::from([\n        (\"\u003cnew_alias_label\u003e\".as_string(), Value::from(\"\u003cnew_alias_id\u003e\".as_string())),\n    ]))\n};\nlet identify_user_response = apis::default_api::identify_user_by_alias(\u0026configuration,\n                                                                       APP_ID,\n                                                                       \"\u003calias_label\u003e\",\n                                                                       \"\u003calias_id\u003e\",\n                                                                       user_identity_request_body).await;\n```\n\n### Deleting an alias\n```rust\nlet delete_alias_response = apis::default_api::delete_alias(\u0026configuration,\n                                                            APP_ID,\n                                                            \"\u003calias_label\u003e\",\n                                                            \"\u003calias_id\u003e\",\n                                                            \"\u003calias_label_to_delete\u003e\").await;\n```\n\n### Fetching eligible IAMs\n```rust\nlet fetch_iams_response = apis::default_api::get_eligible_iams(\u0026configuration, APP_ID, \"\u003csubscription_id\u003e\");\n```\n\n## Documentation for API Endpoints\n\nAll URIs are relative to *https://api.onesignal.com*\n\nClass | Method | HTTP request | Description\n------------ | ------------- | ------------- | -------------\n*DefaultApi* | [**begin_live_activity**](docs/DefaultApi.md#begin_live_activity) | **POST** /apps/{app_id}/live_activities/{activity_id}/token | Start Live Activity\n*DefaultApi* | [**cancel_notification**](docs/DefaultApi.md#cancel_notification) | **DELETE** /notifications/{notification_id} | Stop a scheduled or currently outgoing notification\n*DefaultApi* | [**create_app**](docs/DefaultApi.md#create_app) | **POST** /apps | Create an app\n*DefaultApi* | [**create_notification**](docs/DefaultApi.md#create_notification) | **POST** /notifications | Create notification\n*DefaultApi* | [**create_player**](docs/DefaultApi.md#create_player) | **POST** /players | Add a device\n*DefaultApi* | [**create_segments**](docs/DefaultApi.md#create_segments) | **POST** /apps/{app_id}/segments | Create Segments\n*DefaultApi* | [**create_subscription**](docs/DefaultApi.md#create_subscription) | **POST** /apps/{app_id}/users/by/{alias_label}/{alias_id}/subscriptions | \n*DefaultApi* | [**create_user**](docs/DefaultApi.md#create_user) | **POST** /apps/{app_id}/users | \n*DefaultApi* | [**delete_alias**](docs/DefaultApi.md#delete_alias) | **DELETE** /apps/{app_id}/users/by/{alias_label}/{alias_id}/identity/{alias_label_to_delete} | \n*DefaultApi* | [**delete_player**](docs/DefaultApi.md#delete_player) | **DELETE** /players/{player_id} | Delete a user record\n*DefaultApi* | [**delete_segments**](docs/DefaultApi.md#delete_segments) | **DELETE** /apps/{app_id}/segments/{segment_id} | Delete Segments\n*DefaultApi* | [**delete_subscription**](docs/DefaultApi.md#delete_subscription) | **DELETE** /apps/{app_id}/subscriptions/{subscription_id} | \n*DefaultApi* | [**delete_user**](docs/DefaultApi.md#delete_user) | **DELETE** /apps/{app_id}/users/by/{alias_label}/{alias_id} | \n*DefaultApi* | [**end_live_activity**](docs/DefaultApi.md#end_live_activity) | **DELETE** /apps/{app_id}/live_activities/{activity_id}/token/{subscription_id} | Stop Live Activity\n*DefaultApi* | [**export_events**](docs/DefaultApi.md#export_events) | **POST** /notifications/{notification_id}/export_events?app_id={app_id} | Export CSV of Events\n*DefaultApi* | [**export_players**](docs/DefaultApi.md#export_players) | **POST** /players/csv_export?app_id={app_id} | Export CSV of Players\n*DefaultApi* | [**fetch_aliases**](docs/DefaultApi.md#fetch_aliases) | **GET** /apps/{app_id}/subscriptions/{subscription_id}/user/identity | \n*DefaultApi* | [**fetch_user**](docs/DefaultApi.md#fetch_user) | **GET** /apps/{app_id}/users/by/{alias_label}/{alias_id} | \n*DefaultApi* | [**fetch_user_identity**](docs/DefaultApi.md#fetch_user_identity) | **GET** /apps/{app_id}/users/by/{alias_label}/{alias_id}/identity | \n*DefaultApi* | [**get_app**](docs/DefaultApi.md#get_app) | **GET** /apps/{app_id} | View an app\n*DefaultApi* | [**get_apps**](docs/DefaultApi.md#get_apps) | **GET** /apps | View apps\n*DefaultApi* | [**get_eligible_iams**](docs/DefaultApi.md#get_eligible_iams) | **GET** /apps/{app_id}/subscriptions/{subscription_id}/iams | \n*DefaultApi* | [**get_notification**](docs/DefaultApi.md#get_notification) | **GET** /notifications/{notification_id} | View notification\n*DefaultApi* | [**get_notification_history**](docs/DefaultApi.md#get_notification_history) | **POST** /notifications/{notification_id}/history | Notification History\n*DefaultApi* | [**get_notifications**](docs/DefaultApi.md#get_notifications) | **GET** /notifications | View notifications\n*DefaultApi* | [**get_outcomes**](docs/DefaultApi.md#get_outcomes) | **GET** /apps/{app_id}/outcomes | View Outcomes\n*DefaultApi* | [**get_player**](docs/DefaultApi.md#get_player) | **GET** /players/{player_id} | View device\n*DefaultApi* | [**get_players**](docs/DefaultApi.md#get_players) | **GET** /players | View devices\n*DefaultApi* | [**identify_user_by_alias**](docs/DefaultApi.md#identify_user_by_alias) | **PATCH** /apps/{app_id}/users/by/{alias_label}/{alias_id}/identity | \n*DefaultApi* | [**identify_user_by_subscription_id**](docs/DefaultApi.md#identify_user_by_subscription_id) | **PATCH** /apps/{app_id}/subscriptions/{subscription_id}/user/identity | \n*DefaultApi* | [**transfer_subscription**](docs/DefaultApi.md#transfer_subscription) | **PATCH** /apps/{app_id}/subscriptions/{subscription_id}/owner | \n*DefaultApi* | [**update_app**](docs/DefaultApi.md#update_app) | **PUT** /apps/{app_id} | Update an app\n*DefaultApi* | [**update_live_activity**](docs/DefaultApi.md#update_live_activity) | **POST** /apps/{app_id}/live_activities/{activity_id}/notifications | Update a Live Activity via Push\n*DefaultApi* | [**update_player**](docs/DefaultApi.md#update_player) | **PUT** /players/{player_id} | Edit device\n*DefaultApi* | [**update_player_tags**](docs/DefaultApi.md#update_player_tags) | **PUT** /apps/{app_id}/users/{external_user_id} | Edit tags with external user id\n*DefaultApi* | [**update_subscription**](docs/DefaultApi.md#update_subscription) | **PATCH** /apps/{app_id}/subscriptions/{subscription_id} | \n*DefaultApi* | [**update_user**](docs/DefaultApi.md#update_user) | **PATCH** /apps/{app_id}/users/by/{alias_label}/{alias_id} | \n\n\n## Documentation For Models\n\n - [App](docs/App.md)\n - [BasicNotification](docs/BasicNotification.md)\n - [BasicNotificationAllOf](docs/BasicNotificationAllOf.md)\n - [BasicNotificationAllOfAndroidBackgroundLayout](docs/BasicNotificationAllOfAndroidBackgroundLayout.md)\n - [BeginLiveActivityRequest](docs/BeginLiveActivityRequest.md)\n - [Button](docs/Button.md)\n - [CancelNotificationSuccessResponse](docs/CancelNotificationSuccessResponse.md)\n - [CreateNotificationSuccessResponse](docs/CreateNotificationSuccessResponse.md)\n - [CreatePlayerSuccessResponse](docs/CreatePlayerSuccessResponse.md)\n - [CreateSegmentConflictResponse](docs/CreateSegmentConflictResponse.md)\n - [CreateSegmentSuccessResponse](docs/CreateSegmentSuccessResponse.md)\n - [CreateSubscriptionRequestBody](docs/CreateSubscriptionRequestBody.md)\n - [CreateUserConflictResponse](docs/CreateUserConflictResponse.md)\n - [CreateUserConflictResponseErrorsInner](docs/CreateUserConflictResponseErrorsInner.md)\n - [CreateUserConflictResponseErrorsItemsMeta](docs/CreateUserConflictResponseErrorsItemsMeta.md)\n - [DeletePlayerNotFoundResponse](docs/DeletePlayerNotFoundResponse.md)\n - [DeletePlayerSuccessResponse](docs/DeletePlayerSuccessResponse.md)\n - [DeleteSegmentNotFoundResponse](docs/DeleteSegmentNotFoundResponse.md)\n - [DeleteSegmentSuccessResponse](docs/DeleteSegmentSuccessResponse.md)\n - [DeliveryData](docs/DeliveryData.md)\n - [ExportEventsSuccessResponse](docs/ExportEventsSuccessResponse.md)\n - [ExportPlayersRequestBody](docs/ExportPlayersRequestBody.md)\n - [ExportPlayersSuccessResponse](docs/ExportPlayersSuccessResponse.md)\n - [Filter](docs/Filter.md)\n - [FilterExpressions](docs/FilterExpressions.md)\n - [GenericError](docs/GenericError.md)\n - [GenericErrorErrorsInner](docs/GenericErrorErrorsInner.md)\n - [GetNotificationRequestBody](docs/GetNotificationRequestBody.md)\n - [InlineResponse200](docs/InlineResponse200.md)\n - [InlineResponse2003](docs/InlineResponse2003.md)\n - [InlineResponse201](docs/InlineResponse201.md)\n - [InlineResponse202](docs/InlineResponse202.md)\n - [InvalidIdentifierError](docs/InvalidIdentifierError.md)\n - [Notification](docs/Notification.md)\n - [Notification200Errors](docs/Notification200Errors.md)\n - [NotificationAllOf](docs/NotificationAllOf.md)\n - [NotificationHistorySuccessResponse](docs/NotificationHistorySuccessResponse.md)\n - [NotificationSlice](docs/NotificationSlice.md)\n - [NotificationTarget](docs/NotificationTarget.md)\n - [NotificationWithMeta](docs/NotificationWithMeta.md)\n - [NotificationWithMetaAllOf](docs/NotificationWithMetaAllOf.md)\n - [Operator](docs/Operator.md)\n - [OutcomeData](docs/OutcomeData.md)\n - [OutcomesData](docs/OutcomesData.md)\n - [PlatformDeliveryData](docs/PlatformDeliveryData.md)\n - [PlatformDeliveryDataEmailAllOf](docs/PlatformDeliveryDataEmailAllOf.md)\n - [PlatformDeliveryDataSmsAllOf](docs/PlatformDeliveryDataSmsAllOf.md)\n - [Player](docs/Player.md)\n - [PlayerNotificationTarget](docs/PlayerNotificationTarget.md)\n - [PlayerNotificationTargetIncludeAliases](docs/PlayerNotificationTargetIncludeAliases.md)\n - [PlayerSlice](docs/PlayerSlice.md)\n - [PropertiesDeltas](docs/PropertiesDeltas.md)\n - [PropertiesObject](docs/PropertiesObject.md)\n - [Purchase](docs/Purchase.md)\n - [RateLimiterError](docs/RateLimiterError.md)\n - [Segment](docs/Segment.md)\n - [SegmentNotificationTarget](docs/SegmentNotificationTarget.md)\n - [StringMap](docs/StringMap.md)\n - [SubscriptionObject](docs/SubscriptionObject.md)\n - [TransferSubscriptionRequestBody](docs/TransferSubscriptionRequestBody.md)\n - [UpdateLiveActivityRequest](docs/UpdateLiveActivityRequest.md)\n - [UpdateLiveActivitySuccessResponse](docs/UpdateLiveActivitySuccessResponse.md)\n - [UpdatePlayerSuccessResponse](docs/UpdatePlayerSuccessResponse.md)\n - [UpdatePlayerTagsRequestBody](docs/UpdatePlayerTagsRequestBody.md)\n - [UpdatePlayerTagsSuccessResponse](docs/UpdatePlayerTagsSuccessResponse.md)\n - [UpdateSubscriptionRequestBody](docs/UpdateSubscriptionRequestBody.md)\n - [UpdateUserRequest](docs/UpdateUserRequest.md)\n - [User](docs/User.md)\n - [UserIdentityRequestBody](docs/UserIdentityRequestBody.md)\n - [UserIdentityResponse](docs/UserIdentityResponse.md)\n - [UserSubscriptionOptions](docs/UserSubscriptionOptions.md)\n\n\nTo get access to the crate's generated documentation, use:\n\n```\ncargo doc --open\n```\n\n## Author\n\ndevrel@onesignal.com\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonesignal%2Fonesignal-rust-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fonesignal%2Fonesignal-rust-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fonesignal%2Fonesignal-rust-api/lists"}